We keep only half source frames.
Source: time_base 1/10 and ptss 0 1 2 3 4 5 6 7 8 9
Before change: time_base 1/5 and ptss 0 1 2 3 4
After change: time_base 1/10 and ptss 0 2 4 6 8
You can see that before and after equal. No problem with timings.
We still need reduce frame_rate because it now half of origin.
On 30.11.2014 15:05, Vittorio Giovara wrote:
On 12/11/2014 23:38, Aleksey Vasenev wrote:
Signed-off-by: Aleksey Vasenev <margtu-f...@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
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel