예제 #1
0
        internal ContentEncoding(Stream stream)
        {
            ElementReader reader = new ElementReader(stream);

            while (!reader.EOF)
            {
                eElement id = reader.readElementId();
                switch (id)
                {
                case eElement.ContentEncodingOrder:
                    contentEncodingOrder = reader.readUlong(0);
                    break;

                case eElement.ContentEncodingScope:
                    contentEncodingScope = (eContentEncodingScope)reader.readByte(1);
                    break;

                case eElement.ContentEncodingType:
                    contentEncodingType = (eContentEncodingType)reader.readByte(0);
                    break;

                case eElement.ContentCompression:
                    contentCompression = new ContentCompression(stream);
                    break;

                case eElement.ContentEncryption:
                    contentEncryption = new ContentEncryption(stream);
                    break;

                default:
                    reader.skipElement();
                    break;
                }
            }
        }
예제 #2
0
        internal Projection(Stream stream)
        {
            ElementReader reader = new ElementReader(stream);

            while (!reader.EOF)
            {
                eElement id = reader.readElementId();
                switch (id)
                {
                case eElement.ProjectionType:
                    projectionType = (eProjectionType)reader.readByte(0);
                    break;

                case eElement.ProjectionPrivate:
                    projectionPrivate = Blob.read(reader);
                    break;

                case eElement.ProjectionPoseYaw:
                    projectionPoseYaw = reader.readFloat(0);
                    break;

                case eElement.ProjectionPosePitch:
                    projectionPosePitch = reader.readFloat(0);
                    break;

                case eElement.ProjectionPoseRoll:
                    projectionPoseRoll = reader.readFloat(0);
                    break;

                default:
                    reader.skipElement();
                    break;
                }
            }
        }
예제 #3
0
        internal ContentEncryption(Stream stream)
        {
            ElementReader reader = new ElementReader(stream);

            while (!reader.EOF)
            {
                eElement id = reader.readElementId();
                switch (id)
                {
                case eElement.ContentEncAlgo:
                    contentEncAlgo = (eContentEncAlgo)reader.readByte(0);
                    break;

                case eElement.ContentEncKeyID:
                    contentEncKeyID = Blob.read(reader);
                    break;

                case eElement.ContentEncAESSettings:
                    contentEncAESSettings = new ContentEncAESSettings(stream);
                    break;

                case eElement.ContentSignature:
                    contentSignature = Blob.read(reader);
                    break;

                case eElement.ContentSigKeyID:
                    contentSigKeyID = Blob.read(reader);
                    break;

                case eElement.ContentSigAlgo:
                    contentSigAlgo = (eContentSigAlgo)reader.readByte(0);
                    break;

                case eElement.ContentSigHashAlgo:
                    contentSigHashAlgo = (eContentSigHashAlgo)reader.readByte(0);
                    break;

                default:
                    reader.skipElement();
                    break;
                }
            }
        }
예제 #4
0
        internal ContentEncAESSettings(Stream stream)
        {
            ElementReader reader = new ElementReader(stream);

            while (!reader.EOF)
            {
                eElement id = reader.readElementId();
                switch (id)
                {
                case eElement.AESSettingsCipherMode:
                    aESSettingsCipherMode = (eAESSettingsCipherMode)reader.readByte();
                    break;

                default:
                    reader.skipElement();
                    break;
                }
            }
        }
예제 #5
0
        internal ContentCompression(Stream stream)
        {
            ElementReader reader = new ElementReader(stream);

            while (!reader.EOF)
            {
                eElement id = reader.readElementId();
                switch (id)
                {
                case eElement.ContentCompAlgo:
                    contentCompAlgo = (eContentCompAlgo)reader.readByte(0);
                    break;

                case eElement.ContentCompSettings:
                    contentCompSettings = reader.readByteArray();
                    break;

                default:
                    reader.skipElement();
                    break;
                }
            }
        }
예제 #6
0
        internal TrackPlane(Stream stream)
        {
            ElementReader reader = new ElementReader(stream);

            while (!reader.EOF)
            {
                eElement id = reader.readElementId();
                switch (id)
                {
                case eElement.TrackPlaneUID:
                    trackPlaneUID = reader.readUlong();
                    break;

                case eElement.TrackPlaneType:
                    trackPlaneType = (eTrackPlaneType)reader.readByte();
                    break;

                default:
                    reader.skipElement();
                    break;
                }
            }
        }
예제 #7
0
        internal ChapProcessCommand(Stream stream)
        {
            ElementReader reader = new ElementReader(stream);

            while (!reader.EOF)
            {
                eElement id = reader.readElementId();
                switch (id)
                {
                case eElement.ChapProcessTime:
                    chapProcessTime = (eChapProcessTime)reader.readByte();
                    break;

                case eElement.ChapProcessData:
                    chapProcessData = Blob.read(reader);
                    break;

                default:
                    reader.skipElement();
                    break;
                }
            }
        }
