diff options
author | Petri Hintukainen <phintuka@users.sourceforge.net> | 2011-07-22 17:11:03 +0300 |
---|---|---|
committer | Petri Hintukainen <phintuka@users.sourceforge.net> | 2011-07-22 17:11:03 +0300 |
commit | b1e7541d8541f424a374ad8f996b104ffcab7ab9 (patch) | |
tree | 590fab9562d2f4f06e20d059ca672df9cd77672a | |
parent | 3a63341699ba5d1910b76566bcef4c69fd6e4c61 (diff) | |
download | xine-lib-b1e7541d8541f424a374ad8f996b104ffcab7ab9.tar.gz xine-lib-b1e7541d8541f424a374ad8f996b104ffcab7ab9.tar.bz2 |
demux_ts: packet content should be checked for AC3 syncword after checking all descriptors
-rw-r--r-- | src/demuxers/demux_ts.c | 12 |
1 files 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); |