[SCM] libav/experimental: 100l (AVStream.duration)

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 15:40:27 UTC 2013


The following commit has been merged in the experimental branch:
commit cde073b44865e9d5e3863e865af921a3bf1dac1f
Author: Michael Niedermayer <michaelni at gmx.at>
Date:   Mon May 24 13:08:00 2004 +0000

    100l (AVStream.duration)
    
    Originally committed as revision 3154 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavformat/avidec.c b/libavformat/avidec.c
index 27d3991..fbc81f0 100644
--- a/libavformat/avidec.c
+++ b/libavformat/avidec.c
@@ -209,7 +209,9 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap)
                 get_le32(pb); /* start */
                 nb_frames = get_le32(pb);
                 st->start_time = 0;
-                st->duration = nb_frames;
+                st->duration = av_rescale(nb_frames,
+                    st->codec.frame_rate_base * AV_TIME_BASE,
+                    st->codec.frame_rate);
 		url_fskip(pb, size - 9 * 4);
                 break;
             case MKTAG('a', 'u', 'd', 's'):
@@ -239,7 +241,8 @@ static int avi_read_header(AVFormatContext *s, AVFormatParameters *ap)
                     ast->sample_size = get_le32(pb); /* sample ssize */
 //av_log(NULL, AV_LOG_DEBUG, "%d %d %d %d\n", ast->scale, ast->rate, ast->sample_size, ast->start);
                     st->start_time = 0;
-                    st->duration = length;
+                    if (ast->rate != 0)
+                        st->duration = (int64_t)length * AV_TIME_BASE / ast->rate;
                     url_fskip(pb, size - 12 * 4);
                 }
                 break;

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list