Mercurial > mplayer.hg
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)){ |