[mythtv] [patch] AC3 patches

Tim Davies tim at opensystems.net.au
Thu Jan 27 19:18:15 EST 2005


Isaac Richards wrote:

>On Thursday 27 January 2005 01:13 pm, Jesper Sörensen wrote:
>  
>
>>Attached you will find the following patches:
>>ac3-1    - scanstream crash fix
>>    
>>
>
>Doesn't handle ignoring the stream later on properly.
>  
>
This is a lot better than a guaranteed segfault.  It does ignore the 
stream, but there is no need to abort everything if it can't find a 
decoder for *one* audio track.  If no audio streams are present (or 
capable of being decoded) then subsequent code *should* deal with this.  
A suggestion or some comments as to why it doesn't handle the streams 
properly might help. 

>  
>
>>ac3-2    - stream change callback
>>    
>>
>
>This one looks ok.
>  
>
One down!

>>ac3-3    - ac3 header fix for transform.c
>>    
>>
>
>Not my call on this.
>
>  
>
I think Marcus gave this the okay...

>>ac3-4.1    - deal with audio codec changes in avformatdecoder
>>    
>>
>
>The audio codec _can't_ change for a given streamtype.  The startcode of a 
>stream in a mpeg file is different based on what codec it is.  Streams
>returned from libavformat are enumerated by the startcode.  A new codec will 
>be given a new logical stream.  If this is necessary, something's badly wrong 
>in the ts2ps junk the dvb code is using.
>  
>
As far as I can see, mpeg.c is not that clever.  Yes, it will try and 
put a stream with the same startcode into the same index in nb_streams.  
It comes a little unstuck when streams disappear on a channel change, 
and then it leaves an "empty" entry in nb_streams (but that is another 
issue).

The avformatdecoder.cpp code is not checking for a codec change *within* 
a stream anyway.  It is checking for a codec change when it selects a 
different stream, and that certainly does happen. A lot!

And it is nothing to do with ts2ps.  Recording the TS requires the same 
patch for the same reasons...

>>ac3-4.2    - setup GUI for ac3wanted option
>>ac3-4.3    - make avformatdecoder auto-select AC3 (if "ac3wanted")
>>    
>>
>
>Won't be applying these, I don't see a need for this option.
>
>  
>
There are situations when you won't want the AC3 stream, if it is 
available.  Of the top of my head, you might have two frontends; one AC3 
capable, and one not.

And surely if you *can* decode AC3 tracks, you want avformatdecoder to 
select that track: otherwise what is the point?  Are you suggesting that 
it randomly selects a track, or uses the first one it finds, or what?  
Should we force the frontend to only be capable of dealing with a single 
audio stream, and let the backend decide?  That doesn't help if you want 
to record all the audio tracks.  Saying there is no use for it doesn't 
help much in terms of finding a solution.

Personally, I'd even prefer that you can manually override this as well, 
and have the ability to select the audio stream you want to listen to at 
the time.  There may be multilingual audio, or commentary tracks?!?


Tim.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mythtv.org/pipermail/mythtv-dev/attachments/20050128/02c077f8/attachment.htm


More information about the mythtv-dev mailing list