diff --git a/libavdevice/vfwcap.c b/libavdevice/vfwcap.c
index 47b51456ddc4a7b39d8147c42235c09e0c6d869f..13aaad92ef2174294deadc3241510901040e7e43 100644
--- a/libavdevice/vfwcap.c
+++ b/libavdevice/vfwcap.c
@@ -368,8 +368,14 @@ static int vfw_read_header(AVFormatContext *s, AVFormatParameters *ap)
         codec->bits_per_coded_sample = biBitCount;
     } else {
         codec->codec_id = CODEC_ID_RAWVIDEO;
-        if(biCompression == BI_RGB)
+        if(biCompression == BI_RGB) {
             codec->bits_per_coded_sample = biBitCount;
+            codec->extradata = av_malloc(9 + FF_INPUT_BUFFER_PADDING_SIZE);
+            if (codec->extradata) {
+                codec->extradata_size = 9;
+                memcpy(codec->extradata, "BottomUp", 9);
+            }
+        }
     }
 
     av_set_pts_info(st, 32, 1, 1000);