comparison libmpdemux/demux_avi.c @ 6640:2d3d4c628ece

hopefully fixed last A-V sync bug, and also fixed largefile bug in debug printf
author arpi
date Thu, 04 Jul 2002 22:17:30 +0000
parents f980563afdbc
children f01e5cefb828
comparison
equal deleted inserted replaced
6639:f94a40d3b19a 6640:2d3d4c628ece
633 // find audio chunk pos: 633 // find audio chunk pos:
634 for(i=0;i<chunk_max;i++){ 634 for(i=0;i<chunk_max;i++){
635 int id=((AVIINDEXENTRY *)priv->idx)[i].ckid; 635 int id=((AVIINDEXENTRY *)priv->idx)[i].ckid;
636 if(avi_stream_id(id)==d_audio->id){ 636 if(avi_stream_id(id)==d_audio->id){
637 len=((AVIINDEXENTRY *)priv->idx)[i].dwChunkLength; 637 len=((AVIINDEXENTRY *)priv->idx)[i].dwChunkLength;
638 audio_chunk_pos=i; ++d_audio->pack_no; 638 ++d_audio->pack_no;
639 if(d_audio->dpos<=curr_audio_pos && curr_audio_pos<(d_audio->dpos+len)){ 639 if(d_audio->dpos<=curr_audio_pos && curr_audio_pos<(d_audio->dpos+len)){
640 break; 640 break;
641 } 641 }
642 d_audio->dpos+=len; 642 d_audio->dpos+=len;
643 } 643 }
644 } 644 }
645 audio_chunk_pos=i;
645 skip_audio_bytes=curr_audio_pos-d_audio->dpos; 646 skip_audio_bytes=curr_audio_pos-d_audio->dpos;
646 647
648 mp_msg(MSGT_SEEK,MSGL_V,"SEEK: i=%d (max:%d) dpos=%d (wanted:%d) \n",
649 i,chunk_max,(int)d_audio->dpos,curr_audio_pos);
650
647 } else { 651 } else {
648 // VBR audio 652 // VBR audio
649 int chunks=(priv->avi_video_pts)*(float)sh_audio->audio.dwRate/(float)sh_audio->audio.dwScale; 653 int chunks=(priv->avi_video_pts)*(float)sh_audio->audio.dwRate/(float)sh_audio->audio.dwScale;
650 audio_chunk_pos=0; 654 audio_chunk_pos=0;
651 655
703 } 707 }
704 708
705 709
706 710
707 mp_msg(MSGT_SEEK,MSGL_V,"SEEK: idx=%d (a:%d v:%d) v.skip=%d a.skip=%d/%4.3f \n", 711 mp_msg(MSGT_SEEK,MSGL_V,"SEEK: idx=%d (a:%d v:%d) v.skip=%d a.skip=%d/%4.3f \n",
708 priv->idx_pos,audio_chunk_pos,video_chunk_pos, 712 (int)priv->idx_pos,audio_chunk_pos,video_chunk_pos,
709 priv->skip_video_frames,skip_audio_bytes,skip_audio_secs); 713 (int)priv->skip_video_frames,skip_audio_bytes,skip_audio_secs);
710 714
711 if(skip_audio_bytes){ 715 if(skip_audio_bytes){
712 demux_read_data(d_audio,NULL,skip_audio_bytes); 716 demux_read_data(d_audio,NULL,skip_audio_bytes);
713 //d_audio->pts=0; // PTS is outdated because of the raw data skipping 717 //d_audio->pts=0; // PTS is outdated because of the raw data skipping
714 } 718 }