forked from Mirror/Ryujinx
Update to FFmpeg 4.4.0 (#2259)
* Update to FFmpeg 4.4.0 As the title say * Fix warning from 4.4.0
This commit is contained in:
parent
3443023a08
commit
fcdfd8a482
3 changed files with 15 additions and 8 deletions
|
@ -6,6 +6,7 @@ namespace Ryujinx.Graphics.Nvdec.H264
|
||||||
unsafe class FFmpegContext : IDisposable
|
unsafe class FFmpegContext : IDisposable
|
||||||
{
|
{
|
||||||
private readonly AVCodec* _codec;
|
private readonly AVCodec* _codec;
|
||||||
|
private AVPacket* _packet;
|
||||||
private AVCodecContext* _context;
|
private AVCodecContext* _context;
|
||||||
|
|
||||||
public FFmpegContext()
|
public FFmpegContext()
|
||||||
|
@ -14,20 +15,21 @@ namespace Ryujinx.Graphics.Nvdec.H264
|
||||||
_context = ffmpeg.avcodec_alloc_context3(_codec);
|
_context = ffmpeg.avcodec_alloc_context3(_codec);
|
||||||
|
|
||||||
ffmpeg.avcodec_open2(_context, _codec, null);
|
ffmpeg.avcodec_open2(_context, _codec, null);
|
||||||
|
|
||||||
|
_packet = ffmpeg.av_packet_alloc();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int DecodeFrame(Surface output, ReadOnlySpan<byte> bitstream)
|
public int DecodeFrame(Surface output, ReadOnlySpan<byte> bitstream)
|
||||||
{
|
{
|
||||||
AVPacket packet;
|
// Ensure the packet is clean before proceeding
|
||||||
|
ffmpeg.av_packet_unref(_packet);
|
||||||
ffmpeg.av_init_packet(&packet);
|
|
||||||
|
|
||||||
fixed (byte* ptr = bitstream)
|
fixed (byte* ptr = bitstream)
|
||||||
{
|
{
|
||||||
packet.data = ptr;
|
_packet->data = ptr;
|
||||||
packet.size = bitstream.Length;
|
_packet->size = bitstream.Length;
|
||||||
|
|
||||||
int rc = ffmpeg.avcodec_send_packet(_context, &packet);
|
int rc = ffmpeg.avcodec_send_packet(_context, _packet);
|
||||||
|
|
||||||
if (rc != 0)
|
if (rc != 0)
|
||||||
{
|
{
|
||||||
|
@ -40,6 +42,11 @@ namespace Ryujinx.Graphics.Nvdec.H264
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
|
fixed (AVPacket** ppPacket = &_packet)
|
||||||
|
{
|
||||||
|
ffmpeg.av_packet_free(ppPacket);
|
||||||
|
}
|
||||||
|
|
||||||
ffmpeg.avcodec_close(_context);
|
ffmpeg.avcodec_close(_context);
|
||||||
|
|
||||||
fixed (AVCodecContext** ppContext = &_context)
|
fixed (AVCodecContext** ppContext = &_context)
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="FFmpeg.AutoGen" Version="4.3.0" />
|
<PackageReference Include="FFmpeg.AutoGen" Version="4.4.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
<PackageReference Include="DiscordRichPresence" Version="1.0.166" />
|
<PackageReference Include="DiscordRichPresence" Version="1.0.166" />
|
||||||
<PackageReference Include="GtkSharp" Version="3.22.25.128" />
|
<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="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="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="OpenTK.Graphics" Version="4.5.0" />
|
||||||
<PackageReference Include="SPB" Version="0.0.2" />
|
<PackageReference Include="SPB" Version="0.0.2" />
|
||||||
|
|
Reference in a new issue