Пример #1
0
        public static PSIDescriptor ParseDescriptor(byte[] data, int offset, byte length)
        {
            DESCRIPTOR_TAGS descriptorTag = (DESCRIPTOR_TAGS)data[offset];
            PSIDescriptor   descriptor;

            switch (descriptorTag)
            {
            case DESCRIPTOR_TAGS.DESCR_SERVICE:
                descriptor = new PSIDescriptorService(); break;

            case DESCRIPTOR_TAGS.DESCR_STD:
                descriptor = new PSIDescriptorSTD(); break;

            case DESCRIPTOR_TAGS.DESCR_ISO_639_LANGUAGE:
                descriptor = new PSIDescriptorISO639Language(); break;

            case DESCRIPTOR_TAGS.DESCR_SUBTITLING:
                descriptor = new PSIDescriptorSubtitling(); break;

            case DESCRIPTOR_TAGS.DESCR_TELETEXT:
                descriptor = new PSIDescriptorTeletext(); break;

            case DESCRIPTOR_TAGS.DESCR_AC3:
                descriptor = new PSIDescriptorAC3(); break;

            case DESCRIPTOR_TAGS.DESCR_CA_IDENT:
                descriptor = new PSIDescriptorCAIdentifier(); break;

            case DESCRIPTOR_TAGS.DESCR_CA_SYSTEM:
                descriptor = new PSIDescriptorCASystem(); break;

            case DESCRIPTOR_TAGS.DESCR_CA:
                descriptor = new PSIDescriptorCA(); break;

            case DESCRIPTOR_TAGS.DESCR_DATA_BROADCAST_ID:
                descriptor = new PSIDescriptorDataBroadcastId(); break;

            case DESCRIPTOR_TAGS.DESCR_LOGICAL_CHANNEL:
                descriptor = new PSIDescriptorLogicalChannel(); break;

            case DESCRIPTOR_TAGS.DESCR_HD_SIMULCAST_LOGICAL_CHANNEL:
                descriptor = new PSIDescriptorHDSimulcastLogicalChannel(); break;

            default:
                descriptor             = new PSIDescriptor();
                descriptor.unparseData = new byte[length];
                Array.Copy(data, offset + 2, descriptor.unparseData, 0, length);
                break;
            }
            descriptor.Parse(data, offset);
            return(descriptor);
        }
Пример #2
0
 public virtual void Parse(byte[] data, int offset)
 {
     this.descriptorTag    = (DESCRIPTOR_TAGS)data[offset];
     this.descriptorLength = data[offset + 1];
 }
Пример #3
0
 public virtual void Parse(byte[] data, int offset)
 {
     this.descriptorTag = (DESCRIPTOR_TAGS)data[offset];
     this.descriptorLength = data[offset + 1];
 }