NVDEC implementation using FFmpeg (#443)
* Initial nvdec implementation using FFmpeg * Fix swapped channels on the video decoder and the G8R8 texture format * Fix texture samplers not being set properly (regression) * Rebased * Remove unused code introduced on the rebase * Add support for RGBA8 output format on the video image composer * Correct spacing * Some fixes for rebase and other tweaks * Allow size mismatch on frame copy * Get rid of GetHostAddress calls on VDec
This commit is contained in:
parent
ad00fd0244
commit
c86aacde76
65 changed files with 2795 additions and 76 deletions
|
@ -1,4 +1,8 @@
|
|||
using Ryujinx.Graphics.Gal;
|
||||
using Ryujinx.Graphics.Graphics3d;
|
||||
using Ryujinx.Graphics.Memory;
|
||||
using Ryujinx.Graphics.VDec;
|
||||
using Ryujinx.Graphics.Vic;
|
||||
|
||||
namespace Ryujinx.Graphics
|
||||
{
|
||||
|
@ -16,6 +20,10 @@ namespace Ryujinx.Graphics
|
|||
internal NvGpuEngineM2mf EngineM2mf { get; private set; }
|
||||
internal NvGpuEngineP2mf EngineP2mf { get; private set; }
|
||||
|
||||
private CdmaProcessor CdmaProcessor;
|
||||
internal VideoDecoder VideoDecoder { get; private set; }
|
||||
internal VideoImageComposer VideoImageComposer { get; private set; }
|
||||
|
||||
public NvGpu(IGalRenderer Renderer)
|
||||
{
|
||||
this.Renderer = Renderer;
|
||||
|
@ -29,6 +37,26 @@ namespace Ryujinx.Graphics
|
|||
Engine3d = new NvGpuEngine3d(this);
|
||||
EngineM2mf = new NvGpuEngineM2mf(this);
|
||||
EngineP2mf = new NvGpuEngineP2mf(this);
|
||||
|
||||
CdmaProcessor = new CdmaProcessor(this);
|
||||
VideoDecoder = new VideoDecoder(this);
|
||||
VideoImageComposer = new VideoImageComposer(this);
|
||||
}
|
||||
|
||||
public void PushCommandBuffer(NvGpuVmm Vmm, int[] CmdBuffer)
|
||||
{
|
||||
lock (CdmaProcessor)
|
||||
{
|
||||
CdmaProcessor.PushCommands(Vmm, CmdBuffer);
|
||||
}
|
||||
}
|
||||
|
||||
public void UninitializeVideoDecoder()
|
||||
{
|
||||
lock (CdmaProcessor)
|
||||
{
|
||||
FFmpegWrapper.Uninitialize();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue