Пример #1
0
            /// <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 );
                }
            }
Пример #2
0
            /// <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;
            }
Пример #3
0
            /// <summary>
            /// Überträgt Nutzdaten zur Analyse.
            /// </summary>
            /// <param name="version">Der Änderungszähler, zu dem die Nutzdaten gehören.</param>
            /// <param name="buffer">Der Zwischenspeicher mit den Nutzdaten.</param>
            /// <param name="start">Das erste zu benutzende Byte im Zwischenspeicher.</param>
            /// <param name="length">Die Anzahl der im Zwischenspeicher zu benutzenden Bytes.</param>
            public void AddPayload(int version, byte[] buffer, int start, int length)
            {
                // Check it
                if (version != m_Version)
                {
                    return;
                }

                // Attach to stream
                TS.StreamBase stream = m_Stream;

                // Report
                if (stream != null)
                {
                    stream.AddPayload(buffer, start, length);
                }
            }
Пример #4
0
            /// <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);
                    }
                }
            }
Пример #5
0
            /// <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;
            }