Tj wrote:
But mythfrontend crashes...Prob why it crashes on my machine is because in libs/libavformat/mpeg.c, ac3 is still looking for 0x80 instead of 0x1bd, and left codec_id uninitialised.My diff at the end of this email fixes the crash but introduce another problem - switching from a channel with AC3 to a channel with MPEG2 will result in the following message "WriteAudio: buffer underrun".. The video is fine, but there's no sound. But once I restart livetv again, sound is back, until I change channel that uses a different codec.
---- mythfronend ---
2004-12-20 16:51:21.932 AvFormatDecoder: Could not find decoder for codec (86021) aborting.
free(): invalid pointer 0xaf3ee0a8!
* in mpeg.c, should "#define AC3_ID 0x80" be "#define AC3_ID 0xbd" instead? There seem to be inconsisties around AC3_ID..
* the part where I commented out in mpegps_read_pes_header isn't correct, but app will crash if I leave it in.. What is the correct way to fix this?
Regards.
----- diff file
Index: mpeg.c
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libavformat/mpeg.c,v
retrieving revision 1.23
diff -u -r1.23 mpeg.c
--- mpeg.c 30 Nov 2004 02:27:22 -0000 1.23
+++ mpeg.c 20 Dec 2004 10:17:04 -0000
@@ -1458,13 +1458,13 @@
else if( c!= 0xf )
goto redo;- if (startcode == 0x1bd) {
+ /*if (startcode == 0x1bd) {
if (len < 1)
goto redo;
startcode = get_byte(&s->pb);
len--;
if (startcode >= 0x80 && startcode <= 0xbf) {
- /* audio: skip header */
+ //* audio: skip header
if (len < 3)
goto redo;
get_byte(&s->pb);
@@ -1472,7 +1472,7 @@
get_byte(&s->pb);
len -= 3;
}
- }
+ } */
if(dts != AV_NOPTS_VALUE && ppos && s->build_index){
int i;
for(i=0; i<s->nb_streams; i++){
@@ -1512,7 +1512,7 @@
} else if (startcode >= 0x1c0 && startcode <= 0x1df) {
type = CODEC_TYPE_AUDIO;
codec_id = CODEC_ID_MP2;
- } else if (startcode >= 0x80 && startcode <= 0x89) {
+ } else if (startcode >= 0x1b0 && startcode <= 0x1bf) {
type = CODEC_TYPE_AUDIO;
codec_id = CODEC_ID_AC3;
} else if (startcode >= 0x8a && startcode <= 0x9f) {
_______________________________________________ mythtv-dev mailing list [EMAIL PROTECTED] http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev
