/// <summary> /// Create a new audio stream and add it to this transport stream. /// </summary> /// <param name="name">The ISO name of the language for this audio stream.</param> /// <returns>The newly created audio stream instance.</returns> public AudioStream AddAudio( string name ) { // Flag bool isPCR; // Run short pid = AddStream( StreamTypes.Audio, 255, false, false, null, out isPCR ); // Set the name of the language if (!string.IsNullOrEmpty( name )) ProgramMap.SetAudioLanguage( pid, name ); // Create AudioStream audio = new AudioStream( this, pid, isPCR ); // Remember m_Streams.Add( audio ); // Make it the guide if ((null != m_Splitter) && (0 == m_GuidePID)) m_GuidePID = pid; // Report return audio; }
/// <summary> /// Erzeugt eine neue Instanz und bindet sie an einen <i>Transport /// Stream</i>. /// </summary> /// <param name="tsFile">Der <i>Transport Stream</i>, zu dem noch keine /// <param name="audioName">Der ISO Name der Sprache.</param> /// Datenströme hinzugefügt wurden.</param> public PVASplitter(Manager tsFile, string audioName) { // Remember TransportStream = tsFile; // Open streams m_Video = TransportStream.AddVideo(255); m_Audio = TransportStream.AddAudio(audioName); // Register self for PTS guidance TransportStream.PVASplitter = this; // Create reader m_Worker = new Thread(new ThreadStart(Worker)); // Configure m_Worker.SetApartmentState(ApartmentState.MTA); // Run it m_Worker.Start(); }