[FFmpeg-cvslog] electronicarts vp6: set duration of video stream

Paul B Mahol git at videolan.org
Thu Mar 22 14:03:29 CET 2012


ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Wed Mar 21 23:17:05 2012 +0000| [015fd02babd2e1de55472c17b94f66b98152d403] | committer: Michael Niedermayer

electronicarts vp6: set duration of video stream

Signed-off-by: Paul B Mahol <onemda at gmail.com>
Reviewed-by: Peter Ross <pross at xvid.org>
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

 libavformat/electronicarts.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/libavformat/electronicarts.c b/libavformat/electronicarts.c
index 968682a..0fb6697 100644
--- a/libavformat/electronicarts.c
+++ b/libavformat/electronicarts.c
@@ -66,6 +66,7 @@ typedef struct EaDemuxContext {
     enum CodecID video_codec;
     AVRational time_base;
     int width, height;
+    int nb_frames;
     int video_stream_index;
 
     enum CodecID audio_codec;
@@ -274,7 +275,9 @@ static int process_video_header_vp6(AVFormatContext *s)
     EaDemuxContext *ea = s->priv_data;
     AVIOContext *pb = s->pb;
 
-    avio_skip(pb, 16);
+    avio_skip(pb, 8);
+    ea->nb_frames = avio_rl32(pb);
+    avio_skip(pb, 4);
     ea->time_base.den = avio_rl32(pb);
     ea->time_base.num = avio_rl32(pb);
     ea->video_codec = CODEC_ID_VP6;
@@ -433,6 +436,7 @@ static int ea_read_header(AVFormatContext *s)
         st->codec->codec_tag = 0;  /* no fourcc */
         st->codec->width = ea->width;
         st->codec->height = ea->height;
+        st->duration = st->nb_frames = ea->nb_frames;
         if (ea->time_base.num)
             avpriv_set_pts_info(st, 64, ea->time_base.num, ea->time_base.den);
         st->r_frame_rate = st->avg_frame_rate = (AVRational){ea->time_base.den,



More information about the ffmpeg-cvslog mailing list