public static Class getStructuralMetadataSetClass()

in src/main/java/com/netflix/imflibrary/st0377/header/StructuralMetadata.java [797:916]


    public static Class getStructuralMetadataSetClass(byte[] key)
    {

        if (isPHDRMetadataTrackSubDescriptor(key))
        {
            return PHDRMetaDataTrackSubDescriptor.PHDRMetaDataTrackSubDescriptorBO.class;
        }
        else if (isStructuralMetadata(key) && (key[13] == 0x01))
        {
            switch (key[14])
            {
                case 0x2f :
                    return Preface.PrefaceBO.class;
                case 0x30 :
                    return Object.class; //Identification
                case 0x18 :
                    return ContentStorage.ContentStorageBO.class;
                case 0x23 :
                    return EssenceContainerData.EssenceContainerDataBO.class;
                case 0x36 :
                    return MaterialPackage.MaterialPackageBO.class;
                case 0x37 :
                    return SourcePackage.SourcePackageBO.class;
                case 0x3b :
                    return TimelineTrack.TimelineTrackBO.class;
                case 0x39 :
                    return Object.class; //Event Track
                case 0x3A :
                    return StaticTrack.StaticTrackBO.class;
                case 0x0F:
                    return Sequence.SequenceBO.class;
                case 0x11 :
                    return SourceClip.SourceClipBO.class;
                case 0x14 :
                    return TimecodeComponent.TimecodeComponentBO.class;
                case 0x41 :
                    return DescriptiveMarkerSegment.DescriptiveMarkerSegmentBO.class; //DM Segment
                case 0x45 :
                    return Object.class; //DM Source Clip
                case 0x09 :
                    return Object.class; //Filler
                case 0x60 :
                    return Object.class; //Package Marker Object
                case 0x25 :
                    return FileDescriptor.FileDescriptorBO.class;
                case 0x27 :
                    return GenericPictureEssenceDescriptor.GenericPictureEssenceDescriptorBO.class;
                case 0x28 :
                    return CDCIPictureEssenceDescriptor.CDCIPictureEssenceDescriptorBO.class;
                case 0x29 :
                    return RGBAPictureEssenceDescriptor.RGBAPictureEssenceDescriptorBO.class;
                case 0x42 :
                    return GenericSoundEssenceDescriptor.GenericSoundEssenceDescriptorBO.class;
                case 0x43 :
                    return Object.class; //Generic Data Essence Descriptor
                case 0x44 :
                    return Object.class; //Multiple Descriptor
                case 0x32 :
                    return Object.class; //Network Locator
                case 0x33 :
                    return Object.class; //Text Locator
                case 0x61 :
                    return Object.class; //Application Plug-In Object
                case 0x62 :
                    return Object.class; //Application Referenced Object
                case 0x48 :
                    return WaveAudioEssenceDescriptor.WaveAudioEssenceDescriptorBO.class;
                case 0x64 :
                    return TimedTextDescriptor.TimedTextDescriptorBO.class;
                case 0x65 :
                    return TimeTextResourceSubDescriptor.TimeTextResourceSubdescriptorBO.class;
                case 0x67 :
                    return ContainerConstraintsSubDescriptor.ContainerConstraintsSubDescriptorBO.class;
                case 0x6b :
                    return AudioChannelLabelSubDescriptor.AudioChannelLabelSubDescriptorBO.class;
                case 0x6c :
                    return SoundFieldGroupLabelSubDescriptor.SoundFieldGroupLabelSubDescriptorBO.class;
                case 0x6d :
                    return GroupOfSoundFieldGroupLabelSubDescriptor.GroupOfSoundFieldGroupLabelSubDescriptorBO.class;
                case 0x5A :
                    return JPEG2000PictureSubDescriptor.JPEG2000PictureSubDescriptorBO.class;
                case 0x7B :
                    return IABEssenceDescriptor.IABEssenceDescriptorBO.class;
                case 0x7C :
                    return IABSoundfieldLabelSubDescriptor.IABSoundfieldLabelSubDescriptorBO.class;
                case 0x79 :
                    return ACESPictureSubDescriptor.ACESPictureSubDescriptorBO.class;
                case 0x7a :
                    return TargetFrameSubDescriptor.TargetFrameSubDescriptorBO.class;
                case (byte)0x81 :
                    switch(key[15]) {
                    case 0x06:
                        return MGASoundEssenceDescriptor.MGASoundEssenceDescriptorBO.class;
                    case 0x07:
                        return MGAAudioMetadataSubDescriptor.MGAAudioMetadataSubDescriptorBO.class;
                    case 0x08:
                        return MGASoundfieldGroupLabelSubDescriptor.MGASoundfieldGroupLabelSubDescriptorBO.class;
                    case 0x09:
                        return SADMAudioMetadataSubDescriptor.SADMAudioMetadataSubDescriptorBO.class;
                    default :
                        return Object.class;
                    }
                default :
                    return Object.class;
            }
        }
        else if (isDescriptiveMetadata(key)) { // Metadata Sets for the Text-based Metadata
            if (key[13] == 0x02 && key[14] == 0x01) {
                return GenericStreamTextBasedSet.GenericStreamTextBasedSetBO.class;
            } else if (key[13] == 0x01 && key[14] == 0x01) {
                return TextBasedDMFramework.TextBasedDMFrameworkBO.class;
            } else {
                return Object.class;
            }
        }
        else
        {
            return Object.class;
        }
    }