forked from Mirror/Ryujinx
38 lines
800 B
C#
38 lines
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);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|