From f4f496cb48a59aae36e3252baa90396e1bfadd2e Mon Sep 17 00:00:00 2001 From: gdkchan Date: Tue, 28 Sep 2021 19:43:40 -0300 Subject: NVDEC (H264): Use separate contexts per channel and decode frames in DTS order (#2671) * Use separate NVDEC contexts per channel (for FFMPEG) * Remove NVDEC -> VIC frame override hack * Add missing bottom_field_pic_order_in_frame_present_flag * Make FFMPEG logging static * nit: Remove empty lines * New FFMPEG decoding approach -- call h264_decode_frame directly, trim surface cache to reduce memory usage * Fix case * Silence warnings * PR feedback * Per-decoder rather than per-codec ownership of surfaces on the cache --- Ryujinx.Graphics.Nvdec/Types/H264/ReferenceFrame.cs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'Ryujinx.Graphics.Nvdec/Types/H264/ReferenceFrame.cs') diff --git a/Ryujinx.Graphics.Nvdec/Types/H264/ReferenceFrame.cs b/Ryujinx.Graphics.Nvdec/Types/H264/ReferenceFrame.cs index 163a8783..d205a47a 100644 --- a/Ryujinx.Graphics.Nvdec/Types/H264/ReferenceFrame.cs +++ b/Ryujinx.Graphics.Nvdec/Types/H264/ReferenceFrame.cs @@ -1,12 +1,15 @@ -namespace Ryujinx.Graphics.Nvdec.Types.H264 +using Ryujinx.Common.Memory; + +namespace Ryujinx.Graphics.Nvdec.Types.H264 { struct ReferenceFrame { #pragma warning disable CS0649 - public uint Unknown0; - public uint Unknown4; - public uint Unknown8; - public uint UnknownC; + public uint Flags; + public Array2 FieldOrderCnt; + public uint FrameNum; #pragma warning restore CS0649 + + public uint OutputSurfaceIndex => (uint)Flags & 0x7f; } } -- cgit v1.2.3