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
This commit is contained in:
parent
0d23504e30
commit
f4f496cb48
18 changed files with 358 additions and 200 deletions
21
Ryujinx.Graphics.Nvdec/NvdecDecoderContext.cs
Normal file
21
Ryujinx.Graphics.Nvdec/NvdecDecoderContext.cs
Normal file
|
@ -0,0 +1,21 @@
|
|||
using Ryujinx.Graphics.Nvdec.H264;
|
||||
using System;
|
||||
|
||||
namespace Ryujinx.Graphics.Nvdec
|
||||
{
|
||||
class NvdecDecoderContext : IDisposable
|
||||
{
|
||||
private Decoder _decoder;
|
||||
|
||||
public Decoder GetDecoder()
|
||||
{
|
||||
return _decoder ??= new Decoder();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
_decoder?.Dispose();
|
||||
_decoder = null;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue