diff --git a/libavcodec/h263.c b/libavcodec/h263.c
index a7c6e723ae9f4bdddd27f9f8dc4d4829b67ec537..90127e21faf28b38faa6dae60e5bf7901faabbd7 100644
--- a/libavcodec/h263.c
+++ b/libavcodec/h263.c
@@ -3767,8 +3767,17 @@ int mpeg4_decode_picture_header(MpegEncContext * s)
             }
             s->low_delay= get_bits1(&s->gb);
             if(get_bits1(&s->gb)){ /* vbv parameters */
-                printf("vbv parameters not supported\n");
-                return -1;
+                get_bits(&s->gb, 15);	/* first_half_bitrate */
+                skip_bits1(&s->gb);	/* marker */
+                get_bits(&s->gb, 15);	/* latter_half_bitrate */
+                skip_bits1(&s->gb);	/* marker */
+                get_bits(&s->gb, 15);	/* first_half_vbv_buffer_size */
+                skip_bits1(&s->gb);	/* marker */
+                get_bits(&s->gb, 3);	/* latter_half_vbv_buffer_size */
+                get_bits(&s->gb, 11);	/* first_half_vbv_occupancy */
+                skip_bits1(&s->gb);	/* marker */
+                get_bits(&s->gb, 15);	/* latter_half_vbv_occupancy */
+                skip_bits1(&s->gb);	/* marker */               
             }
         }else{
             // set low delay flag only once so the smart? low delay detection wont be overriden