avcodec/ituh263dec: Use check_marker()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2015-04-15 03:22:27 +02:00
parent 95f524aff5
commit fbdaebb298
1 changed files with 7 additions and 11 deletions

View File

@ -170,17 +170,17 @@ static int h263_decode_gob_header(MpegEncContext *s)
return -1; return -1;
if(s->h263_slice_structured){ if(s->h263_slice_structured){
if(get_bits1(&s->gb)==0) if(check_marker(&s->gb, "before MBA")==0)
return -1; return -1;
ff_h263_decode_mba(s); ff_h263_decode_mba(s);
if(s->mb_num > 1583) if(s->mb_num > 1583)
if(get_bits1(&s->gb)==0) if(check_marker(&s->gb, "after MBA")==0)
return -1; return -1;
s->qscale = get_bits(&s->gb, 5); /* SQUANT */ s->qscale = get_bits(&s->gb, 5); /* SQUANT */
if(get_bits1(&s->gb)==0) if(check_marker(&s->gb, "after SQUANT")==0)
return -1; return -1;
skip_bits(&s->gb, 2); /* GFID */ skip_bits(&s->gb, 2); /* GFID */
}else{ }else{
@ -899,9 +899,7 @@ int ff_h263_decode_picture_header(MpegEncContext *s)
s->picture_number= (s->picture_number&~0xFF) + i; s->picture_number= (s->picture_number&~0xFF) + i;
/* PTYPE starts here */ /* PTYPE starts here */
if (get_bits1(&s->gb) != 1) { if (check_marker(&s->gb, "in PTYPE") != 1) {
/* marker */
av_log(s->avctx, AV_LOG_ERROR, "Bad marker\n");
return -1; return -1;
} }
if (get_bits1(&s->gb) != 0) { if (get_bits1(&s->gb) != 0) {
@ -1022,7 +1020,7 @@ int ff_h263_decode_picture_header(MpegEncContext *s)
6-14 - reserved 6-14 - reserved
*/ */
width = (get_bits(&s->gb, 9) + 1) * 4; width = (get_bits(&s->gb, 9) + 1) * 4;
skip_bits1(&s->gb); check_marker(&s->gb, "in dimensions");
height = get_bits(&s->gb, 9) * 4; height = get_bits(&s->gb, 9) * 4;
av_dlog(s->avctx, "\nH.263+ Custom picture: %dx%d\n",width,height); av_dlog(s->avctx, "\nH.263+ Custom picture: %dx%d\n",width,height);
if (s->aspect_ratio_info == FF_ASPECT_EXTENDED) { if (s->aspect_ratio_info == FF_ASPECT_EXTENDED) {
@ -1118,15 +1116,13 @@ int ff_h263_decode_picture_header(MpegEncContext *s)
return AVERROR_INVALIDDATA; return AVERROR_INVALIDDATA;
if(s->h263_slice_structured){ if(s->h263_slice_structured){
if (get_bits1(&s->gb) != 1) { if (check_marker(&s->gb, "SEPB1") != 1) {
av_log(s->avctx, AV_LOG_ERROR, "SEPB1 marker missing\n");
return -1; return -1;
} }
ff_h263_decode_mba(s); ff_h263_decode_mba(s);
if (get_bits1(&s->gb) != 1) { if (check_marker(&s->gb, "SEPB2") != 1) {
av_log(s->avctx, AV_LOG_ERROR, "SEPB2 marker missing\n");
return -1; return -1;
} }
} }