(*s->encoder)->GetDefaultParams(s->encoder, ¶m);
- param.fMaxFrameRate = 1/av_q2d(avctx->time_base);
+ if (avctx->framerate.num > 0 && avctx->framerate.den > 0) {
+ param.fMaxFrameRate = av_q2d(avctx->framerate);
+ } else {
+ if (avctx->ticks_per_frame > INT_MAX / avctx->time_base.num) {
+ av_log(avctx, AV_LOG_ERROR,
+ "Could not set framerate for libopenh264enc: integer overflow\n");
+ return AVERROR(EINVAL);
+ }
+ param.fMaxFrameRate = 1.0 / av_q2d(avctx->time_base) / FFMAX(avctx->ticks_per_frame, 1);
+ }
param.iPicWidth = avctx->width;
param.iPicHeight = avctx->height;
param.iTargetBitrate = avctx->bit_rate > 0 ? avctx->bit_rate : TARGET_BITRATE_DEFAULT;