Mercurial > mplayer.hg
comparison libmpdemux/demux_avs.c @ 22449:08774fd8fd17
Implement percent-based seeking
author | reimar |
---|---|
date | Mon, 05 Mar 2007 13:27:42 +0000 |
parents | 81d9984fa1eb |
children | e466ca5fb2c1 |
comparison
equal
deleted
inserted
replaced
22448:81d9984fa1eb | 22449:08774fd8fd17 |
---|---|
415 sh_audio_t *sh_audio=demuxer->audio->sh; | 415 sh_audio_t *sh_audio=demuxer->audio->sh; |
416 AVS_T *AVS = demuxer->priv; | 416 AVS_T *AVS = demuxer->priv; |
417 double video_pos = sh_video ? | 417 double video_pos = sh_video ? |
418 (double)AVS->frameno / sh_video->fps : | 418 (double)AVS->frameno / sh_video->fps : |
419 (double)AVS->sampleno / sh_audio->samplerate; | 419 (double)AVS->sampleno / sh_audio->samplerate; |
420 double duration = sh_video ? | |
421 (double)AVS->video_info->num_frames / sh_video->fps : | |
422 (double)AVS->video_info->num_audio_samples / sh_audio->samplerate; | |
420 | 423 |
421 //mp_msg(MSGT_DEMUX, MSGL_V, "AVS: seek rel_seek_secs = %f - flags = %x\n", rel_seek_secs, flags); | 424 //mp_msg(MSGT_DEMUX, MSGL_V, "AVS: seek rel_seek_secs = %f - flags = %x\n", rel_seek_secs, flags); |
422 | 425 |
423 // seek absolute | 426 // seek absolute |
424 if (flags&1) video_pos=0; | 427 if (flags&1) video_pos=0; |
428 // seek precent | |
429 if (flags&2) rel_seek_secs *= duration; | |
425 | 430 |
426 video_pos += rel_seek_secs; | 431 video_pos += rel_seek_secs; |
427 if (video_pos < 0) video_pos = 0; | 432 if (video_pos < 0) video_pos = 0; |
428 | 433 |
429 if (sh_video) { | 434 if (sh_video) { |