avformat/rmdec: very basic MLTI support
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 8 Sep 2014 22:46:44 +0000 (00:46 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 11 Sep 2014 12:13:03 +0000 (14:13 +0200)
Fixes Ticket2152

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/rmdec.c

index f53ab8c..5d9c9b5 100644 (file)
@@ -315,6 +315,21 @@ ff_rm_read_mdpr_codecdata (AVFormatContext *s, AVIOContext *pb,
     avpriv_set_pts_info(st, 64, 1, 1000);
     codec_pos = avio_tell(pb);
     v = avio_rb32(pb);
+
+    if (v == MKBETAG('M', 'L', 'T', 'I')) {
+        int number_of_streams = avio_rb16(pb);
+        int number_of_mdpr;
+        int i;
+        for (i = 0; i<number_of_streams; i++)
+            avio_rb16(pb);
+        number_of_mdpr = avio_rb16(pb);
+        if (number_of_mdpr != 1) {
+            avpriv_request_sample(s, "MLTI with multiple MDPR");
+        }
+        avio_rb32(pb);
+        v = avio_rb32(pb);
+    }
+
     if (v == MKTAG(0xfd, 'a', 'r', '.')) {
         /* ra type header */
         if (rm_read_audio_stream_info(s, pb, st, rst, 0))