[FFmpeg-devel] [PATCH] avfilter/vf_interlace: more accurate pts calculation
Vittorio Giovara
vittorio.giovara at gmail.com
Sun Nov 30 13:05:17 CET 2014
On 12/11/2014 23:38, Aleksey Vasenev wrote:
> Signed-off-by: Aleksey Vasenev <margtu-fivt at ya.ru>
> ---
> libavfilter/vf_interlace.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/libavfilter/vf_interlace.c b/libavfilter/vf_interlace.c
> index e07963f..42e2c9a 100644
> --- a/libavfilter/vf_interlace.c
> +++ b/libavfilter/vf_interlace.c
> @@ -111,7 +111,6 @@ static int config_out_props(AVFilterLink *outlink)
> outlink->time_base = inlink->time_base;
> outlink->frame_rate = inlink->frame_rate;
> // half framerate
> - outlink->time_base.num *= 2;
> outlink->frame_rate.den *= 2;
> outlink->flags |= FF_LINK_FLAG_REQUEST_LOOP;
>
> @@ -204,7 +203,6 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *buf)
> av_frame_copy_props(out, s->cur);
> out->interlaced_frame = 1;
> out->top_field_first = tff;
> - out->pts /= 2; // adjust pts to new framerate
>
> /* copy upper/lower field from cur */
> copy_picture_field(s->cur, out, inlink, tff ? FIELD_UPPER : FIELD_LOWER, s->lowpass);
This does not look correct to me.
The pts are relative to the time base/frame rate so if you are going to
change one you have to take care of the other. In the end the interlaced
stream will have wrong timing and you might experience frame drops.
I advise reverting.
Vittorio
More information about the ffmpeg-devel
mailing list