p_context->width = p_enc->fmt_in.video.i_width;
p_context->height = p_enc->fmt_in.video.i_height;
+#if LIBAVCODEC_BUILD >= 4754
+ p_context->time_base.num = p_enc->fmt_in.video.i_frame_rate_base;
+ p_context->time_base.den = p_enc->fmt_in.video.i_frame_rate;
+#else
p_context->frame_rate = p_enc->fmt_in.video.i_frame_rate;
p_context->frame_rate_base= p_enc->fmt_in.video.i_frame_rate_base;
+#endif
/* Defaults from ffmpeg.c */
p_context->qblur = 0.5;
}
}
+#if LIBAVCODEC_BUILD >= 4754
+ if( p_context->time_base.num > 0 && p_context->time_base.den > 0 )
+ {
+ p_dec->fmt_out.video.i_frame_rate = p_context->time_base.den;
+ p_dec->fmt_out.video.i_frame_rate_base = p_context->time_base.num;
+ }
+#else
if( p_context->frame_rate > 0 && p_context->frame_rate_base > 0 )
{
p_dec->fmt_out.video.i_frame_rate = p_context->frame_rate;
p_dec->fmt_out.video.i_frame_rate_base = p_context->frame_rate_base;
}
+#endif
p_pic = p_dec->pf_vout_buffer_new( p_dec );
p_pic->date = p_sys->i_pts;
/* interpolate the next PTS */
+#if LIBAVCODEC_BUILD >= 4754
+ if( p_sys->p_context->time_base.den > 0 )
+ {
+ p_sys->i_pts += I64C(1000000) *
+ (2 + p_sys->p_ff_pic->repeat_pict) *
+ p_sys->p_context->time_base.num *
+ p_block->i_rate / INPUT_RATE_DEFAULT /
+ (2 * p_sys->p_context->time_base.den);
+ }
+#else
if( p_sys->p_context->frame_rate > 0 )
{
p_sys->i_pts += I64C(1000000) *
p_block->i_rate / INPUT_RATE_DEFAULT /
(2 * p_sys->p_context->frame_rate);
}
+#endif
if( p_sys->b_first_frame )
{
i_aspect_num * (int64_t)id->ff_enc_c->height,
i_aspect_den * (int64_t)id->ff_enc_c->width, 1 << 30 );
+#if LIBAVCODEC_BUILD >= 4754
+ id->ff_enc_c->time_base.num = 1;
+ id->ff_enc_c->time_base.den = 25; /* FIXME */
+#else
id->ff_enc_c->frame_rate = 25; /* FIXME */
id->ff_enc_c->frame_rate_base = 1;
+#endif
id->ff_enc_c->gop_size = 200;
id->ff_enc_c->max_b_frames = 0;