Ticket #1799: mpegts.patch.txt

File mpegts.patch.txt, 1.4 KB (added by dm@…, 19 years ago)
Line 
1Index: 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;