From: Antonio Ospite <ospite@studenti.unina.it>
Date: Tue, 22 May 2012 13:42:26 +0000 (+0200)
Subject: am7xxx-play: get the framerate from the video stream
X-Git-Tag: v0.1.3~29
X-Git-Url: https://git.ao2.it/libam7xxx.git/commitdiff_plain/2208b544c082879d7a429b50ec76c466212e4aac?ds=sidebyside

am7xxx-play: get the framerate from the video stream

When setting the output codec get the time_base (which indicates the
framerate) from the video stream, not from the input codec context, this
is the correct way to do it.

On some systems (Windows) the time_base from the input codec context is
set different from the one of the video stream, and timebase.num ends up
being 0 which results in the output codec initialization failing with
the message "framerate not set".
---

diff --git a/examples/am7xxx-play.c b/examples/am7xxx-play.c
index 2fc8763..8a52ae0 100644
--- a/examples/am7xxx-play.c
+++ b/examples/am7xxx-play.c
@@ -199,8 +199,10 @@ static int video_output_init(struct video_output_ctx *output_ctx,
 	output_codec_ctx->bit_rate   = (input_ctx->codec_ctx)->bit_rate;
 	output_codec_ctx->width      = new_output_width;
 	output_codec_ctx->height     = new_output_height;
-	output_codec_ctx->time_base.num  = (input_ctx->codec_ctx)->time_base.num;
-	output_codec_ctx->time_base.den  = (input_ctx->codec_ctx)->time_base.den;
+	output_codec_ctx->time_base.num  =
+		(input_ctx->format_ctx)->streams[input_ctx->video_stream_index]->time_base.num;
+	output_codec_ctx->time_base.den  =
+		(input_ctx->format_ctx)->streams[input_ctx->video_stream_index]->time_base.den;
 
 	/* When the raw format is requested we don't actually need to setup
 	 * and open a decoder