summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorphintuka <phintuka>2011-08-02 17:44:54 +0000
committerphintuka <phintuka>2011-08-02 17:44:54 +0000
commita897d48ffe7d0bae393373cbdf98d239682b4291 (patch)
tree0fdabb55b81708c982570f5568f0b9ad25e36e7d
parent44f8ce93d27bbca8500369a7cb89914249c8276e (diff)
downloadxineliboutput-a897d48ffe7d0bae393373cbdf98d239682b4291.tar.gz
xineliboutput-a897d48ffe7d0bae393373cbdf98d239682b4291.tar.bz2
demux_ts: packet content should be checked for AC3 syncword after checking all descriptors
-rw-r--r--xine/BluRay/demux_ts.c12
1 files 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);