Mercurial > libavcodec.hg
changeset 1183:03b97d87dcdd libavcodec
10l (use before malloc)
author | michaelni |
---|---|
date | Sat, 12 Apr 2003 15:00:32 +0000 |
parents | 38e8b8f331cb |
children | 05a2ac8978ad |
files | h263dec.c wmv2.c |
diffstat | 2 files changed, 19 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/h263dec.c Fri Apr 11 22:53:03 2003 +0000 +++ b/h263dec.c Sat Apr 12 15:00:32 2003 +0000 @@ -643,14 +643,21 @@ ff_er_frame_start(s); + //the second part of the wmv2 header contains the MB skip bits which are stored in current_picture->mb_type + //which isnt available before MPV_frame_start() + if (s->msmpeg4_version==5){ + if(ff_wmv2_decode_secondary_picture_header(s) < 0) + return -1; + } + /* decode each macroblock */ s->mb_x=0; s->mb_y=0; decode_slice(s); - while(s->mb_y<s->mb_height && s->gb.size_in_bits - get_bits_count(&s->gb)>16){ + while(s->mb_y<s->mb_height){ if(s->msmpeg4_version){ - if(s->mb_x!=0 || (s->mb_y%s->slice_height)!=0) + if(s->mb_x!=0 || (s->mb_y%s->slice_height)!=0 || get_bits_count(&s->gb) > s->gb.size_in_bits) break; }else{ if(ff_h263_resync(s)<0) @@ -733,7 +740,6 @@ *pict= *(AVFrame*)&s->last_picture; ff_print_debug_info(s, s->last_picture_ptr); } - /* Return the Picture timestamp as the frame number */ /* we substract 1 because it is added on utils.c */
--- a/wmv2.c Fri Apr 11 22:53:03 2003 +0000 +++ b/wmv2.c Sat Apr 12 15:00:32 2003 +0000 @@ -349,7 +349,7 @@ int ff_wmv2_decode_picture_header(MpegEncContext * s) { Wmv2Context * const w= (Wmv2Context*)s; - int code, i; + int code; #if 0 { @@ -370,6 +370,15 @@ printf("I7:%X/\n", code); } s->qscale = get_bits(&s->gb, 5); + if(s->qscale < 0) + return -1; + + return 0; +} + +int ff_wmv2_decode_secondary_picture_header(MpegEncContext * s) +{ + Wmv2Context * const w= (Wmv2Context*)s; if (s->pict_type == I_TYPE) { if(w->j_type_bit) w->j_type= get_bits1(&s->gb);