comparison libmpdemux/demux_avi.c @ 7501:20910550332f

fixed invalid -aid/-vid segfault
author arpi
date Wed, 25 Sep 2002 22:19:11 +0000
parents c4434bdf6e51
children ffe8bfaa2851
comparison
equal deleted inserted replaced
7500:5dd2cdd760fa 7501:20910550332f
443 priv->pts_has_video=priv->pts_corrected=0; 443 priv->pts_has_video=priv->pts_corrected=0;
444 demuxer->priv=(void*)priv; 444 demuxer->priv=(void*)priv;
445 445
446 //---- AVI header: 446 //---- AVI header:
447 read_avi_header(demuxer,(demuxer->stream->type!=STREAMTYPE_STREAM)?index_mode:-2); 447 read_avi_header(demuxer,(demuxer->stream->type!=STREAMTYPE_STREAM)?index_mode:-2);
448
449 if(demuxer->audio->id>=0 && !demuxer->a_streams[demuxer->audio->id]){
450 mp_msg(MSGT_DEMUX,MSGL_WARN,"AVI: invalid audio stream ID: %d - ignoring (nosound)\n",demuxer->audio->id);
451 demuxer->audio->id=-2; // disabled
452 }
453 if(demuxer->video->id>=0 && !demuxer->v_streams[demuxer->video->id]){
454 mp_msg(MSGT_DEMUX,MSGL_WARN,"AVI: invalid video stream ID: %d - ignoring (using default)\n",demuxer->video->id);
455 demuxer->video->id=-1; // autodetect
456 }
457
448 stream_reset(demuxer->stream); 458 stream_reset(demuxer->stream);
449 stream_seek(demuxer->stream,demuxer->movi_start); 459 stream_seek(demuxer->stream,demuxer->movi_start);
450 priv->idx_pos=0; 460 priv->idx_pos=0;
451 priv->idx_pos_a=0; 461 priv->idx_pos_a=0;
452 priv->idx_pos_v=0; 462 priv->idx_pos_v=0;
516 demuxer->seekable=0; 526 demuxer->seekable=0;
517 } 527 }
518 if(!ds_fill_buffer(d_video)){ 528 if(!ds_fill_buffer(d_video)){
519 mp_msg(MSGT_DEMUX,MSGL_ERR,"AVI: " MSGTR_MissingVideoStreamBug); 529 mp_msg(MSGT_DEMUX,MSGL_ERR,"AVI: " MSGTR_MissingVideoStreamBug);
520 return NULL; 530 return NULL;
521 // GUI_MSG( mplAVIErrorMissingVideoStream )
522 } 531 }
523 sh_video=d_video->sh;sh_video->ds=d_video; 532 sh_video=d_video->sh;sh_video->ds=d_video;
524 if(d_audio->id!=-2){ 533 if(d_audio->id!=-2){
525 mp_msg(MSGT_DEMUX,MSGL_V,"AVI: Searching for audio stream (id:%d)\n",d_audio->id); 534 mp_msg(MSGT_DEMUX,MSGL_V,"AVI: Searching for audio stream (id:%d)\n",d_audio->id);
526 if(!priv->audio_streams || !ds_fill_buffer(d_audio)){ 535 if(!priv->audio_streams || !ds_fill_buffer(d_audio)){