diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2019-12-31 21:08:02 -0300 |
|---|---|---|
| committer | Thog <thog@protonmail.com> | 2020-01-09 02:13:00 +0100 |
| commit | 0dbfe3c23ee072ec9dbc477f955a163107af2be1 (patch) | |
| tree | f7f3501ef32891e80197717ab18b22a8d88fdb9f /Ryujinx.Graphics.Nvdec/VDec/VpxBitStreamWriter.cs | |
| parent | 6e092c05584ccbbd548ac26c056c1a7edfa6c1a0 (diff) | |
Re-add NVDEC project (not integrated)
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 |