예제 #8
0
        internal TrackTranslate(Stream stream)
        {
            List <ulong>  trackTranslateEditionUIDlist = null;
            ElementReader reader = new ElementReader(stream);

            while (!reader.EOF)
            {
                eElement id = reader.readElementId();
                switch (id)
                {
                case eElement.TrackTranslateEditionUID:
                    if (null == trackTranslateEditionUIDlist)
                    {
                        trackTranslateEditionUIDlist = new List <ulong>();
                    }
                    trackTranslateEditionUIDlist.Add(reader.readUlong());
                    break;

                case eElement.TrackTranslateCodec:
                    trackTranslateCodec = (eTrackTranslateCodec)reader.readByte();
                    break;

                case eElement.TrackTranslateTrackID:
                    trackTranslateTrackID = Blob.read(reader);
                    break;

                default:
                    reader.skipElement();
                    break;
                }
            }
            if (trackTranslateEditionUIDlist != null)
            {
                trackTranslateEditionUID = trackTranslateEditionUIDlist.ToArray();
            }
        }
예제 #9
0
        internal ChapterTranslate(Stream stream)
        {
            List <ulong>  chapterTranslateEditionUIDlist = null;
            ElementReader reader = new ElementReader(stream);

            while (!reader.EOF)
            {
                eElement id = reader.readElementId();
                switch (id)
                {
                case eElement.ChapterTranslateEditionUID:
                    if (null == chapterTranslateEditionUIDlist)
                    {
                        chapterTranslateEditionUIDlist = new List <ulong>();
                    }
                    chapterTranslateEditionUIDlist.Add(reader.readUlong());
                    break;

                case eElement.ChapterTranslateCodec:
                    chapterTranslateCodec = (eChapterTranslateCodec)reader.readByte();
                    break;

                case eElement.ChapterTranslateID:
                    chapterTranslateID = reader.readByteArray();
                    break;

                default:
                    reader.skipElement();
                    break;
                }
            }
            if (chapterTranslateEditionUIDlist != null)
            {
                chapterTranslateEditionUID = chapterTranslateEditionUIDlist.ToArray();
            }
        }
예제 #10
0
        internal Targets(Stream stream)
        {
            List <ulong>  tagTrackUIDlist      = null;
            List <ulong>  tagEditionUIDlist    = null;
            List <ulong>  tagChapterUIDlist    = null;
            List <ulong>  tagAttachmentUIDlist = null;
            ElementReader reader = new ElementReader(stream);

            while (!reader.EOF)
            {
                eElement id = reader.readElementId();
                switch (id)
                {
                case eElement.TargetTypeValue:
                    targetTypeValue = (eTargetTypeValue)reader.readByte(50);
                    break;

                case eElement.TargetType:
                    targetType = Enum.Parse <eTargetType>(reader.readAscii());
                    break;

                case eElement.TagTrackUID:
                    if (null == tagTrackUIDlist)
                    {
                        tagTrackUIDlist = new List <ulong>();
                    }
                    tagTrackUIDlist.Add(reader.readUlong(0));
                    break;

                case eElement.TagEditionUID:
                    if (null == tagEditionUIDlist)
                    {
                        tagEditionUIDlist = new List <ulong>();
                    }
                    tagEditionUIDlist.Add(reader.readUlong(0));
                    break;

                case eElement.TagChapterUID:
                    if (null == tagChapterUIDlist)
                    {
                        tagChapterUIDlist = new List <ulong>();
                    }
                    tagChapterUIDlist.Add(reader.readUlong(0));
                    break;

                case eElement.TagAttachmentUID:
                    if (null == tagAttachmentUIDlist)
                    {
                        tagAttachmentUIDlist = new List <ulong>();
                    }
                    tagAttachmentUIDlist.Add(reader.readUlong(0));
                    break;

                default:
                    reader.skipElement();
                    break;
                }
            }
            if (tagTrackUIDlist != null)
            {
                tagTrackUID = tagTrackUIDlist.ToArray();
            }
            if (tagEditionUIDlist != null)
            {
                tagEditionUID = tagEditionUIDlist.ToArray();
            }
            if (tagChapterUIDlist != null)
            {
                tagChapterUID = tagChapterUIDlist.ToArray();
            }
            if (tagAttachmentUIDlist != null)
            {
                tagAttachmentUID = tagAttachmentUIDlist.ToArray();
            }
        }
