Esempio n. 1
0
        /// <summary>
        /// Überträgte PES Rohdaen in den DirectShow Graphen.
        /// </summary>
        /// <param name="version">Die aktuelle Version, zu der diese Daten gehören.</param>
        /// <param name="buffer">Zwischenspeicher für die Daten - mit <i>null</i>
        /// wird das Ende des Datenstroms angekündigt.</param>
        /// <param name="offset">Erstes Byte im Zwischenspeicher, dass zu nutzen ist.</param>
        /// <param name="length">Anzahl der Bytes im Ziwschenspeicher, die zu nutzen sind.</param>
        public void Inject(int version, byte[] buffer, int offset, int length)
        {
            // Attach to stream
            _StreamConsumer stream = m_Stream;

            // See if this is a shutdown request
            if (buffer == null)
            {
                Inject(buffer, offset, length, true, null);
            }
            else if (stream != null)
            {
                stream.AddPayload(version, buffer, offset, length);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Beginnt neu mit der Datenstromanalyse.
        /// </summary>
        public override void Clear()
        {
            // Forward to base
            base.Clear();

            // Stop receiving data
            using (_StreamConsumer stream = m_Stream)
                m_Stream = null;

            // New version
            m_Version = Interlocked.Increment(ref m_VersionCounter);

            // Reset all on next packet
            m_Reset = true;

            // Reset receiver
            CreateConsumer();
        }
Esempio n. 3
0
        /// <summary>
        /// Beendet die Nutzung dieser Instanz endgültig.
        /// </summary>
        public override void Dispose()
        {
            // Stop receiving data
            using (_StreamConsumer stream = m_Stream)
                m_Stream = null;

            // Forward to base
            base.Dispose();

            // Forward to pin
            if (null != m_Pin)
            {
                // Forward
                m_Pin.Dispose();

                // Forget
                m_Pin = null;
            }
        }
Esempio n. 4
0
 /// <summary>
 /// Erzeugt eine neue Analyseeinheit.
 /// </summary>
 private void CreateConsumer()
 {
     // Create
     m_Stream = new _StreamConsumer(this, m_MajorType, m_MinorType);
 }
Esempio n. 5
0
        /// <summary>
        /// Beendet die Nutzung dieser Instanz endgültig.
        /// </summary>
        public override void Dispose()
        {
            // Stop receiving data
            using (_StreamConsumer stream = m_Stream)
                m_Stream = null;

            // Forward to base
            base.Dispose();

            // Forward to pin
            if (null != m_Pin)
            {
                // Forward
                m_Pin.Dispose();

                // Forget
                m_Pin = null;
            }
        }
Esempio n. 6
0
        /// <summary>
        /// Beginnt neu mit der Datenstromanalyse.
        /// </summary>
        public override void Clear()
        {
            // Forward to base
            base.Clear();

            // Stop receiving data
            using (_StreamConsumer stream = m_Stream)
                m_Stream = null;

            // New version
            m_Version = Interlocked.Increment( ref m_VersionCounter );

            // Reset all on next packet
            m_Reset = true;

            // Reset receiver
            CreateConsumer();
        }
Esempio n. 7
0
 /// <summary>
 /// Erzeugt eine neue Analyseeinheit.
 /// </summary>
 private void CreateConsumer()
 {
     // Create
     m_Stream = new _StreamConsumer( this, m_MajorType, m_MinorType );
 }