[FFmpeg-devel,v3,16/25] avformat/mov: ff_mov_read_stsd_entries now deals with AVMEDIA_TYPE_DATA

Submitted by erkki.seppala.ext@nokia.com on Sept. 19, 2016, 1:25 p.m.

Details

Message ID 1474291548-17810-17-git-send-email-erkki.seppala.ext@nokia.com
State New
Headers show

Commit Message

erkki.seppala.ext@nokia.com Sept. 19, 2016, 1:25 p.m.
Signed-off-by: Erkki Seppälä <erkki.seppala.ext@nokia.com>
Signed-off-by: OZOPlayer <OZOPL@nokia.com>
---
 libavformat/mov.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

Patch hide | download patch | download mbox

diff --git a/libavformat/mov.c b/libavformat/mov.c
index 4dfe1eb..f9126c4 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -2257,6 +2257,7 @@  int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext *pb, int entries)
                 (format >> 0) & 0xff, (format >> 8) & 0xff, (format >> 16) & 0xff,
                 (format >> 24) & 0xff, format, st->codecpar->codec_type);
 
+        ret = 0;
         if (st->codecpar->codec_type==AVMEDIA_TYPE_VIDEO) {
             st->codecpar->codec_id = id;
             mov_parse_stsd_video(c, pb, st, sc);
@@ -2267,12 +2268,16 @@  int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext *pb, int entries)
             st->codecpar->codec_id = id;
             mov_parse_stsd_subtitle(c, pb, st, sc,
                                     size - (avio_tell(pb) - start_pos));
+        } else if (st->codecpar->codec_type==AVMEDIA_TYPE_DATA){
+            st->codecpar->codec_id = id;
+            ret = mov_parse_stsd_data(c, pb, st, sc,
+                                      size - (avio_tell(pb) - start_pos));
         } else {
             ret = mov_parse_stsd_data(c, pb, st, sc,
                                       size - (avio_tell(pb) - start_pos));
-            if (ret < 0)
-                return ret;
         }
+        if (ret < 0)
+            return ret;
         /* this will read extra atoms at the end (wave, alac, damr, avcC, hvcC, SMI ...) */
         a.size = size - (avio_tell(pb) - start_pos);
         if (a.size > 8) {