예제 #11
0
        internal TrackEntry(Stream stream)
        {
            List <BlockAdditionMapping> blockAdditionMappinglist = null;
            List <string>         codecInfoURLlist     = null;
            List <string>         codecDownloadURLlist = null;
            List <ulong>          trackOverlaylist     = null;
            List <TrackTranslate> trackTranslatelist   = null;
            ElementReader         reader = new ElementReader(stream);

            while (!reader.EOF)
            {
                eElement id = reader.readElementId();
                switch (id)
                {
                case eElement.TrackNumber:
                    trackNumber = reader.readUlong();
                    break;

                case eElement.TrackUID:
                    trackUID = reader.readUlong();
                    break;

                case eElement.TrackType:
                    trackType = (eTrackType)reader.readByte();
                    break;

                case eElement.FlagEnabled:
                    flagEnabled = (byte)reader.readUint(1);
                    break;

                case eElement.FlagDefault:
                    flagDefault = (byte)reader.readUint(1);
                    break;

                case eElement.FlagForced:
                    flagForced = (byte)reader.readUint(0);
                    break;

                case eElement.FlagLacing:
                    flagLacing = (byte)reader.readUint(1);
                    break;

                case eElement.MinCache:
                    minCache = reader.readUlong(0);
                    break;

                case eElement.MaxCache:
                    maxCache = reader.readUlong();
                    break;

                case eElement.DefaultDuration:
                    defaultDuration = reader.readUlong();
                    break;

                case eElement.DefaultDecodedFieldDuration:
                    defaultDecodedFieldDuration = reader.readUlong();
                    break;

                case eElement.TrackOffset:
                    trackOffset = reader.readInt(0);
                    break;

                case eElement.MaxBlockAdditionID:
                    maxBlockAdditionID = reader.readUlong(0);
                    break;

                case eElement.BlockAdditionMapping:
                    if (null == blockAdditionMappinglist)
                    {
                        blockAdditionMappinglist = new List <BlockAdditionMapping>();
                    }
                    blockAdditionMappinglist.Add(new BlockAdditionMapping(stream));
                    break;

                case eElement.Name:
                    name = reader.readUtf8();
                    break;

                case eElement.Language:
                    language = reader.readAscii();
                    break;

                case eElement.LanguageIETF:
                    languageIETF = reader.readAscii();
                    break;

                case eElement.CodecID:
                    codecID = reader.readAscii();
                    break;

                case eElement.CodecPrivate:
                    codecPrivate = reader.readByteArray();
                    break;

                case eElement.CodecName:
                    codecName = reader.readUtf8();
                    break;

                case eElement.AttachmentLink:
                    attachmentLink = reader.readUlong();
                    break;

                case eElement.CodecSettings:
                    codecSettings = reader.readUtf8();
                    break;

                case eElement.CodecInfoURL:
                    if (null == codecInfoURLlist)
                    {
                        codecInfoURLlist = new List <string>();
                    }
                    codecInfoURLlist.Add(reader.readAscii());
                    break;

                case eElement.CodecDownloadURL:
                    if (null == codecDownloadURLlist)
                    {
                        codecDownloadURLlist = new List <string>();
                    }
                    codecDownloadURLlist.Add(reader.readAscii());
                    break;

                case eElement.CodecDecodeAll:
                    codecDecodeAll = (byte)reader.readUint(1);
                    break;

                case eElement.TrackOverlay:
                    if (null == trackOverlaylist)
                    {
                        trackOverlaylist = new List <ulong>();
                    }
                    trackOverlaylist.Add(reader.readUlong());
                    break;

                case eElement.CodecDelay:
                    codecDelay = reader.readUlong(0);
                    break;

                case eElement.SeekPreRoll:
                    seekPreRoll = reader.readUlong(0);
                    break;

                case eElement.TrackTranslate:
                    if (null == trackTranslatelist)
                    {
                        trackTranslatelist = new List <TrackTranslate>();
                    }
                    trackTranslatelist.Add(new TrackTranslate(stream));
                    break;

                case eElement.Video:
                    video = new Video(stream);
                    break;

                case eElement.Audio:
                    audio = new Audio(stream);
                    break;

                case eElement.TrackOperation:
                    trackOperation = new TrackOperation(stream);
                    break;

                case eElement.TrickTrackUID:
                    trickTrackUID = reader.readUlong();
                    break;

                case eElement.TrickTrackSegmentUID:
                    trickTrackSegmentUID = reader.readGuid();
                    break;

                case eElement.TrickTrackFlag:
                    trickTrackFlag = reader.readUlong(0);
                    break;

                case eElement.TrickMasterTrackUID:
                    trickMasterTrackUID = reader.readUlong();
                    break;

                case eElement.TrickMasterTrackSegmentUID:
                    trickMasterTrackSegmentUID = reader.readGuid();
                    break;

                case eElement.ContentEncodings:
                    contentEncodings = new ContentEncodings(stream);
                    break;

                default:
                    reader.skipElement();
                    break;
                }
            }
            if (blockAdditionMappinglist != null)
            {
                blockAdditionMapping = blockAdditionMappinglist.ToArray();
            }
            if (codecInfoURLlist != null)
            {
                codecInfoURL = codecInfoURLlist.ToArray();
            }
            if (codecDownloadURLlist != null)
            {
                codecDownloadURL = codecDownloadURLlist.ToArray();
            }
            if (trackOverlaylist != null)
            {
                trackOverlay = trackOverlaylist.ToArray();
            }
            if (trackTranslatelist != null)
            {
                trackTranslate = trackTranslatelist.ToArray();
            }
        }
