/// <summary> /// Overridden method to process local tags /// </summary> /// <param name="localTag"></param> protected override bool ParseLocalTag(MXFReader reader, MXFLocalTag localTag) { switch (localTag.Tag) { case 0x3D03: this.AudioSamplingRate = reader.ReadRational(); return(true); case 0x3D02: this.Locked = reader.ReadBool(); return(true); case 0x3D04: this.AudioRefLevel = reader.ReadSignedByte(); return(true); case 0x3D05: this.ElectroSpatialFormulation = (MXFElectroSpatialFormulation)reader.ReadByte(); return(true); case 0x3D07: this.ChannelCount = reader.ReadUInt32(); return(true); case 0x3D01: this.QuantizationBits = reader.ReadUInt32(); return(true); case 0x3D0C: this.DialNorm = reader.ReadSignedByte(); return(true); case 0x3D06: this.SoundEssenceCoding = reader.ReadULKey(); return(true); case var _ when localTag.Key == refImageEditRate_Key: this.ReferenceImageEditRate = reader.ReadRational(); return(true); case var _ when localTag.Key == refAudioAlignmentLevel: this.ReferenceAudioAlignmentLevel = reader.ReadByte(); return(true); } return(base.ParseLocalTag(reader, localTag)); }
public MXFEntryIndex(UInt64 index, MXFReader reader, byte?sliceCount, byte?posTableCount, UInt32 length) : base(reader) { this.m_eType = MXFObjectType.Index; this.Length = length; this.Index = index; this.TemporalOffset = reader.ReadSignedByte(); this.KeyFrameOffset = reader.ReadSignedByte(); this.Flags = new IndexEntryFlags(reader.ReadByte()); this.StreamOffset = reader.ReadUInt64(); if (sliceCount.HasValue && sliceCount.Value > 0) { this.SliceOffsets = new UInt32[sliceCount.Value]; for (int n = 0; n < sliceCount; n++) { this.SliceOffsets[n] = reader.ReadUInt32(); } } if (posTableCount.HasValue && posTableCount.Value > 0) { this.PosTable = new MXFRational[posTableCount.Value]; for (int n = 0; n < posTableCount; n++) { this.PosTable[n] = reader.ReadRational(); } } }
public MXFEntryDelta(MXFReader reader, UInt32 length) : base(reader) { this.m_eType = MXFObjectType.Index; this.Length = length; this.PosTableIndex = reader.ReadSignedByte(); this.Slice = reader.ReadByte(); this.ElementDelta = reader.ReadUInt32(); }