[FFmpeg-devel] [PATCH] libkvazaar: Set frame rate as a rational number

Michael Niedermayer michael at niedermayer.cc
Sat Jan 16 02:31:42 CET 2016


On Fri, Jan 15, 2016 at 03:42:29PM +0200, Arttu Ylä-Outinen wrote:
> Updates libkvazaar to pass the exact frame rate to Kvazaar by setting
> the numerator and denominator separately instead of a single floating
> point number. The exact frame rate is needed for writing timing info to
> the bitstream.
> 
> Requires Kvazaar version 0.8.1.
> 
> Signed-off-by: Arttu Ylä-Outinen <arttu.yla-outinen at tut.fi>
> ---
>  configure               | 2 +-
>  libavcodec/libkvazaar.c | 4 ++--
>  2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/configure b/configure
> index 7cef6f5..1b004db 100755
> --- a/configure
> +++ b/configure
> @@ -5452,7 +5452,7 @@ enabled libgsm            && { for gsm_hdr in "gsm.h" "gsm/gsm.h"; do
>                                     check_lib "${gsm_hdr}" gsm_create -lgsm && break;
>                                 done || die "ERROR: libgsm not found"; }
>  enabled libilbc           && require libilbc ilbc.h WebRtcIlbcfix_InitDecode -lilbc
> -enabled libkvazaar        && require_pkg_config "kvazaar >= 0.7.1" kvazaar.h kvz_api_get
> +enabled libkvazaar        && require_pkg_config "kvazaar >= 0.8.1" kvazaar.h kvz_api_get
>  enabled libmfx            && require_pkg_config libmfx "mfx/mfxvideo.h" MFXInit
>  enabled libmodplug        && require_pkg_config libmodplug libmodplug/modplug.h ModPlug_Load
>  enabled libmp3lame        && require "libmp3lame >= 3.98.3" lame/lame.h lame_set_VBR_quality -lmp3lame
> diff --git a/libavcodec/libkvazaar.c b/libavcodec/libkvazaar.c
> index e58405d..87b802f 100644
> --- a/libavcodec/libkvazaar.c
> +++ b/libavcodec/libkvazaar.c
> @@ -75,8 +75,8 @@ static av_cold int libkvazaar_init(AVCodecContext *avctx)
>      cfg->width  = avctx->width;
>      cfg->height = avctx->height;
>  
> -    cfg->framerate =
> -      avctx->time_base.den / (double)(avctx->time_base.num * avctx->ticks_per_frame);
> +    cfg->framerate_num   = avctx->time_base.den;
> +    cfg->framerate_denom = avctx->time_base.num * avctx->ticks_per_frame;

its probably rather unlikely but the multiplication could overflow

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

When you are offended at any man's fault, turn to yourself and study your
own failings. Then you will forget your anger. -- Epictetus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20160116/c73ced59/attachment.sig>


More information about the ffmpeg-devel mailing list