Example #1
0
 public Filter(StreamParserContext owner, FilterDataCallback filterDataCallback, DataType dataType, UInt16 pid, Int64 filterDepth, byte[] mask, byte[] match)
     : base(owner)
 {
     this.DataCallback = filterDataCallback;
     SetChannelCondition(dataType, pid);
     SetFilterCondition(filterDepth, mask, match);//Additional filter conditions for section filter.
 }
Example #2
0
 public Channel(StreamParserContext owner, UInt16 pid, FilterDataCallback dataCallback, DataType dataType)
     : base(owner)
 {
     this.dataType            = dataType;
     this.pid                 = pid;
     this.channelDataCallback = dataCallback;
 }
Example #3
0
        public WorkerFileDataSearch(StreamParserContext owner, MessageHandlerDelegate messageCallbackFromOwner, SearchRequest searchRequest)
            : base(owner, messageCallbackFromOwner)
        {
            this.sectionManager = new ManagerSection(owner);
            this.streamDemux    = new StreamDemux(owner);
            this.searchRequest  = searchRequest;

            //In search mode. We will not parse standard SI/PSI sections, instead ,we will set up a filter for the expected data.

            Filter filterForSearch = null;

            if (searchRequest.SearchType == DataType.SECTION)
            {
                //To search sections.
                filterForSearch = new Filter(owner, HandleDataFromDemux, searchRequest.SearchType, searchRequest.SelectedPid, searchRequest.FilterMask.Length, searchRequest.FilterMask, searchRequest.FilterMatch);
            }
            else
            {
                //To search TS packet or PES packet.
                filterForSearch = new Filter(owner, HandleDataFromDemux, searchRequest.SearchType, searchRequest.SelectedPid);
            }

            //In order to fitler out what we are expecting.
            streamDemux.AddFilter(filterForSearch);
        }
Example #4
0
        public StreamParserCore(StreamParserContext owner, MessageHandlerDelegate messageCallback)
            : base(owner)
        {
            this.streamDemux = new StreamDemux(owner);

            /**
             * Create all necessary modules even we don't need all them in some cases.
             * In live environment,i.e. IP network or device, we will need all of them.
             */
            sectionManager = new ManagerSection(owner);

            serviceManager = new ManagerService(owner);

            streamBitrateManager = new ManagerMuxBitrate();

            pidManager = new ManagerPid(owner);

            AddDefaultPidType();

            this.messageCallback = messageCallback;

            //Set up filters to receive standard SI/PSI sections.
            EnableStandardFilters(streamDemux);
        }
Example #5
0
 public WorkerFilePidUpdate(StreamParserContext owner, MessageHandlerDelegate messageCallbackFromOwner)
     : base(owner, messageCallbackFromOwner)
 {
 }
Example #6
0
 public Filter(StreamParserContext owner, FilterDataCallback filterDataCallback, DataType dataType, UInt16 pid)
     : base(owner)
 {
     this.DataCallback = filterDataCallback;
     SetChannelCondition(dataType, pid);
 }
Example #7
0
 public ManagerPid(StreamParserContext owner)
     : base(owner)
 {
 }
Example #8
0
 public ManagerService(StreamParserContext owner)
     : base(owner)
 {
 }
Example #9
0
 public StreamParserSession(StreamParserContext owner)
 {
     this.owner = owner;
 }
Example #10
0
 public ManagerSection(StreamParserContext owner)
     : base(owner)
 {
 }
Example #11
0
 public WorkerFileRoutineParsing(StreamParserContext owner, MessageHandlerDelegate messageCallbackFromOwner)
     : base(owner, messageCallbackFromOwner)
 {
     streamParserCore = new StreamParserCore(owner, messageCallbackFromOwner);
 }
Example #12
0
 public StreamDemux(StreamParserContext owner)
     : base(owner)
 {
     filterList = new List <Filter>();
 }