예제 #12
0
파일: Colour.cs 프로젝트: zeta1999/Vrmac
        internal Colour(Stream stream)
        {
            ElementReader reader = new ElementReader(stream);

            while (!reader.EOF)
            {
                eElement id = reader.readElementId();
                switch (id)
                {
                case eElement.MatrixCoefficients:
                    matrixCoefficients = (eMatrixCoefficients)reader.readByte(2);
                    break;

                case eElement.BitsPerChannel:
                    bitsPerChannel = reader.readUlong(0);
                    break;

                case eElement.ChromaSubsamplingHorz:
                    chromaSubsamplingHorz = reader.readUlong();
                    break;

                case eElement.ChromaSubsamplingVert:
                    chromaSubsamplingVert = reader.readUlong();
                    break;

                case eElement.CbSubsamplingHorz:
                    cbSubsamplingHorz = reader.readUlong();
                    break;

                case eElement.CbSubsamplingVert:
                    cbSubsamplingVert = reader.readUlong();
                    break;

                case eElement.ChromaSitingHorz:
                    chromaSitingHorz = (eChromaSitingHorz)reader.readByte(0);
                    break;

                case eElement.ChromaSitingVert:
                    chromaSitingVert = (eChromaSitingVert)reader.readByte(0);
                    break;

                case eElement.Range:
                    range = (eRange)reader.readByte(0);
                    break;

                case eElement.TransferCharacteristics:
                    transferCharacteristics = (eTransferCharacteristics)reader.readByte(2);
                    break;

                case eElement.Primaries:
                    primaries = (ePrimaries)reader.readByte(2);
                    break;

                case eElement.MaxCLL:
                    maxCLL = reader.readUlong();
                    break;

                case eElement.MaxFALL:
                    maxFALL = reader.readUlong();
                    break;

                case eElement.MasteringMetadata:
                    masteringMetadata = new MasteringMetadata(stream);
                    break;

                default:
                    reader.skipElement();
                    break;
                }
            }
        }
예제 #13
0
파일: Video.cs 프로젝트: zeta1999/Vrmac
        internal Video(Stream stream)
        {
            ElementReader reader = new ElementReader(stream);

            while (!reader.EOF)
            {
                eElement id = reader.readElementId();
                switch (id)
                {
                case eElement.FlagInterlaced:
                    flagInterlaced = (eFlagInterlaced)reader.readByte(0);
                    break;

                case eElement.FieldOrder:
                    fieldOrder = (eFieldOrder)reader.readByte(2);
                    break;

                case eElement.AlphaMode:
                    alphaMode = reader.readUlong(0);
                    break;

                case eElement.PixelWidth:
                    pixelWidth = reader.readUint();
                    break;

                case eElement.PixelHeight:
                    pixelHeight = reader.readUint();
                    break;

                case eElement.PixelCropBottom:
                    pixelCropBottom = reader.readUint(0);
                    break;

                case eElement.PixelCropTop:
                    pixelCropTop = reader.readUint(0);
                    break;

                case eElement.PixelCropLeft:
                    pixelCropLeft = reader.readUint(0);
                    break;

                case eElement.PixelCropRight:
                    pixelCropRight = reader.readUint(0);
                    break;

                case eElement.DisplayWidth:
                    displayWidth = reader.readUint();
                    break;

                case eElement.DisplayHeight:
                    displayHeight = reader.readUint();
                    break;

                case eElement.DisplayUnit:
                    displayUnit = (eDisplayUnit)reader.readByte(0);
                    break;

                case eElement.AspectRatioType:
                    aspectRatioType = (eAspectRatioType)reader.readByte(0);
                    break;

                case eElement.ColourSpace:
                    colourSpace = reader.readColorSpace();
                    break;

                case eElement.GammaValue:
                    gammaValue = reader.readFloat();
                    break;

                case eElement.FrameRate:
                    frameRate = reader.readFloat();
                    break;

                case eElement.Colour:
                    colour = new Colour(stream);
                    break;

                case eElement.Projection:
                    projection = new Projection(stream);
                    break;

                default:
                    reader.skipElement();
                    break;
                }
            }
        }