some checks to avoid segfaults if the decoder is feeded with junk
Originally committed as revision 1757 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
9c00c3af90
commit
37b787f124
@ -1858,6 +1858,12 @@ static int mpeg_decode_slice(AVCodecContext *avctx,
|
|||||||
}
|
}
|
||||||
}else{ //second field
|
}else{ //second field
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if(!s->current_picture_ptr){
|
||||||
|
fprintf(stderr, "first field missing\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
for(i=0; i<4; i++){
|
for(i=0; i<4; i++){
|
||||||
s->current_picture.data[i] = s->current_picture_ptr->data[i];
|
s->current_picture.data[i] = s->current_picture_ptr->data[i];
|
||||||
if(s->picture_structure == PICT_BOTTOM_FIELD){
|
if(s->picture_structure == PICT_BOTTOM_FIELD){
|
||||||
@ -2266,6 +2272,8 @@ static int mpeg_decode_frame(AVCodecContext *avctx,
|
|||||||
/* skip everything if we are in a hurry>=5 */
|
/* skip everything if we are in a hurry>=5 */
|
||||||
if(avctx->hurry_up>=5) break;
|
if(avctx->hurry_up>=5) break;
|
||||||
|
|
||||||
|
if (!s->mpeg_enc_ctx_allocated) break;
|
||||||
|
|
||||||
ret = mpeg_decode_slice(avctx, picture,
|
ret = mpeg_decode_slice(avctx, picture,
|
||||||
start_code, s->buffer, input_size);
|
start_code, s->buffer, input_size);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user