Пример #1
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);
        }
Пример #2
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);
        }