mirror of https://git.ffmpeg.org/ffmpeg.git
avcodec/dvdec: correctly set interlaced and tff
This commit is contained in:
parent
c54268ce02
commit
33203a08e0
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue