| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- using System.Runtime.InteropServices;
- namespace Ryujinx.Graphics.VDec
- {
- [StructLayout(LayoutKind.Sequential, Pack = 2)]
- struct Vp9FrameDimensions
- {
- public short Width;
- public short Height;
- public short SubsamplingX; //?
- public short SubsamplingY; //?
- }
- [StructLayout(LayoutKind.Sequential, Pack = 1)]
- struct Vp9FrameHeader
- {
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
- public Vp9FrameDimensions[] RefFrames;
- public Vp9FrameDimensions CurrentFrame;
- public int Flags;
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
- public byte[] RefFrameSignBias;
- public byte LoopFilterLevel;
- public byte LoopFilterSharpness;
- public byte BaseQIndex;
- public sbyte DeltaQYDc;
- public sbyte DeltaQUvDc;
- public sbyte DeltaQUvAc;
- [MarshalAs(UnmanagedType.I1)]
- public bool Lossless;
- public byte TxMode;
- [MarshalAs(UnmanagedType.I1)]
- public bool AllowHighPrecisionMv;
- public byte RawInterpolationFilter;
- public byte CompPredMode;
- public byte FixCompRef;
- public byte VarCompRef0;
- public byte VarCompRef1;
- public byte TileColsLog2;
- public byte TileRowsLog2;
- [MarshalAs(UnmanagedType.I1)]
- public bool SegmentationEnabled;
- [MarshalAs(UnmanagedType.I1)]
- public bool SegmentationUpdate;
- [MarshalAs(UnmanagedType.I1)]
- public bool SegmentationTemporalUpdate;
- [MarshalAs(UnmanagedType.I1)]
- public bool SegmentationAbsOrDeltaUpdate;
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8 * 4, ArraySubType = UnmanagedType.I1)]
- public bool[] FeatureEnabled;
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8 * 4)]
- public short[] FeatureData;
- [MarshalAs(UnmanagedType.I1)]
- public bool LoopFilterDeltaEnabled;
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
- public sbyte[] LoopFilterRefDeltas;
- [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)]
- public sbyte[] LoopFilterModeDeltas;
- }
- }
|