summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/nvdrv/devices/nvhost_nvdec_common.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* nvhost_nvdec_common: Remove BufferMapameerj2021-08-071-31/+0
| | | | This was mainly used to keep track of mapped buffers for later unmapping. Since unmap is no longer implemented, this no longer seves a valuable purpose.
* nvhost_nvdec_common: Stub UnmapBuffer Ioctlameerj2021-08-071-23/+4
| | | | Skip unmapping nvdec buffers to avoid breaking the continuity of the VP9 reference frame addresses, and the risk of invalidating data before the async GPU thread is done with it.
* nvhost_nvdec_common: Read Submit ioctl data from object addrameerj2021-07-151-8/+2
| | | | Fixes Mario Golf intro video decoding.
* nvhost_nvdec_common: Fix {Slice/Write}Vectors returnameerj2021-07-151-37/+38
| | | | Plus some minor cleanup for consistency.
* service: Resolve cases of member field shadowingLioncash2021-05-041-3/+3
| | | | | Now all that remains is for kernel code to be 'shadow-free' and then -Wshadow can be turned into an error.
* nvhost_nvdec_common: Avoid memcpy with null pointerslat9nq2021-04-051-6/+11
| | | | | | | Avoid sending null pointer to memcpy as reported by Undefined Behavious Sanitizer. Co-authored-by: LC <mathew1800@gmail.com>
* fix for nvdec disabled, cleanup host1xameerj2021-01-071-11/+14
|
* nvdec syncpt incorporationameerj2021-01-071-7/+19
| | | | laying the groundwork for async gpu, although this does not fully implement async nvdec operations
* core: Make nvservices more standardizedChloe Marcec2020-11-101-24/+19
|
* video_core: unbreak -Werror in NVDEC with ClangJan Beich2020-10-301-1/+1
| | | | | | src/core/hle/service/nvdrv/devices/nvhost_nvdec_common.cpp:41:15: error: unused variable 'OutOfMemory' [-Werror,-Wunused-const-variable] constexpr u32 OutOfMemory{static_cast<u32>(-12)}; ^
* video_core: NVDEC Implementationameerj2020-10-271-0/+234
This commit aims to implement the NVDEC (Nvidia Decoder) functionality, with video frame decoding being handled by the FFmpeg library. The process begins with Ioctl commands being sent to the NVDEC and VIC (Video Image Composer) emulated devices. These allocate the necessary GPU buffers for the frame data, along with providing information on the incoming video data. A Submit command then signals the GPU to process and decode the frame data. To decode the frame, the respective codec's header must be manually composed from the information provided by NVDEC, then sent with the raw frame data to the ffmpeg library. Currently, H264 and VP9 are supported, with VP9 having some minor artifacting issues related mainly to the reference frame composition in its uncompressed header. Async GPU is not properly implemented at the moment. Co-Authored-By: David <25727384+ogniK5377@users.noreply.github.com>