[FFmpeg-cvslog] dvdec: Set top_field_first from FS flag

Tomas Härdin git at videolan.org
Mon Oct 15 18:54:07 CEST 2012


ffmpeg | branch: master | Tomas Härdin <tomas.hardin at codemill.se> | Mon Oct 15 16:24:39 2012 +0200| [7b383bd9d71c361fab320a99dc09353d0074f565] | committer: Michael Niedermayer

dvdec: Set top_field_first from FS flag

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7b383bd9d71c361fab320a99dc09353d0074f565
---

 libavcodec/dvdec.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libavcodec/dvdec.c b/libavcodec/dvdec.c
index 6306b5a..d3a1234 100644
--- a/libavcodec/dvdec.c
+++ b/libavcodec/dvdec.c
@@ -343,12 +343,13 @@ static int dvvideo_decode_frame(AVCodecContext *avctx,
     s->picture.interlaced_frame = 1;
     s->picture.top_field_first  = 0;
 
-    /* Determine the codec's sample_aspect ratio from the packet */
+    /* Determine the codec's sample_aspect ratio and field order from the packet */
     vsc_pack = buf + 80*5 + 48 + 5;
     if ( *vsc_pack == dv_video_control ) {
         apt = buf[4] & 0x07;
         is16_9 = (vsc_pack[2] & 0x07) == 0x02 || (!apt && (vsc_pack[2] & 0x07) == 0x07);
         avctx->sample_aspect_ratio = s->sys->sar[is16_9];
+        s->picture.top_field_first = !(vsc_pack[3] & 0x40);
     }
 
     s->buf = buf;



More information about the ffmpeg-cvslog mailing list