Do naming refactoring on Ryujinx.Graphics (#611)
* Renaming part 1 * Renaming part 2 * Renaming part 3 * Renaming part 4 * Renaming part 5 * Renaming part 6 * Renaming part 7 * Renaming part 8 * Renaming part 9 * Renaming part 10 * General cleanup * Thought I got all of these * Apply #595 * Additional renaming * Tweaks from feedback * Rename files
This commit is contained in:
parent
8e71ea0812
commit
1f554c1093
125 changed files with 9121 additions and 9120 deletions
|
@ -4,195 +4,195 @@ namespace Ryujinx.Graphics.VDec
|
|||
{
|
||||
class H264Decoder
|
||||
{
|
||||
private int Log2MaxPicOrderCntLsbMinus4;
|
||||
private bool DeltaPicOrderAlwaysZeroFlag;
|
||||
private bool FrameMbsOnlyFlag;
|
||||
private int PicWidthInMbs;
|
||||
private int PicHeightInMapUnits;
|
||||
private bool EntropyCodingModeFlag;
|
||||
private bool BottomFieldPicOrderInFramePresentFlag;
|
||||
private int NumRefIdxL0DefaultActiveMinus1;
|
||||
private int NumRefIdxL1DefaultActiveMinus1;
|
||||
private bool DeblockingFilterControlPresentFlag;
|
||||
private bool RedundantPicCntPresentFlag;
|
||||
private bool Transform8x8ModeFlag;
|
||||
private bool MbAdaptiveFrameFieldFlag;
|
||||
private bool Direct8x8InferenceFlag;
|
||||
private bool WeightedPredFlag;
|
||||
private bool ConstrainedIntraPredFlag;
|
||||
private bool FieldPicFlag;
|
||||
private bool BottomFieldFlag;
|
||||
private int Log2MaxFrameNumMinus4;
|
||||
private int ChromaFormatIdc;
|
||||
private int PicOrderCntType;
|
||||
private int PicInitQpMinus26;
|
||||
private int ChromaQpIndexOffset;
|
||||
private int ChromaQpIndexOffset2;
|
||||
private int WeightedBipredIdc;
|
||||
private int FrameNumber;
|
||||
private byte[] ScalingMatrix4;
|
||||
private byte[] ScalingMatrix8;
|
||||
private int _log2MaxPicOrderCntLsbMinus4;
|
||||
private bool _deltaPicOrderAlwaysZeroFlag;
|
||||
private bool _frameMbsOnlyFlag;
|
||||
private int _picWidthInMbs;
|
||||
private int _picHeightInMapUnits;
|
||||
private bool _entropyCodingModeFlag;
|
||||
private bool _bottomFieldPicOrderInFramePresentFlag;
|
||||
private int _numRefIdxL0DefaultActiveMinus1;
|
||||
private int _numRefIdxL1DefaultActiveMinus1;
|
||||
private bool _deblockingFilterControlPresentFlag;
|
||||
private bool _redundantPicCntPresentFlag;
|
||||
private bool _transform8x8ModeFlag;
|
||||
private bool _mbAdaptiveFrameFieldFlag;
|
||||
private bool _direct8x8InferenceFlag;
|
||||
private bool _weightedPredFlag;
|
||||
private bool _constrainedIntraPredFlag;
|
||||
private bool _fieldPicFlag;
|
||||
private bool _bottomFieldFlag;
|
||||
private int _log2MaxFrameNumMinus4;
|
||||
private int _chromaFormatIdc;
|
||||
private int _picOrderCntType;
|
||||
private int _picInitQpMinus26;
|
||||
private int _chromaQpIndexOffset;
|
||||
private int _chromaQpIndexOffset2;
|
||||
private int _weightedBipredIdc;
|
||||
private int _frameNumber;
|
||||
private byte[] _scalingMatrix4;
|
||||
private byte[] _scalingMatrix8;
|
||||
|
||||
public void Decode(H264ParameterSets Params, H264Matrices Matrices, byte[] FrameData)
|
||||
public void Decode(H264ParameterSets Params, H264Matrices matrices, byte[] frameData)
|
||||
{
|
||||
Log2MaxPicOrderCntLsbMinus4 = Params.Log2MaxPicOrderCntLsbMinus4;
|
||||
DeltaPicOrderAlwaysZeroFlag = Params.DeltaPicOrderAlwaysZeroFlag;
|
||||
FrameMbsOnlyFlag = Params.FrameMbsOnlyFlag;
|
||||
PicWidthInMbs = Params.PicWidthInMbs;
|
||||
PicHeightInMapUnits = Params.PicHeightInMapUnits;
|
||||
EntropyCodingModeFlag = Params.EntropyCodingModeFlag;
|
||||
BottomFieldPicOrderInFramePresentFlag = Params.BottomFieldPicOrderInFramePresentFlag;
|
||||
NumRefIdxL0DefaultActiveMinus1 = Params.NumRefIdxL0DefaultActiveMinus1;
|
||||
NumRefIdxL1DefaultActiveMinus1 = Params.NumRefIdxL1DefaultActiveMinus1;
|
||||
DeblockingFilterControlPresentFlag = Params.DeblockingFilterControlPresentFlag;
|
||||
RedundantPicCntPresentFlag = Params.RedundantPicCntPresentFlag;
|
||||
Transform8x8ModeFlag = Params.Transform8x8ModeFlag;
|
||||
_log2MaxPicOrderCntLsbMinus4 = Params.Log2MaxPicOrderCntLsbMinus4;
|
||||
_deltaPicOrderAlwaysZeroFlag = Params.DeltaPicOrderAlwaysZeroFlag;
|
||||
_frameMbsOnlyFlag = Params.FrameMbsOnlyFlag;
|
||||
_picWidthInMbs = Params.PicWidthInMbs;
|
||||
_picHeightInMapUnits = Params.PicHeightInMapUnits;
|
||||
_entropyCodingModeFlag = Params.EntropyCodingModeFlag;
|
||||
_bottomFieldPicOrderInFramePresentFlag = Params.BottomFieldPicOrderInFramePresentFlag;
|
||||
_numRefIdxL0DefaultActiveMinus1 = Params.NumRefIdxL0DefaultActiveMinus1;
|
||||
_numRefIdxL1DefaultActiveMinus1 = Params.NumRefIdxL1DefaultActiveMinus1;
|
||||
_deblockingFilterControlPresentFlag = Params.DeblockingFilterControlPresentFlag;
|
||||
_redundantPicCntPresentFlag = Params.RedundantPicCntPresentFlag;
|
||||
_transform8x8ModeFlag = Params.Transform8x8ModeFlag;
|
||||
|
||||
MbAdaptiveFrameFieldFlag = ((Params.Flags >> 0) & 1) != 0;
|
||||
Direct8x8InferenceFlag = ((Params.Flags >> 1) & 1) != 0;
|
||||
WeightedPredFlag = ((Params.Flags >> 2) & 1) != 0;
|
||||
ConstrainedIntraPredFlag = ((Params.Flags >> 3) & 1) != 0;
|
||||
FieldPicFlag = ((Params.Flags >> 5) & 1) != 0;
|
||||
BottomFieldFlag = ((Params.Flags >> 6) & 1) != 0;
|
||||
_mbAdaptiveFrameFieldFlag = ((Params.Flags >> 0) & 1) != 0;
|
||||
_direct8x8InferenceFlag = ((Params.Flags >> 1) & 1) != 0;
|
||||
_weightedPredFlag = ((Params.Flags >> 2) & 1) != 0;
|
||||
_constrainedIntraPredFlag = ((Params.Flags >> 3) & 1) != 0;
|
||||
_fieldPicFlag = ((Params.Flags >> 5) & 1) != 0;
|
||||
_bottomFieldFlag = ((Params.Flags >> 6) & 1) != 0;
|
||||
|
||||
Log2MaxFrameNumMinus4 = (int)(Params.Flags >> 8) & 0xf;
|
||||
ChromaFormatIdc = (int)(Params.Flags >> 12) & 0x3;
|
||||
PicOrderCntType = (int)(Params.Flags >> 14) & 0x3;
|
||||
PicInitQpMinus26 = (int)(Params.Flags >> 16) & 0x3f;
|
||||
ChromaQpIndexOffset = (int)(Params.Flags >> 22) & 0x1f;
|
||||
ChromaQpIndexOffset2 = (int)(Params.Flags >> 27) & 0x1f;
|
||||
WeightedBipredIdc = (int)(Params.Flags >> 32) & 0x3;
|
||||
FrameNumber = (int)(Params.Flags >> 46) & 0x1ffff;
|
||||
_log2MaxFrameNumMinus4 = (int)(Params.Flags >> 8) & 0xf;
|
||||
_chromaFormatIdc = (int)(Params.Flags >> 12) & 0x3;
|
||||
_picOrderCntType = (int)(Params.Flags >> 14) & 0x3;
|
||||
_picInitQpMinus26 = (int)(Params.Flags >> 16) & 0x3f;
|
||||
_chromaQpIndexOffset = (int)(Params.Flags >> 22) & 0x1f;
|
||||
_chromaQpIndexOffset2 = (int)(Params.Flags >> 27) & 0x1f;
|
||||
_weightedBipredIdc = (int)(Params.Flags >> 32) & 0x3;
|
||||
_frameNumber = (int)(Params.Flags >> 46) & 0x1ffff;
|
||||
|
||||
PicInitQpMinus26 = (PicInitQpMinus26 << 26) >> 26;
|
||||
ChromaQpIndexOffset = (ChromaQpIndexOffset << 27) >> 27;
|
||||
ChromaQpIndexOffset2 = (ChromaQpIndexOffset2 << 27) >> 27;
|
||||
_picInitQpMinus26 = (_picInitQpMinus26 << 26) >> 26;
|
||||
_chromaQpIndexOffset = (_chromaQpIndexOffset << 27) >> 27;
|
||||
_chromaQpIndexOffset2 = (_chromaQpIndexOffset2 << 27) >> 27;
|
||||
|
||||
ScalingMatrix4 = Matrices.ScalingMatrix4;
|
||||
ScalingMatrix8 = Matrices.ScalingMatrix8;
|
||||
_scalingMatrix4 = matrices.ScalingMatrix4;
|
||||
_scalingMatrix8 = matrices.ScalingMatrix8;
|
||||
|
||||
if (FFmpegWrapper.IsInitialized)
|
||||
{
|
||||
FFmpegWrapper.DecodeFrame(FrameData);
|
||||
FFmpegWrapper.DecodeFrame(frameData);
|
||||
}
|
||||
else
|
||||
{
|
||||
FFmpegWrapper.H264Initialize();
|
||||
|
||||
FFmpegWrapper.DecodeFrame(DecoderHelper.Combine(EncodeHeader(), FrameData));
|
||||
FFmpegWrapper.DecodeFrame(DecoderHelper.Combine(EncodeHeader(), frameData));
|
||||
}
|
||||
}
|
||||
|
||||
private byte[] EncodeHeader()
|
||||
{
|
||||
using (MemoryStream Data = new MemoryStream())
|
||||
using (MemoryStream data = new MemoryStream())
|
||||
{
|
||||
H264BitStreamWriter Writer = new H264BitStreamWriter(Data);
|
||||
H264BitStreamWriter writer = new H264BitStreamWriter(data);
|
||||
|
||||
//Sequence Parameter Set.
|
||||
Writer.WriteU(1, 24);
|
||||
Writer.WriteU(0, 1);
|
||||
Writer.WriteU(3, 2);
|
||||
Writer.WriteU(7, 5);
|
||||
Writer.WriteU(100, 8);
|
||||
Writer.WriteU(0, 8);
|
||||
Writer.WriteU(31, 8);
|
||||
Writer.WriteUe(0);
|
||||
Writer.WriteUe(ChromaFormatIdc);
|
||||
writer.WriteU(1, 24);
|
||||
writer.WriteU(0, 1);
|
||||
writer.WriteU(3, 2);
|
||||
writer.WriteU(7, 5);
|
||||
writer.WriteU(100, 8);
|
||||
writer.WriteU(0, 8);
|
||||
writer.WriteU(31, 8);
|
||||
writer.WriteUe(0);
|
||||
writer.WriteUe(_chromaFormatIdc);
|
||||
|
||||
if (ChromaFormatIdc == 3)
|
||||
if (_chromaFormatIdc == 3)
|
||||
{
|
||||
Writer.WriteBit(false);
|
||||
writer.WriteBit(false);
|
||||
}
|
||||
|
||||
Writer.WriteUe(0);
|
||||
Writer.WriteUe(0);
|
||||
Writer.WriteBit(false);
|
||||
Writer.WriteBit(false); //Scaling matrix present flag
|
||||
writer.WriteUe(0);
|
||||
writer.WriteUe(0);
|
||||
writer.WriteBit(false);
|
||||
writer.WriteBit(false); //Scaling matrix present flag
|
||||
|
||||
Writer.WriteUe(Log2MaxFrameNumMinus4);
|
||||
Writer.WriteUe(PicOrderCntType);
|
||||
writer.WriteUe(_log2MaxFrameNumMinus4);
|
||||
writer.WriteUe(_picOrderCntType);
|
||||
|
||||
if (PicOrderCntType == 0)
|
||||
if (_picOrderCntType == 0)
|
||||
{
|
||||
Writer.WriteUe(Log2MaxPicOrderCntLsbMinus4);
|
||||
writer.WriteUe(_log2MaxPicOrderCntLsbMinus4);
|
||||
}
|
||||
else if (PicOrderCntType == 1)
|
||||
else if (_picOrderCntType == 1)
|
||||
{
|
||||
Writer.WriteBit(DeltaPicOrderAlwaysZeroFlag);
|
||||
writer.WriteBit(_deltaPicOrderAlwaysZeroFlag);
|
||||
|
||||
Writer.WriteSe(0);
|
||||
Writer.WriteSe(0);
|
||||
Writer.WriteUe(0);
|
||||
writer.WriteSe(0);
|
||||
writer.WriteSe(0);
|
||||
writer.WriteUe(0);
|
||||
}
|
||||
|
||||
int PicHeightInMbs = PicHeightInMapUnits / (FrameMbsOnlyFlag ? 1 : 2);
|
||||
int picHeightInMbs = _picHeightInMapUnits / (_frameMbsOnlyFlag ? 1 : 2);
|
||||
|
||||
Writer.WriteUe(16);
|
||||
Writer.WriteBit(false);
|
||||
Writer.WriteUe(PicWidthInMbs - 1);
|
||||
Writer.WriteUe(PicHeightInMbs - 1);
|
||||
Writer.WriteBit(FrameMbsOnlyFlag);
|
||||
writer.WriteUe(16);
|
||||
writer.WriteBit(false);
|
||||
writer.WriteUe(_picWidthInMbs - 1);
|
||||
writer.WriteUe(picHeightInMbs - 1);
|
||||
writer.WriteBit(_frameMbsOnlyFlag);
|
||||
|
||||
if (!FrameMbsOnlyFlag)
|
||||
if (!_frameMbsOnlyFlag)
|
||||
{
|
||||
Writer.WriteBit(MbAdaptiveFrameFieldFlag);
|
||||
writer.WriteBit(_mbAdaptiveFrameFieldFlag);
|
||||
}
|
||||
|
||||
Writer.WriteBit(Direct8x8InferenceFlag);
|
||||
Writer.WriteBit(false); //Frame cropping flag
|
||||
Writer.WriteBit(false); //VUI parameter present flag
|
||||
writer.WriteBit(_direct8x8InferenceFlag);
|
||||
writer.WriteBit(false); //Frame cropping flag
|
||||
writer.WriteBit(false); //VUI parameter present flag
|
||||
|
||||
Writer.End();
|
||||
writer.End();
|
||||
|
||||
//Picture Parameter Set.
|
||||
Writer.WriteU(1, 24);
|
||||
Writer.WriteU(0, 1);
|
||||
Writer.WriteU(3, 2);
|
||||
Writer.WriteU(8, 5);
|
||||
writer.WriteU(1, 24);
|
||||
writer.WriteU(0, 1);
|
||||
writer.WriteU(3, 2);
|
||||
writer.WriteU(8, 5);
|
||||
|
||||
Writer.WriteUe(0);
|
||||
Writer.WriteUe(0);
|
||||
writer.WriteUe(0);
|
||||
writer.WriteUe(0);
|
||||
|
||||
Writer.WriteBit(EntropyCodingModeFlag);
|
||||
Writer.WriteBit(false);
|
||||
Writer.WriteUe(0);
|
||||
Writer.WriteUe(NumRefIdxL0DefaultActiveMinus1);
|
||||
Writer.WriteUe(NumRefIdxL1DefaultActiveMinus1);
|
||||
Writer.WriteBit(WeightedPredFlag);
|
||||
Writer.WriteU(WeightedBipredIdc, 2);
|
||||
Writer.WriteSe(PicInitQpMinus26);
|
||||
Writer.WriteSe(0);
|
||||
Writer.WriteSe(ChromaQpIndexOffset);
|
||||
Writer.WriteBit(DeblockingFilterControlPresentFlag);
|
||||
Writer.WriteBit(ConstrainedIntraPredFlag);
|
||||
Writer.WriteBit(RedundantPicCntPresentFlag);
|
||||
Writer.WriteBit(Transform8x8ModeFlag);
|
||||
writer.WriteBit(_entropyCodingModeFlag);
|
||||
writer.WriteBit(false);
|
||||
writer.WriteUe(0);
|
||||
writer.WriteUe(_numRefIdxL0DefaultActiveMinus1);
|
||||
writer.WriteUe(_numRefIdxL1DefaultActiveMinus1);
|
||||
writer.WriteBit(_weightedPredFlag);
|
||||
writer.WriteU(_weightedBipredIdc, 2);
|
||||
writer.WriteSe(_picInitQpMinus26);
|
||||
writer.WriteSe(0);
|
||||
writer.WriteSe(_chromaQpIndexOffset);
|
||||
writer.WriteBit(_deblockingFilterControlPresentFlag);
|
||||
writer.WriteBit(_constrainedIntraPredFlag);
|
||||
writer.WriteBit(_redundantPicCntPresentFlag);
|
||||
writer.WriteBit(_transform8x8ModeFlag);
|
||||
|
||||
Writer.WriteBit(true);
|
||||
writer.WriteBit(true);
|
||||
|
||||
for (int Index = 0; Index < 6; Index++)
|
||||
for (int index = 0; index < 6; index++)
|
||||
{
|
||||
Writer.WriteBit(true);
|
||||
writer.WriteBit(true);
|
||||
|
||||
WriteScalingList(Writer, ScalingMatrix4, Index * 16, 16);
|
||||
WriteScalingList(writer, _scalingMatrix4, index * 16, 16);
|
||||
}
|
||||
|
||||
if (Transform8x8ModeFlag)
|
||||
if (_transform8x8ModeFlag)
|
||||
{
|
||||
for (int Index = 0; Index < 2; Index++)
|
||||
for (int index = 0; index < 2; index++)
|
||||
{
|
||||
Writer.WriteBit(true);
|
||||
writer.WriteBit(true);
|
||||
|
||||
WriteScalingList(Writer, ScalingMatrix8, Index * 64, 64);
|
||||
WriteScalingList(writer, _scalingMatrix8, index * 64, 64);
|
||||
}
|
||||
}
|
||||
|
||||
Writer.WriteSe(ChromaQpIndexOffset2);
|
||||
writer.WriteSe(_chromaQpIndexOffset2);
|
||||
|
||||
Writer.End();
|
||||
writer.End();
|
||||
|
||||
return Data.ToArray();
|
||||
return data.ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -217,21 +217,21 @@ namespace Ryujinx.Graphics.VDec
|
|||
3 + 1 * 4, 3 + 2 * 4, 2 + 3 * 4, 3 + 3 * 4
|
||||
};
|
||||
|
||||
private static void WriteScalingList(H264BitStreamWriter Writer, byte[] List, int Start, int Count)
|
||||
private static void WriteScalingList(H264BitStreamWriter writer, byte[] list, int start, int count)
|
||||
{
|
||||
byte[] Scan = Count == 16 ? ZigZagScan : ZigZagDirect;
|
||||
byte[] scan = count == 16 ? ZigZagScan : ZigZagDirect;
|
||||
|
||||
int LastScale = 8;
|
||||
int lastScale = 8;
|
||||
|
||||
for (int Index = 0; Index < Count; Index++)
|
||||
for (int index = 0; index < count; index++)
|
||||
{
|
||||
byte Value = List[Start + Scan[Index]];
|
||||
byte value = list[start + scan[index]];
|
||||
|
||||
int DeltaScale = Value - LastScale;
|
||||
int deltaScale = value - lastScale;
|
||||
|
||||
Writer.WriteSe(DeltaScale);
|
||||
writer.WriteSe(deltaScale);
|
||||
|
||||
LastScale = Value;
|
||||
lastScale = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue