yuzu/src/common
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
..
logging common/fileutil: Convert namespace to Common::FS 2020-08-16 06:52:40 -04:00
x64 common/wall_clock: Add virtual destructors 2020-09-30 02:53:34 -03:00
CMakeLists.txt video_core: NVDEC Implementation 2020-10-26 23:07:36 -04:00
algorithm.h common: Make use of [[nodiscard]] where applicable 2020-08-15 17:17:52 -04:00
alignment.h common: Make use of [[nodiscard]] where applicable 2020-08-15 17:17:52 -04:00
assert.h common/assert: Make use of C++ attribute syntax 2020-08-24 04:15:10 -04:00
atomic_ops.cpp common/atomic_ops: Don't cast away volatile from pointers 2020-07-28 04:36:53 -04:00
atomic_ops.h common: Make use of [[nodiscard]] where applicable 2020-08-15 17:17:52 -04:00
bit_field.h common: Make use of [[nodiscard]] where applicable 2020-08-15 17:17:52 -04:00
bit_util.h common: Make use of [[nodiscard]] where applicable 2020-08-15 17:17:52 -04:00
cityhash.cpp Port #4182 from Citra: "Prefix all size_t with std::" 2018-09-15 15:21:06 +02:00
cityhash.h common: Make use of [[nodiscard]] where applicable 2020-08-15 17:17:52 -04:00
color.h common/color: Migrate code over to the Common namespace 2020-08-18 14:27:41 -04:00
common_funcs.h common_funcs: Add missing XOR operators to DECLARE_ENUM_FLAG_OPERATORS 2020-08-24 04:42:43 -04:00
common_paths.h common: Add a screenshots directory 2020-07-20 22:51:02 -04:00
common_types.h gpu: Move GPUVAddr definition to common_types. 2019-03-20 22:36:02 -04:00
concepts.h common/concepts: Move <type_traits> include out of the Common namespace 2020-08-18 14:24:54 -04:00
detached_tasks.cpp General: Tidy up clang-format warnings part 2 2020-08-13 14:19:08 -04:00
detached_tasks.h Review comments - part 5 2018-10-02 16:04:10 +02:00
dynamic_library.cpp common: Silence two discarded result warnings 2020-08-16 06:17:33 -04:00
dynamic_library.h common: Make use of [[nodiscard]] where applicable 2020-08-15 17:17:52 -04:00
fiber.cpp Core/Common: Address Feedback. 2020-06-27 18:20:06 -04:00
fiber.h Revert "core: Fix clang build" 2020-10-20 19:07:39 -07:00
file_util.cpp Merge pull request #4539 from lioncash/disc 2020-08-18 22:03:09 -04:00
file_util.h Revert "core: Fix clang build" 2020-10-20 19:07:39 -07:00
hash.h common: Make use of [[nodiscard]] where applicable 2020-08-15 17:17:52 -04:00
hex_util.cpp partition_data_manager: Make data arrays constexpr 2020-08-06 02:41:58 -04:00
hex_util.h core/CMakeLists: Make some warnings errors 2020-10-13 13:16:49 -04:00
lz4_compression.cpp common/compression: Roll back std::span changes 2020-08-15 17:17:56 -04:00
lz4_compression.h common/compression: Roll back std::span changes 2020-08-15 17:17:56 -04:00
math_util.h core: Fix clang build pt.3 2020-10-21 22:14:23 -04:00
memory_detect.cpp common: switch to nullptr for sysctl's empty new value 2020-06-30 23:00:18 +00:00
memory_detect.h common: Make use of [[nodiscard]] where applicable 2020-08-15 17:17:52 -04:00
memory_hook.cpp core: Move PageTable struct into Common. 2019-03-16 22:05:40 -04:00
memory_hook.h core: Move PageTable struct into Common. 2019-03-16 22:05:40 -04:00
microprofile.cpp Integrate the MicroProfile profiling library 2015-08-24 22:16:28 -03:00
microprofile.h Sources: Run clang-format on everything. 2016-09-18 09:38:01 +09:00
microprofileui.h Common: Remove section measurement from profiler (#1731) 2016-04-29 00:07:10 -07:00
misc.cpp Port #4182 from Citra: "Prefix all size_t with std::" 2018-09-15 15:21:06 +02:00
multi_level_queue.h Revert "core: Fix clang build" 2020-10-20 19:07:39 -07:00
page_table.cpp common: page_table: Update to use VirtualBuffer and simplify. 2020-04-17 00:59:34 -04:00
page_table.h common: Make use of [[nodiscard]] where applicable 2020-08-15 17:17:52 -04:00
param_package.cpp citra_qt/configuration: misc input tab improvements 2018-10-06 15:43:49 +02:00
param_package.h Project Mjölnir: Part 1 2020-08-26 02:32:32 -04:00
quaternion.h Implement a basic class for motion devices 2020-08-27 17:19:21 -05:00
ring_buffer.h common: Make use of [[nodiscard]] where applicable 2020-08-15 17:17:52 -04:00
scm_rev.cpp.in common: Add additional SCM revision fields 2019-10-05 00:09:49 -04:00
scm_rev.h common: Add additional SCM revision fields 2019-10-05 00:09:49 -04:00
scope_exit.h common: scope_exit: Implement mechanism for canceling a scope exit. 2020-04-17 00:59:28 -04:00
spin_lock.cpp Core/Common: Address Feedback. 2020-06-27 18:20:06 -04:00
spin_lock.h Revert "core: Fix clang build" 2020-10-20 19:07:39 -07:00
stream.cpp video_core: NVDEC Implementation 2020-10-26 23:07:36 -04:00
stream.h video_core: NVDEC Implementation 2020-10-26 23:07:36 -04:00
string_util.cpp common/logging: don't use regex for path trimming 2020-01-23 23:08:05 +01:00
string_util.h common: Make use of [[nodiscard]] where applicable 2020-08-15 17:17:52 -04:00
swap.h Revert "core: Fix clang build" 2020-10-20 19:07:39 -07:00
telemetry.cpp common/telemetry: Migrate namespace into the Common namespace 2020-08-18 15:08:32 -04:00
telemetry.h common/telemetry: Migrate namespace into the Common namespace 2020-08-18 15:08:32 -04:00
thread.cpp Fix thread naming on Linux, which limits names to 15 bytes. 2020-08-05 20:34:49 -07:00
thread.h common/thread: Fix data race in is_set 2020-08-26 02:50:51 +00:00
thread_queue_list.h Revert "core: Fix clang build" 2020-10-20 19:07:39 -07:00
threadsafe_queue.h common: Make use of [[nodiscard]] where applicable 2020-08-15 17:17:52 -04:00
time_zone.cpp Revert "common/time_zone: Simplify GetOsTimeZoneOffset()" 2020-08-19 18:27:31 -04:00
time_zone.h common: Make use of [[nodiscard]] where applicable 2020-08-15 17:17:52 -04:00
timer.cpp Port #3972 from Citra: "common/timer: use std::chrono, avoid platform-dependent code" 2018-07-29 14:58:30 +02:00
timer.h common: Make use of [[nodiscard]] where applicable 2020-08-15 17:17:52 -04:00
uint128.cpp Common/uint128: Correct MSVC Compilation in old versions. 2020-06-18 16:29:26 -04:00
uint128.h common: Make use of [[nodiscard]] where applicable 2020-08-15 17:17:52 -04:00
uuid.cpp mii_manager: Cleanup and optimization 2019-04-25 08:07:57 -04:00
uuid.h common: Make use of [[nodiscard]] where applicable 2020-08-15 17:17:52 -04:00
vector_math.h input_common/CMakeLists: Make some warnings errors 2020-10-15 19:37:51 -04:00
virtual_buffer.cpp common/virtual_buffer: drop unused includes 2020-08-05 21:36:35 +00:00
virtual_buffer.h common: Make use of [[nodiscard]] where applicable 2020-08-15 17:17:52 -04:00
wall_clock.cpp common/wall_clock: Add virtual destructors 2020-09-30 02:53:34 -03:00
wall_clock.h common/wall_clock: Add virtual destructors 2020-09-30 02:53:34 -03:00
zstd_compression.cpp common/compression: Roll back std::span changes 2020-08-15 17:17:56 -04:00
zstd_compression.h common/compression: Roll back std::span changes 2020-08-15 17:17:56 -04:00