public H264Slice(EltH264Nalu nalu, H264Decoder decoder) : base(nalu) { switch (nalu.NaluType) { case NalUnitType.NAL_UNIT_CODED_SLICE: case NalUnitType.NAL_UNIT_AUX_CODED_SLICE: case NalUnitType.NAL_UNIT_CODED_SLICE_DATAPART_A: case NalUnitType.NAL_UNIT_CODED_SLICE_DATAPART_B: case NalUnitType.NAL_UNIT_CODED_SLICE_DATAPART_C: case NalUnitType.NAL_UNIT_CODED_SLICE_IDR: case NalUnitType.NAL_UNIT_CODED_SLICE_SCALABLE: break; default: throw new NotImplementedException(); } EltSyntax eltSyntax; eltSyntax = nalu.FindSyntax("pic_parameter_set_id"); Debug.Assert(eltSyntax != null); m_PicParamSetId = (UInt32)eltSyntax.Value; m_PicParamSet = decoder.FindPicParamSet(m_PicParamSetId); Debug.Assert(m_PicParamSet != null); m_SeqParamSet = m_PicParamSet.SeqParamSet; Debug.Assert(m_SeqParamSet != null); m_Macroblocs = new Dictionary<UInt32, Macroblock>(); ExplodeMacroblocs(nalu); }
public H264Slice(EltH264Nalu nalu, H264Decoder decoder) : base(nalu) { switch (nalu.NaluType) { case NalUnitType.NAL_UNIT_CODED_SLICE: case NalUnitType.NAL_UNIT_AUX_CODED_SLICE: case NalUnitType.NAL_UNIT_CODED_SLICE_DATAPART_A: case NalUnitType.NAL_UNIT_CODED_SLICE_DATAPART_B: case NalUnitType.NAL_UNIT_CODED_SLICE_DATAPART_C: case NalUnitType.NAL_UNIT_CODED_SLICE_IDR: case NalUnitType.NAL_UNIT_CODED_SLICE_SCALABLE: break; default: throw new NotImplementedException(); } EltSyntax eltSyntax; eltSyntax = nalu.FindSyntax("pic_parameter_set_id"); Debug.Assert(eltSyntax != null); m_PicParamSetId = (UInt32)eltSyntax.Value; m_PicParamSet = decoder.FindPicParamSet(m_PicParamSetId); Debug.Assert(m_PicParamSet != null); m_SeqParamSet = m_PicParamSet.SeqParamSet; Debug.Assert(m_SeqParamSet != null); m_Macroblocs = new Dictionary <UInt32, Macroblock>(); ExplodeMacroblocs(nalu); }
public H264Picture(UInt32 layerId, UInt32 index, H264PicParamSet defaultPicParamSet, H264SeqParamSet defaultSeqParamSet) : base(layerId, index) { m_DefaultSeqParamSet = defaultSeqParamSet; m_DefaultPicParamSet = defaultPicParamSet; m_Slices = new Dictionary <UInt32, H264Slice>(); m_Images = new Bitmap[Utils.GetMaxEnumValue <CommonEltMbDataType_t>()]; m_Md5YUV = new String[Utils.GetMaxEnumValue <CommonEltMbDataType_t>()]; m_Md5Y = new String[Utils.GetMaxEnumValue <CommonEltMbDataType_t>()]; m_Md5U = new String[Utils.GetMaxEnumValue <CommonEltMbDataType_t>()]; m_Md5V = new String[Utils.GetMaxEnumValue <CommonEltMbDataType_t>()]; }
public H264Picture(UInt32 layerId, UInt32 index, H264PicParamSet defaultPicParamSet, H264SeqParamSet defaultSeqParamSet) : base(layerId, index) { m_DefaultSeqParamSet = defaultSeqParamSet; m_DefaultPicParamSet = defaultPicParamSet; m_Slices = new Dictionary<UInt32, H264Slice>(); m_Images = new Bitmap[Utils.GetMaxEnumValue<CommonEltMbDataType_t>()]; m_Md5YUV = new String[Utils.GetMaxEnumValue<CommonEltMbDataType_t>()]; m_Md5Y = new String[Utils.GetMaxEnumValue<CommonEltMbDataType_t>()]; m_Md5U = new String[Utils.GetMaxEnumValue<CommonEltMbDataType_t>()]; m_Md5V = new String[Utils.GetMaxEnumValue<CommonEltMbDataType_t>()]; }
void AddPicParamSet(H264PicParamSet picParamSet) { m_PicParamSets[picParamSet.Id] = picParamSet; }