/// <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> /// Ü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); } }
/// <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); } } }