ffmpeg | branch: master | Baptiste Coudurier <baptiste.coudur...@gmail.com> | Fri Jun 28 10:33:05 2019 -0700| [33203a08e0a26598cb103508327a1dc184b27bc6] | committer: Baptiste Coudurier
avcodec/dvdec: correctly set interlaced and tff > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=33203a08e0a26598cb103508327a1dc184b27bc6 --- libavcodec/dvdec.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/libavcodec/dvdec.c b/libavcodec/dvdec.c index 89864f2edc..daa8c74328 100644 --- a/libavcodec/dvdec.c +++ b/libavcodec/dvdec.c @@ -542,12 +542,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); + } } s->buf = buf; _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog To unsubscribe, visit link above, or email ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".