1
0
Fork 0
forked from suyu/suyu
suyu/src/core
ameerj eb67a45ca8 video_core: NVDEC Implementation
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>
2020-10-26 23:07:36 -04:00
..
arm Revert "core: Fix clang build" 2020-10-20 19:07:39 -07:00
crypto Revert "core: Fix clang build" 2020-10-20 19:07:39 -07:00
file_sys Revert "core: Fix clang build" 2020-10-20 19:07:39 -07:00
frontend Revert "core: Fix clang build" 2020-10-20 19:07:39 -07:00
gdbstub Revert "core: Fix clang build" 2020-10-20 19:07:39 -07:00
hle video_core: NVDEC Implementation 2020-10-26 23:07:36 -04:00
loader Revert "core: Fix clang build" 2020-10-20 19:07:39 -07:00
memory core/CMakeLists: Make some warnings errors 2020-10-13 13:16:49 -04:00
network core: Fix clang build pt.3 2020-10-21 22:14:23 -04:00
tools freezer: Move entry finding to its own function 2020-08-06 03:11:21 -04:00
CMakeLists.txt video_core: NVDEC Implementation 2020-10-26 23:07:36 -04:00
constants.cpp constants: Extract backup JPEG used by account services 2019-06-07 17:46:57 -04:00
constants.h constants: Add missing <array> include 2020-07-16 21:43:20 -04:00
core.cpp service: time: Update current time with changes to RTC setting. 2020-10-12 18:09:15 -07:00
core.h service: time: Update current time with changes to RTC setting. 2020-10-12 18:09:15 -07:00
core_timing.cpp Revert "core: Fix clang build" 2020-10-20 19:07:39 -07:00
core_timing.h core_timing: Make use of uintptr_t to represent user_data 2020-07-27 21:21:01 -04:00
core_timing_util.cpp Revert "core: Fix clang build" 2020-10-20 19:07:39 -07:00
core_timing_util.h Revert "core: Fix clang build" 2020-10-20 19:07:39 -07:00
cpu_manager.cpp Merge pull request #4461 from comex/thread-names 2020-08-31 15:31:48 -04:00
cpu_manager.h cpu_manager: Mark function getters as static 2020-07-16 13:30:56 -04:00
device_memory.cpp device_memory: Remove unused system member 2020-07-27 23:37:49 -04:00
device_memory.h device_memory: Remove unused system member 2020-07-27 23:37:49 -04:00
hardware_interrupt_manager.cpp core_timing: Make use of uintptr_t to represent user_data 2020-07-27 21:21:01 -04:00
hardware_interrupt_manager.h core_timing: Use better reference tracking for EventType. (#3159) 2019-11-26 21:48:56 -05:00
hardware_properties.h General: Add Asserts 2020-06-27 11:35:21 -04:00
memory.cpp Revert "core: Fix clang build" 2020-10-20 19:07:39 -07:00
memory.h ARM/Memory: Correct Exclusive Monitor and Implement Exclusive Memory Writes. 2020-06-27 11:35:37 -04:00
perf_stats.cpp common/fileutil: Convert namespace to Common::FS 2020-08-16 06:52:40 -04:00
perf_stats.h perf_stats: Mark GetMeanFrametime() as const 2020-08-03 12:33:35 -04:00
reporter.cpp common/fileutil: Convert namespace to Common::FS 2020-08-16 06:52:40 -04:00
reporter.h service: Update function tables 2020-04-20 15:53:49 -04:00
settings.cpp video_core: NVDEC Implementation 2020-10-26 23:07:36 -04:00
settings.h video_core: NVDEC Implementation 2020-10-26 23:07:36 -04:00
telemetry_session.cpp video_core: NVDEC Implementation 2020-10-26 23:07:36 -04:00
telemetry_session.h common/telemetry: Migrate namespace into the Common namespace 2020-08-18 15:08:32 -04:00