Ticket #176: avi_dummy.diff

File avi_dummy.diff, 1.7 KB (added by reimar, 22 years ago)

fix attempt

  • libmpdemux/demux_avi.c

    RCS file: /cvsroot/mplayer/main/libmpdemux/demux_avi.c,v
    retrieving revision 1.61
    diff -u -r1.61 demux_avi.c
     
    629629
    630630  //FIXME: OFF_T - Didn't check AVI case yet (avi files can't be >2G anyway?)
    631631  //================= seek in AVI ==========================
    632     int rel_seek_frames=rel_seek_secs*sh_video->fps;
    633632    int video_chunk_pos=d_video->pos;
     633  if (sh_video) {
     634    int rel_seek_frames=rel_seek_secs*sh_video->fps;
    634635    int i;
    635636
    636637      if(flags&1){
    … …  
    680681      d_video->pos=video_chunk_pos;
    681682     
    682683      mp_msg(MSGT_SEEK,MSGL_DBG2,"V_SEEK:  pack=%d  pts=%5.3f  chunk=%d  \n",d_video->pack_no,priv->avi_video_pts,video_chunk_pos);
     684  }
    683685
    684686// ------------ STEP 2: seek audio, find the right chunk & pos ------------
    685687
    … …  
    694696        int skip_audio_bytes=0;
    695697        int curr_audio_pos=-1;
    696698        int audio_chunk_pos=-1;
    697         int chunk_max=(demuxer->type==DEMUXER_TYPE_AVI)?video_chunk_pos:priv->idx_size;
     699        int chunk_max=(demuxer->type==DEMUXER_TYPE_AVI && sh_video)?video_chunk_pos:priv->idx_size;
    698700       
    699701        if(sh_audio->audio.dwSampleSize){
    700702            // constant rate audio stream
    … …  
    784786              if(avi_stream_id(id)==d_video->id) ++priv->skip_video_frames;
    785787            }
    786788            // requires for correct audio pts calculation (demuxer):
     789            if (sh_video)
    787790            priv->avi_video_pts-=priv->skip_video_frames*(float)sh_video->video.dwScale/(float)sh_video->video.dwRate;
    788791            priv->avi_audio_pts=priv->avi_video_pts;
    789792            // set index position: