aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Nvdec.FFmpeg/Native
diff options
context:
space:
mode:
authorMary-nyan <mary@mary.zone>2022-11-02 09:26:50 +0100
committerGitHub <noreply@github.com>2022-11-02 09:26:50 +0100
commit7d8e198c33b7ad283db53315129209a2bd310f23 (patch)
treec5fb9e6ab0b5d6d16070d1881bcc923228eb265a /Ryujinx.Graphics.Nvdec.FFmpeg/Native
parent3d98e1361b2f1c3993aa7f1e9b1ac49fc5b6e512 (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.cs1
-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.cs2
-rw-r--r--Ryujinx.Graphics.Nvdec.FFmpeg/Native/FFCodec.cs6
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;