diff options
Diffstat (limited to 'Ryujinx.Graphics/VDec/VpxBitStreamWriter.cs')
| -rw-r--r-- | Ryujinx.Graphics/VDec/VpxBitStreamWriter.cs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Ryujinx.Graphics/VDec/VpxBitStreamWriter.cs b/Ryujinx.Graphics/VDec/VpxBitStreamWriter.cs new file mode 100644 index 00000000..0c712d2c --- /dev/null +++ b/Ryujinx.Graphics/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 |
