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