diff --git a/libavcodec/vc1_parser.c b/libavcodec/vc1_parser.c
index 5aa1248e770394ba03207d0f9e600fc22a88bf45..a6363d9a902f21fec503532350bc42a2a8ff6d99 100644
--- a/libavcodec/vc1_parser.c
+++ b/libavcodec/vc1_parser.c
@@ -88,6 +88,11 @@ static void vc1_extract_headers(AVCodecParserContext *s, AVCodecContext *avctx,
                 }
             }
 
+            if (vpc->v.broadcast && vpc->v.interlace && !vpc->v.psf)
+                s->field_order = vpc->v.tff ? AV_FIELD_TT : AV_FIELD_BB;
+            else
+                s->field_order = AV_FIELD_PROGRESSIVE;
+
             break;
         }
     }