| @@ -121,6 +121,9 @@ static int config_out_props(AVFilterLink *outlink) | |||||
| outlink->w = inlink->w; | outlink->w = inlink->w; | ||||
| outlink->h = tinterlace->mode == MODE_MERGE || tinterlace->mode == MODE_PAD ? | outlink->h = tinterlace->mode == MODE_MERGE || tinterlace->mode == MODE_PAD ? | ||||
| inlink->h*2 : inlink->h; | 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) { | if (tinterlace->mode == MODE_PAD) { | ||||
| uint8_t black[4] = { 16, 128, 128, 16 }; | 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->height = outlink->h; | ||||
| out->interlaced_frame = 1; | out->interlaced_frame = 1; | ||||
| out->top_field_first = 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 */ | /* write odd frame lines into the upper field of the new frame */ | ||||
| copy_picture_field(tinterlace, out->data, out->linesize, | copy_picture_field(tinterlace, out->data, out->linesize, | ||||
| @@ -295,6 +299,7 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *picref) | |||||
| return AVERROR(ENOMEM); | return AVERROR(ENOMEM); | ||||
| av_frame_copy_props(out, cur); | av_frame_copy_props(out, cur); | ||||
| out->height = outlink->h; | 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; | field = (1 + tinterlace->frame) & 1 ? FIELD_UPPER : FIELD_LOWER; | ||||
| /* copy upper and lower fields */ | /* copy upper and lower fields */ | ||||