forked from Mirror/Ryujinx
c86aacde76
* 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
38 lines
No EOL
800 B
C#
38 lines
No EOL
800 B
C#
using System.IO;
|
|
|
|
namespace Ryujinx.Graphics.VDec
|
|
{
|
|
class VpxBitStreamWriter : BitStreamWriter
|
|
{
|
|
public VpxBitStreamWriter(Stream BaseStream) : base(BaseStream) { }
|
|
|
|
public void WriteU(int Value, int ValueSize)
|
|
{
|
|
WriteBits(Value, ValueSize);
|
|
}
|
|
|
|
public void WriteS(int Value, int ValueSize)
|
|
{
|
|
bool Sign = Value < 0;
|
|
|
|
if (Sign)
|
|
{
|
|
Value = -Value;
|
|
}
|
|
|
|
WriteBits((Value << 1) | (Sign ? 1 : 0), ValueSize + 1);
|
|
}
|
|
|
|
public void WriteDeltaQ(int Value)
|
|
{
|
|
bool DeltaCoded = Value != 0;
|
|
|
|
WriteBit(DeltaCoded);
|
|
|
|
if (DeltaCoded)
|
|
{
|
|
WriteBits(Value, 4);
|
|
}
|
|
}
|
|
}
|
|
} |