/// <summary>
            /// Erzeugt einen neuen Analysator.
            /// </summary>
            /// <param name="master">Die zugehörige Instanz zur Einspielung der
            /// Pakete in den Graphen.</param>
            /// <param name="majorType">Die Hauptart des Datenstromformates.</param>
            /// <param name="minorType">Die Variante des Datenstromformates.</param>
            public _StreamConsumer( ESInjector master, Guid majorType, Guid minorType )
            {
                // Remember
                m_Master = master;

                // Get the current version
                m_Version = m_Master.CurrentVersion;

                // Stream depends on media type
                if (majorType == Constants.KSDATAFORMAT_TYPE_VIDEO)
                {
                    // Create video stream
                    if (minorType == Constants.KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO)
                        m_Stream = new TS.VideoStream( this, 514, true );
                    else
                        m_Stream = new TS.HDTVStream( this, 514, true );

                    // Make sure that length in PES header is accepted
                    ((TS.VideoStream) m_Stream).AcceptAnyLength = true;
                }
                else
                {
                    // Create audio stream
                    if (minorType == Constants.KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO)
                        m_Stream = new TS.AudioStream( this, 515, false );
                    else
                        m_Stream = new TS.DolbyStream( this, 515, false );
                }
            }
            /// <summary>
            /// Beendet die Nutzung dieser Instanz endgültig.
            /// </summary>
            public void Dispose()
            {
                // Forget stream
                using (TS.StreamBase stream = m_Stream)
                    m_Stream = null;

                // Forget master
                m_Master = null;
            }
        /// <summary>
        /// Legt die Art der Bilddaten fest.
        /// </summary>
        /// <param name="type">Die gewünschte Art der Bilddaten.</param>
        public void SetVideoType(MediaType type)
        {
            // Validate
            using (ESInjector filter = m_Video)
                if (filter != null)
                {
                    // Forget
                    m_Video = null;

                    // Cleanup buffer
                    filter.Inject(null, 0, 0);
                }

            // Create new
            if (type != null)
            {
                m_Video = new ESInjector(this, "Video", type);
            }
        }
            /// <summary>
            /// Erzeugt einen neuen Analysator.
            /// </summary>
            /// <param name="master">Die zugehörige Instanz zur Einspielung der
            /// Pakete in den Graphen.</param>
            /// <param name="majorType">Die Hauptart des Datenstromformates.</param>
            /// <param name="minorType">Die Variante des Datenstromformates.</param>
            public _StreamConsumer(ESInjector master, Guid majorType, Guid minorType)
            {
                // Remember
                m_Master = master;

                // Get the current version
                m_Version = m_Master.CurrentVersion;

                // Stream depends on media type
                if (majorType == Constants.KSDATAFORMAT_TYPE_VIDEO)
                {
                    // Create video stream
                    if (minorType == Constants.KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO)
                    {
                        m_Stream = new TS.VideoStream(this, 514, true);
                    }
                    else
                    {
                        m_Stream = new TS.HDTVStream(this, 514, true);
                    }

                    // Make sure that length in PES header is accepted
                    ((TS.VideoStream)m_Stream).AcceptAnyLength = true;
                }
                else
                {
                    // Create audio stream
                    if (minorType == Constants.KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO)
                    {
                        m_Stream = new TS.AudioStream(this, 515, false);
                    }
                    else
                    {
                        m_Stream = new TS.DolbyStream(this, 515, false);
                    }
                }
            }
            /// <summary>
            /// Beendet die Nutzung dieser Instanz endgültig.
            /// </summary>
            public void Dispose()
            {
                // Forget stream
                using (TS.StreamBase stream = m_Stream)
                    m_Stream = null;

                // Forget master
                m_Master = null;
            }