[FFmpeg-cvslog] lavfi/tinterlace: Double aspect ratio for modes merge and pad.
Carl Eugen Hoyos
git at videolan.org
Thu Jun 4 17:12:12 CEST 2015
ffmpeg | branch: master | Carl Eugen Hoyos <cehoyos at ag.or.at> | Thu Jun 4 14:11:29 2015 +0200| [3b4e694ead8b240e09b9e50140840ef94e1a0688] | committer: Michael Niedermayer
lavfi/tinterlace: Double aspect ratio for modes merge and pad.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3b4e694ead8b240e09b9e50140840ef94e1a0688
---
libavfilter/vf_tinterlace.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/libavfilter/vf_tinterlace.c b/libavfilter/vf_tinterlace.c
index 096a614..e2f8c34 100644
--- a/libavfilter/vf_tinterlace.c
+++ b/libavfilter/vf_tinterlace.c
@@ -121,6 +121,9 @@ static int config_out_props(AVFilterLink *outlink)
outlink->w = inlink->w;
outlink->h = tinterlace->mode == MODE_MERGE || tinterlace->mode == MODE_PAD ?
inlink->h*2 : inlink->h;
+ if (tinterlace->mode == MODE_MERGE || tinterlace->mode == MODE_PAD)
+ outlink->sample_aspect_ratio = av_mul_q(inlink->sample_aspect_ratio,
+ av_make_q(2, 1));
if (tinterlace->mode == MODE_PAD) {
uint8_t black[4] = { 16, 128, 128, 16 };
@@ -266,6 +269,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *picref)
out->height = outlink->h;
out->interlaced_frame = 1;
out->top_field_first = 1;
+ out->sample_aspect_ratio = av_mul_q(cur->sample_aspect_ratio, av_make_q(2, 1));
/* write odd frame lines into the upper field of the new frame */
copy_picture_field(tinterlace, out->data, out->linesize,
@@ -295,6 +299,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *picref)
return AVERROR(ENOMEM);
av_frame_copy_props(out, cur);
out->height = outlink->h;
+ out->sample_aspect_ratio = av_mul_q(cur->sample_aspect_ratio, av_make_q(2, 1));
field = (1 + tinterlace->frame) & 1 ? FIELD_UPPER : FIELD_LOWER;
/* copy upper and lower fields */
More information about the ffmpeg-cvslog
mailing list