aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMary <me@thog.eu>2021-05-02 22:08:35 +0200
committerGitHub <noreply@github.com>2021-05-02 22:08:35 +0200
commitfcdfd8a4822f4ce1be3f01fc97fa25a847221568 (patch)
tree1fc51ea40d744c194a875894f0aff2f893b3d731
parent3443023a0844822f4f320ea4f75d9522fb5bbc01 (diff)
Update to FFmpeg 4.4.0 (#2259)
* Update to FFmpeg 4.4.0 As the title say * Fix warning from 4.4.0
-rw-r--r--Ryujinx.Graphics.Nvdec.H264/FFmpegContext.cs19
-rw-r--r--Ryujinx.Graphics.Nvdec.H264/Ryujinx.Graphics.Nvdec.H264.csproj2
-rw-r--r--Ryujinx/Ryujinx.csproj2
3 files changed, 15 insertions, 8 deletions
diff --git a/Ryujinx.Graphics.Nvdec.H264/FFmpegContext.cs b/Ryujinx.Graphics.Nvdec.H264/FFmpegContext.cs
index b4f9206b..98754c76 100644
--- a/Ryujinx.Graphics.Nvdec.H264/FFmpegContext.cs
+++ b/Ryujinx.Graphics.Nvdec.H264/FFmpegContext.cs
@@ -6,6 +6,7 @@ namespace Ryujinx.Graphics.Nvdec.H264
unsafe class FFmpegContext : IDisposable
{
private readonly AVCodec* _codec;
+ private AVPacket* _packet;
private AVCodecContext* _context;
public FFmpegContext()
@@ -14,20 +15,21 @@ namespace Ryujinx.Graphics.Nvdec.H264
_context = ffmpeg.avcodec_alloc_context3(_codec);
ffmpeg.avcodec_open2(_context, _codec, null);
+
+ _packet = ffmpeg.av_packet_alloc();
}
public int DecodeFrame(Surface output, ReadOnlySpan<byte> bitstream)
{
- AVPacket packet;
-
- ffmpeg.av_init_packet(&packet);
+ // Ensure the packet is clean before proceeding
+ ffmpeg.av_packet_unref(_packet);
fixed (byte* ptr = bitstream)
{
- packet.data = ptr;
- packet.size = bitstream.Length;
+ _packet->data = ptr;
+ _packet->size = bitstream.Length;
- int rc = ffmpeg.avcodec_send_packet(_context, &packet);
+ int rc = ffmpeg.avcodec_send_packet(_context, _packet);
if (rc != 0)
{
@@ -40,6 +42,11 @@ namespace Ryujinx.Graphics.Nvdec.H264
public void Dispose()
{
+ fixed (AVPacket** ppPacket = &_packet)
+ {
+ ffmpeg.av_packet_free(ppPacket);
+ }
+
ffmpeg.avcodec_close(_context);
fixed (AVCodecContext** ppContext = &_context)
diff --git a/Ryujinx.Graphics.Nvdec.H264/Ryujinx.Graphics.Nvdec.H264.csproj b/Ryujinx.Graphics.Nvdec.H264/Ryujinx.Graphics.Nvdec.H264.csproj
index 2d54173c..fdcdae06 100644
--- a/Ryujinx.Graphics.Nvdec.H264/Ryujinx.Graphics.Nvdec.H264.csproj
+++ b/Ryujinx.Graphics.Nvdec.H264/Ryujinx.Graphics.Nvdec.H264.csproj
@@ -6,7 +6,7 @@
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="FFmpeg.AutoGen" Version="4.3.0" />
+ <PackageReference Include="FFmpeg.AutoGen" Version="4.4.0" />
</ItemGroup>
<ItemGroup>
diff --git a/Ryujinx/Ryujinx.csproj b/Ryujinx/Ryujinx.csproj
index 59edc919..c4d75874 100644
--- a/Ryujinx/Ryujinx.csproj
+++ b/Ryujinx/Ryujinx.csproj
@@ -15,7 +15,7 @@
<PackageReference Include="DiscordRichPresence" Version="1.0.166" />
<PackageReference Include="GtkSharp" Version="3.22.25.128" />
<PackageReference Include="GtkSharp.Dependencies" Version="1.1.0" Condition="'$(RuntimeIdentifier)' != 'linux-x64' AND '$(RuntimeIdentifier)' != 'osx-x64'" />
- <PackageReference Include="Ryujinx.Graphics.Nvdec.Dependencies" Version="4.3.0" Condition="'$(RuntimeIdentifier)' != 'linux-x64' AND '$(RuntimeIdentifier)' != 'osx-x64'" />
+ <PackageReference Include="Ryujinx.Graphics.Nvdec.Dependencies" Version="4.4.0-build7" Condition="'$(RuntimeIdentifier)' != 'linux-x64' AND '$(RuntimeIdentifier)' != 'osx-x64'" />
<PackageReference Include="Ryujinx.Audio.OpenAL.Dependencies" Version="1.21.0.1" Condition="'$(RuntimeIdentifier)' != 'linux-x64' AND '$(RuntimeIdentifier)' != 'osx-x64'" />
<PackageReference Include="OpenTK.Graphics" Version="4.5.0" />
<PackageReference Include="SPB" Version="0.0.2" />