[FFmpeg-cvslog] mov: fill in subtitle dimensions after parsing tkhd

Michael Niedermayer git at videolan.org
Mon Mar 31 02:06:57 CEST 2014


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Thu Mar 20 07:05:36 2014 +0000| [fce28c3c6d603b7f42a5dbe36bf240d0470469c8] | committer: Vittorio Giovara

mov: fill in subtitle dimensions after parsing tkhd

Sample-Id: NeroRecodeSample.mp4

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=fce28c3c6d603b7f42a5dbe36bf240d0470469c8
---

 libavformat/mov.c |   14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/libavformat/mov.c b/libavformat/mov.c
index 6375847..8fc096f 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -2857,6 +2857,7 @@ static int mov_read_header(AVFormatContext *s)
     AVIOContext *pb = s->pb;
     int err;
     MOVAtom atom = { AV_RL32("root") };
+    int i;
 
     mov->fc = s;
     /* .mov and .mp4 aren't streamable anyway (only progressive download if moov is before mdat) */
@@ -2881,8 +2882,19 @@ static int mov_read_header(AVFormatContext *s)
     if (pb->seekable && mov->chapter_track > 0)
         mov_read_chapters(s);
 
+    for (i = 0; i < s->nb_streams; i++) {
+        AVStream *st = s->streams[i];
+        MOVStreamContext *sc = st->priv_data;
+
+        if (st->codec->codec_type == AVMEDIA_TYPE_SUBTITLE) {
+            if (st->codec->width <= 0 && st->codec->width <= 0) {
+                st->codec->width  = sc->width;
+                st->codec->height = sc->height;
+            }
+        }
+    }
+
     if (mov->trex_data) {
-        int i;
         for (i = 0; i < s->nb_streams; i++) {
             AVStream *st = s->streams[i];
             MOVStreamContext *sc = st->priv_data;



More information about the ffmpeg-cvslog mailing list