# HG changeset patch # User nicodvb # Date 1156613502 0 # Node ID 45e1650f9ad54e6447f3d2e3df43946c699d1248 # Parent 7dee65ac137e346f77ff0e73e7436d91664dc3ce don't try to autodetect aac in pes packets (the detection is prone to give wrong results); use the stream_type from the PMT instead diff -r 7dee65ac137e -r 45e1650f9ad5 libmpdemux/demux_ts.c --- a/libmpdemux/demux_ts.c Sat Aug 26 17:10:26 2006 +0000 +++ b/libmpdemux/demux_ts.c Sat Aug 26 17:31:42 2006 +0000 @@ -1425,26 +1425,11 @@ } else if ((stream_id & 0xe0) == 0xc0) { - int profile = 0, srate = 0, channels = 0; - uint32_t hdr, l = 0; - - hdr = (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3]; - if(pes_is_aligned && ((hdr & 0xfff00000) == 0xfff00000)) - { - // ADTS AAC shows with MPA layer 4 (00 in the layer bitstream) - l = 4 - ((hdr & 0x00060000) >> 17); - profile = ((hdr & 0x0000C000) >> 14); - srate = ((hdr & 0x00003c00) >> 10); - channels = ((hdr & 0x000001E0) >> 5); - } - mp_msg(MSGT_DEMUX, MSGL_DBG2, "\n\naudio header: %2X %2X %2X %2X\nLAYER: %d, PROFILE: %d, SRATE=%d, CHANNELS=%d\n\n", p[0], p[1], p[3], p[4], l, profile, srate, channels); - es->start = p; es->size = packet_len; - - if((type_from_pmt == AUDIO_AAC) || (l == 4)) //see in parse_pmt() - es->type = AUDIO_AAC; + if(type_from_pmt != UNKNOWN) + es->type = type_from_pmt; else es->type = AUDIO_MP2;