1 | Index: libs/libavformat/mpegts.c |
---|
2 | =================================================================== |
---|
3 | --- libs/libavformat/mpegts.c (revision 10421) |
---|
4 | +++ libs/libavformat/mpegts.c (working copy) |
---|
5 | @@ -648,6 +648,16 @@ |
---|
6 | |
---|
7 | if (dvbci.txt_type && (stream_type == STREAM_TYPE_PRIVATE_DATA)) |
---|
8 | stream_type = STREAM_TYPE_VBI_DVB; |
---|
9 | + |
---|
10 | + if ((dvbci.component_tag >= 0) && (stream_type == STREAM_TYPE_PRIVATE_DATA)) |
---|
11 | + { |
---|
12 | + /* Audio and video are sometimes encoded in private streams labelled with a component tag. */ |
---|
13 | + if (dvbci.language[0]) |
---|
14 | + stream_type = STREAM_TYPE_AUDIO_MPEG2; |
---|
15 | + else |
---|
16 | + stream_type = STREAM_TYPE_VIDEO_MPEG2; |
---|
17 | + } |
---|
18 | + |
---|
19 | #ifdef DEBUG_SI |
---|
20 | av_log(NULL, AV_LOG_DEBUG, "stream_type=%d pid=0x%x\n", stream_type, pid); |
---|
21 | #endif |
---|
22 | @@ -845,7 +855,6 @@ |
---|
23 | case STREAM_TYPE_AUDIO_AAC: |
---|
24 | case STREAM_TYPE_AUDIO_AC3: |
---|
25 | case STREAM_TYPE_AUDIO_DTS: |
---|
26 | - case STREAM_TYPE_PRIVATE_DATA: |
---|
27 | case STREAM_TYPE_VBI_DVB: |
---|
28 | case STREAM_TYPE_SUBTITLE_DVB: |
---|
29 | case STREAM_TYPE_DSMCC_B: |
---|
30 | @@ -1420,7 +1429,6 @@ |
---|
31 | codec_type = CODEC_TYPE_DATA; |
---|
32 | codec_id = CODEC_ID_DSMCC_B; |
---|
33 | break; |
---|
34 | - case STREAM_TYPE_PRIVATE_DATA: |
---|
35 | default: |
---|
36 | if (code >= 0x1c0 && code <= 0x1df) { |
---|
37 | codec_type = CODEC_TYPE_AUDIO; |
---|