From b1e7541d8541f424a374ad8f996b104ffcab7ab9 Mon Sep 17 00:00:00 2001 From: Petri Hintukainen Date: Fri, 22 Jul 2011 17:11:03 +0300 Subject: demux_ts: packet content should be checked for AC3 syncword after checking all descriptors --- src/demuxers/demux_ts.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/demuxers/demux_ts.c b/src/demuxers/demux_ts.c index 491942adc..60cdb9ff2 100644 --- a/src/demuxers/demux_ts.c +++ b/src/demuxers/demux_ts.c @@ -804,9 +804,8 @@ static int demux_ts_parse_pes_header (xine_t *xine, demux_ts_media *m, m->type |= BUF_AUDIO_EAC3; return 1; - } else if((m->descriptor_tag == STREAM_AUDIO_AC3) || /* ac3 - raw */ - (packet_len > 1 && p[0] == 0x0B && p[1] == 0x77)) { /* ac3 - syncword */ - m->content = p; + } else if(m->descriptor_tag == STREAM_AUDIO_AC3) { /* ac3 - raw */ + m->content = p; m->size = packet_len; m->type |= BUF_AUDIO_A52; return 1; @@ -854,6 +853,13 @@ static int demux_ts_parse_pes_header (xine_t *xine, demux_ts_media *m, m->type |= BUF_SPU_DVB; m->buf->decoder_info[2] = payload_len; return 1; + + } else if (p[0] == 0x0B && p[1] == 0x77) { /* ac3 - syncword */ + m->content = p; + m->size = packet_len; + m->type |= BUF_AUDIO_A52; + return 1; + } else if ((p[0] & 0xE0) == 0x20) { spu_id = (p[0] & 0x1f); -- cgit v1.2.3