This patch simply adds demuxing support for AC-3 streams in DVB TS
authorMåns Rullgård <mans@mansr.com>
Sat, 1 Apr 2006 19:02:40 +0000 (19:02 +0000)
committerMåns Rullgård <mans@mansr.com>
Sat, 1 Apr 2006 19:02:40 +0000 (19:02 +0000)
files.  In these streams AC-3 is given type 0x06 (private stream) and
includes a descriptor with either tag 0x6A or 0x7A.  The code already
handles ATSC AC-3 which uses stream type 0x81.  All the new patch does
is look for any stream type 0x06 that has a descriptor with the proper
tag (i.e. 0x6A or 0x7A) and if found forces it to be recognized as an
AC-3 stream.
From Andy Brown <abrown at daqtron com>

Originally committed as revision 5260 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/mpegts.c

index 09cb116..54e7043 100644 (file)
@@ -427,6 +427,11 @@ static void pmt_cb(void *opaque, const uint8_t *section, int section_len)
             desc_tag = get8(&p, desc_list_end);
             if (desc_tag < 0)
                 break;
             desc_tag = get8(&p, desc_list_end);
             if (desc_tag < 0)
                 break;
+            if (stream_type == STREAM_TYPE_PRIVATE_DATA &&
+                ((desc_tag == 0x6A) || (desc_tag == 0x7A))) {
+                    /*assume DVB AC-3 Audio*/
+                    stream_type = STREAM_TYPE_AUDIO_AC3;
+            }
             desc_len = get8(&p, desc_list_end);
             desc_end = p + desc_len;
             if (desc_end > desc_list_end)
             desc_len = get8(&p, desc_list_end);
             desc_end = p + desc_len;
             if (desc_end > desc_list_end)