diff options
Diffstat (limited to 'Ryujinx.Graphics.Nvdec/VDec/VpxBitStreamWriter.cs')
| -rw-r--r-- | Ryujinx.Graphics.Nvdec/VDec/VpxBitStreamWriter.cs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Ryujinx.Graphics.Nvdec/VDec/VpxBitStreamWriter.cs b/Ryujinx.Graphics.Nvdec/VDec/VpxBitStreamWriter.cs new file mode 100644 index 00000000..97ada333 --- /dev/null +++ b/Ryujinx.Graphics.Nvdec/VDec/VpxBitStreamWriter.cs @@ -0,0 +1,38 @@ +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); + } + } + } +}
\ No newline at end of file |
