From: Antonio Ospite 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?hp=83413d14e30727d4279674d5bb811f436c9600f2;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