Okay, I've been doing a little testing with the PS too... It isn't a stream number thing, or *shouldn't* be. As far as I can tell, if you start watching TV with (say) an MPEG stream, it will be on track #0. If you change to a channel with AC3, it will put this on track #1. And then on any subsequent channel changes, the MPEG stream will be on track #0 or the AC3 stream will be on track #1.
Of course, it will keep selecting the AC3 track even if no packets are there. So you just roll the track number over to the MPEG track, if you see MPEG packets. The mpegts.c code correctly assigns the audio tracks if there is MPEG, AC3, or MPEG&AC3 (it has a PMT to help). Incrementing the stream number if we see other stream packets will not work on MPEG&AC3 broadcasts nor will the fix for recognising multiple packets, nor will checking wantedAudioStream (because it may be wrong anyway). *sigh* The PS *should* keep the (for the moment, single) audio track on track #0. I understand a PS doesn't really have the information to detect a stream has disappeared (and hence no call to av_remove_stream in mpeg.c). Incidently, it doesn't cause a problem with video as the codec never changes. Mpeg.c keeps pumping the new video stream into the old stream. We could either fix mpeg.c, or somehow get avformatdecoder.cpp to detect when a stream is no longer there (and blacklist it?). The first option would be better, but a lot more difficult. Tim.
_______________________________________________ mythtv-dev mailing list [email protected] http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev
