From d439facb3dab103b886e4a493574196e36051bfb Mon Sep 17 00:00:00 2001
From: Steve L'Homme <slhomme@divxcorp.com>
Date: Wed, 22 Mar 2006 11:11:02 +0000
Subject: [PATCH] duration and subitle fix from the patch by Steve Lhomme

Originally committed as revision 5196 to svn://svn.ffmpeg.org/ffmpeg/trunk
---
 libavformat/matroska.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/libavformat/matroska.c b/libavformat/matroska.c
index 0e5bb005b47..4d6306eca35 100644
--- a/libavformat/matroska.c
+++ b/libavformat/matroska.c
@@ -305,9 +305,8 @@ typedef struct MatroskaDemuxContext {
     /* timescale in the file */
     int64_t time_scale;
 
-    /* length, position (time, ns) */
-    int64_t duration,
-        pos;
+    /* position (time, ns) */
+    int64_t pos;
 
     /* num_streams is the number of streams that av_new_stream() was called
      * for ( = that are available to the calling program). */
@@ -1094,7 +1093,7 @@ matroska_parse_info (MatroskaDemuxContext *matroska)
                 double num;
                 if ((res = ebml_read_float(matroska, &id, &num)) < 0)
                     break;
-                matroska->duration = num * matroska->time_scale;
+                matroska->ctx->duration = num * matroska->time_scale * 1000 / AV_TIME_BASE;
                 break;
             }
 
@@ -2245,6 +2244,8 @@ matroska_read_header (AVFormatContext    *s,
                 st->codec->codec_type = CODEC_TYPE_AUDIO;
                 st->codec->sample_rate = audiotrack->samplerate;
                 st->codec->channels = audiotrack->channels;
+            } else if (track->type == MATROSKA_TRACK_TYPE_SUBTITLE) {
+                st->codec->codec_type = CODEC_TYPE_SUBTITLE;
             }
 
             /* What do we do with private data? E.g. for Vorbis. */
-- 
GitLab