VpxBitStreamWriter.cs 800 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. using System.IO;
  2. namespace Ryujinx.Graphics.VDec
  3. {
  4. class VpxBitStreamWriter : BitStreamWriter
  5. {
  6. public VpxBitStreamWriter(Stream BaseStream) : base(BaseStream) { }
  7. public void WriteU(int Value, int ValueSize)
  8. {
  9. WriteBits(Value, ValueSize);
  10. }
  11. public void WriteS(int Value, int ValueSize)
  12. {
  13. bool Sign = Value < 0;
  14. if (Sign)
  15. {
  16. Value = -Value;
  17. }
  18. WriteBits((Value << 1) | (Sign ? 1 : 0), ValueSize + 1);
  19. }
  20. public void WriteDeltaQ(int Value)
  21. {
  22. bool DeltaCoded = Value != 0;
  23. WriteBit(DeltaCoded);
  24. if (DeltaCoded)
  25. {
  26. WriteBits(Value, 4);
  27. }
  28. }
  29. }
  30. }