[Bf-blender-cvs] [414e40c] master: libavformat API usage: use avg_frame_rate instead of r_frame_rate

Anton Khirnov noreply at git.blender.org
Tue Jan 28 09:28:44 CET 2014


Commit: 414e40c353cad08493e90585cd1261297c96570f
Author: Anton Khirnov
Date:   Thu Jan 16 15:40:37 2014 +0100
https://developer.blender.org/rB414e40c353cad08493e90585cd1261297c96570f

libavformat API usage: use avg_frame_rate instead of r_frame_rate

r_frame_rate is a guessed number defined as "the least common multiple of
all framerates in the stream". It has been deprecated and removed in new
Libav releases.

Use avg_frame_rate instead, which is the average framerate of the
stream.

===================================================================

M	source/blender/imbuf/intern/anim_movie.c
M	source/blender/imbuf/intern/indexer.c

===================================================================

diff --git a/source/blender/imbuf/intern/anim_movie.c b/source/blender/imbuf/intern/anim_movie.c
index 271e52d..a62cb09 100644
--- a/source/blender/imbuf/intern/anim_movie.c
+++ b/source/blender/imbuf/intern/anim_movie.c
@@ -528,11 +528,11 @@ static int startffmpeg(struct anim *anim)
 	}
 
 	anim->duration = ceil(pFormatCtx->duration *
-	                      av_q2d(pFormatCtx->streams[videoStream]->r_frame_rate) /
+	                      av_q2d(pFormatCtx->streams[videoStream]->avg_frame_rate) /
 	                      AV_TIME_BASE);
 
-	frs_num = pFormatCtx->streams[videoStream]->r_frame_rate.num;
-	frs_den = pFormatCtx->streams[videoStream]->r_frame_rate.den;
+	frs_num = pFormatCtx->streams[videoStream]->avg_frame_rate.num;
+	frs_den = pFormatCtx->streams[videoStream]->avg_frame_rate.den;
 
 	frs_den *= AV_TIME_BASE;
 
@@ -970,7 +970,7 @@ static ImBuf *ffmpeg_fetchibuf(struct anim *anim, int position,
 
 	v_st = anim->pFormatCtx->streams[anim->videoStream];
 
-	frame_rate = av_q2d(v_st->r_frame_rate);
+	frame_rate = av_q2d(v_st->avg_frame_rate);
 
 	st_time = anim->pFormatCtx->start_time;
 	pts_time_base = av_q2d(v_st->time_base);
diff --git a/source/blender/imbuf/intern/indexer.c b/source/blender/imbuf/intern/indexer.c
index 3ca22df..807601b 100644
--- a/source/blender/imbuf/intern/indexer.c
+++ b/source/blender/imbuf/intern/indexer.c
@@ -910,7 +910,7 @@ static int index_rebuild_ffmpeg(FFmpegIndexBuilderContext *context,
 
 	stream_size = avio_size(context->iFormatCtx->pb);
 
-	context->frame_rate = av_q2d(context->iStream->r_frame_rate);
+	context->frame_rate = av_q2d(context->iStream->avg_frame_rate);
 	context->pts_time_base = av_q2d(context->iStream->time_base);
 
 	while (av_read_frame(context->iFormatCtx, &next_packet) >= 0) {




More information about the Bf-blender-cvs mailing list