diff options
| author | Mary-nyan <mary@mary.zone> | 2022-11-02 09:26:50 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-11-02 09:26:50 +0100 |
| commit | 7d8e198c33b7ad283db53315129209a2bd310f23 (patch) | |
| tree | c5fb9e6ab0b5d6d16070d1881bcc923228eb265a /Ryujinx.Graphics.Nvdec.FFmpeg/Native | |
| parent | 3d98e1361b2f1c3993aa7f1e9b1ac49fc5b6e512 (diff) | |
fix: Support FFmpeg 5.1.x for decoding (#3816)
For some reason FFmpeg 5.1.x reverted part of the changes made in 5.0.x
on AVCodec.
This fix decoding issues with it.
Diffstat (limited to 'Ryujinx.Graphics.Nvdec.FFmpeg/Native')
| -rw-r--r-- | Ryujinx.Graphics.Nvdec.FFmpeg/Native/AVCodec.cs | 1 | ||||
| -rw-r--r-- | Ryujinx.Graphics.Nvdec.FFmpeg/Native/AVCodec501.cs (renamed from Ryujinx.Graphics.Nvdec.FFmpeg/Native/AVCodecLegacy.cs) | 3 | ||||
| -rw-r--r-- | Ryujinx.Graphics.Nvdec.FFmpeg/Native/AVCodecContext.cs | 2 | ||||
| -rw-r--r-- | Ryujinx.Graphics.Nvdec.FFmpeg/Native/FFCodec.cs | 6 |
4 files changed, 5 insertions, 7 deletions
diff --git a/Ryujinx.Graphics.Nvdec.FFmpeg/Native/AVCodec.cs b/Ryujinx.Graphics.Nvdec.FFmpeg/Native/AVCodec.cs index 93edb788..46d3ad61 100644 --- a/Ryujinx.Graphics.Nvdec.FFmpeg/Native/AVCodec.cs +++ b/Ryujinx.Graphics.Nvdec.FFmpeg/Native/AVCodec.cs @@ -20,6 +20,7 @@ namespace Ryujinx.Graphics.Nvdec.FFmpeg.Native public unsafe IntPtr PrivClass; public IntPtr Profiles; public unsafe byte* WrapperName; + public IntPtr ChLayouts; #pragma warning restore CS0649 } } diff --git a/Ryujinx.Graphics.Nvdec.FFmpeg/Native/AVCodecLegacy.cs b/Ryujinx.Graphics.Nvdec.FFmpeg/Native/AVCodec501.cs index 0913cbc4..47d4969a 100644 --- a/Ryujinx.Graphics.Nvdec.FFmpeg/Native/AVCodecLegacy.cs +++ b/Ryujinx.Graphics.Nvdec.FFmpeg/Native/AVCodec501.cs @@ -2,7 +2,7 @@ namespace Ryujinx.Graphics.Nvdec.FFmpeg.Native { - struct AVCodecLegacy + struct AVCodec501 { #pragma warning disable CS0649 public unsafe byte* Name; @@ -20,7 +20,6 @@ namespace Ryujinx.Graphics.Nvdec.FFmpeg.Native public unsafe IntPtr PrivClass; public IntPtr Profiles; public unsafe byte* WrapperName; - public IntPtr ChLayouts; #pragma warning restore CS0649 } } diff --git a/Ryujinx.Graphics.Nvdec.FFmpeg/Native/AVCodecContext.cs b/Ryujinx.Graphics.Nvdec.FFmpeg/Native/AVCodecContext.cs index 11bd63b0..6c9fbc89 100644 --- a/Ryujinx.Graphics.Nvdec.FFmpeg/Native/AVCodecContext.cs +++ b/Ryujinx.Graphics.Nvdec.FFmpeg/Native/AVCodecContext.cs @@ -9,7 +9,7 @@ namespace Ryujinx.Graphics.Nvdec.FFmpeg.Native public unsafe IntPtr AvClass; public int LogLevelOffset; public int CodecType; - public unsafe AVCodecLegacy* Codec; + public unsafe AVCodec* Codec; public AVCodecID CodecId; public uint CodecTag; public IntPtr PrivData; diff --git a/Ryujinx.Graphics.Nvdec.FFmpeg/Native/FFCodec.cs b/Ryujinx.Graphics.Nvdec.FFmpeg/Native/FFCodec.cs index 8b08c02c..4df45af4 100644 --- a/Ryujinx.Graphics.Nvdec.FFmpeg/Native/FFCodec.cs +++ b/Ryujinx.Graphics.Nvdec.FFmpeg/Native/FFCodec.cs @@ -2,12 +2,10 @@ namespace Ryujinx.Graphics.Nvdec.FFmpeg.Native { - struct FFCodec + struct FFCodec<T> where T: struct { - public unsafe delegate int AVCodec_decode(AVCodecContext* avctx, void* outdata, int* got_frame_ptr, AVPacket* avpkt); - #pragma warning disable CS0649 - public AVCodec Base; + public T Base; public int CapsInternalOrCbType; public int PrivDataSize; public IntPtr UpdateThreadContext; |
