From a897d48ffe7d0bae393373cbdf98d239682b4291 Mon Sep 17 00:00:00 2001 From: phintuka Date: Tue, 2 Aug 2011 17:44:54 +0000 Subject: demux_ts: packet content should be checked for AC3 syncword after checking all descriptors --- xine/BluRay/demux_ts.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/xine/BluRay/demux_ts.c b/xine/BluRay/demux_ts.c index 2bd47eea..26bc68b5 100644 --- a/xine/BluRay/demux_ts.c +++ b/xine/BluRay/demux_ts.c @@ -861,9 +861,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 */ - (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; @@ -912,6 +911,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