[Mplayer-users] a question about fast forward
Przemysław Kędzierski
pked at go2.pl
Wed Aug 1 01:36:27 CEST 2001
Hello
My name is Przemek, I'm from Poland.
I'm sorry for my poor English, I haven't used it for ages.
I have Red Hat Linux 7.0, kernel 2.2.19, gcc 2.95.3, ( and Duron 750 processor).
I got mplayer sources from CVS on 24th July.
I tried to play one avi/DivX movie.
I had problems with sound and I set ni = yes.
The mplayer worked well but when I tried move forward 10 minutes
it stopped for a minute.
On other files moving forward was ok, but for this one was very slow.
I tried to find the problem.
I found that all this time program spent in loop in
the demux_avi_fill_buffer_ni() function.
Here is some lines from index of this avi file:
0: 01wb 10 00000004 7225
1: 00dc 10 00001C46 1162
2: 01wb 10 000020D8 8068
3: 00dc 0 00004064 117
4: 00dc 0 000040E2 117
5: 00dc 0 00004160 117
the video stream is divided in very small packages, and every single package
was skipped in one call of the demux_avi_read_packet().
I added one condition to the demux_avi_fill_buffer_ni() :
(...)
> if((skip_video_frames>0) && \
> ds && (ds==demux->video) && \
> (demux_avi_select_stream(demux,((AVIINDEXENTRY *)demux->idx)[idx_pos].ckid) --skip_video_frames;
> ret=0;
> } else {
if(demux->idx_size>0 && idx_pos<demux->idx_size){
(...)
} else return 0;
ret=demux_avi_read_packet(demux,id,len,idx_pos,flags);
> }
if(!ret && skip_video_frames<=0)
(...)
and moving forward works faster. When it skips package it doesn't call
the demux_avi_read_packet() function.
In the begginning of the demux_avi_fill_buffer_ni() I saw code:
if(ds==demux->video) idx_pos=demux->idx_pos_a++; else
if(ds==demux->audio) idx_pos=demux->idx_pos_v++; else
idx_pos=demux->idx_pos++;
It looks like a bug, if there is the video stream it gets index of
package of audio stream and index of package of video stream for audio stream.
I have a question of the main function in mplayer.c,
why in the code block beggining of 'switch(file_format)' and 'case DEMUXER_TYPE_AVI:'
is 'demuxer->idx_pos_v' set two times, second time to position of package
of audio stream ?
Thank you
Przemek
_______________________________________________
Mplayer-users mailing list
Mplayer-users at lists.sourceforge.net
http://lists.sourceforge.net/lists/listinfo/mplayer-users
More information about the MPlayer-users
mailing list