[FFmpeg-devel] [PATCH] avcodec/dvdec: correctly set interlaced and tff
Carl Eugen Hoyos
ceffmpeg at gmail.com
Wed Sep 11 22:38:23 EEST 2019
Am Mi., 11. Sept. 2019 um 21:31 Uhr schrieb Baptiste Coudurier
<baptiste.coudurier at gmail.com>:
>
> ---
> libavcodec/dvdec.c | 13 ++++++++++---
> 1 file changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/libavcodec/dvdec.c b/libavcodec/dvdec.c
> index 4345cd9e29..cfa0fb9905 100644
> --- a/libavcodec/dvdec.c
> +++ b/libavcodec/dvdec.c
> @@ -592,12 +592,19 @@ static int dvvideo_decode_frame(AVCodecContext *avctx, void *data,
>
> if ((ret = ff_thread_get_buffer(avctx, &frame, 0)) < 0)
> return ret;
> - frame.f->interlaced_frame = 1;
> - frame.f->top_field_first = 0;
>
> /* Determine the codec's field order from the packet */
> if ( *vsc_pack == dv_video_control ) {
> - frame.f->top_field_first = !(vsc_pack[3] & 0x40);
> + if (avctx->height == 720) {
> + frame.f->interlaced_frame = 0;
> + frame.f->top_field_first = 0;
> + } else if (avctx->height == 1080) {
> + frame.f->interlaced_frame = 1;
> + frame.f->top_field_first = (vsc_pack[3] & 0x40) == 0x40;
> + } else {
> + frame.f->interlaced_frame = (vsc_pack[3] & 0x10) == 0x10;
> + frame.f->top_field_first = !(vsc_pack[3] & 0x40);
Does this fix ticket #5092?
Carl Eugen
More information about the ffmpeg-devel
mailing list