From d52ec0029b916cd553bbc197f915abfbeef1b210 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Fri, 5 Feb 2010 00:37:39 +0000 Subject: [PATCH] Fast seeking. Try clicking with the mouse in the window, hold the button and drag. Originally committed as revision 21638 to svn://svn.ffmpeg.org/ffmpeg/trunk --- ffplay.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/ffplay.c b/ffplay.c index dbe500153..f6d21570c 100644 --- a/ffplay.c +++ b/ffplay.c @@ -2327,6 +2327,7 @@ static void event_loop(void) double incr, pos, frac; for(;;) { + double x; SDL_WaitEvent(&event); switch(event.type) { case SDL_KEYDOWN: @@ -2398,10 +2399,18 @@ static void event_loop(void) } break; case SDL_MOUSEBUTTONDOWN: + case SDL_MOUSEMOTION: + if(event.type ==SDL_MOUSEBUTTONDOWN){ + x= event.button.x; + }else{ + if(event.motion.state != SDL_PRESSED) + break; + x= event.motion.x; + } if (cur_stream) { if(seek_by_bytes || cur_stream->ic->duration<=0){ uint64_t size= url_fsize(cur_stream->ic->pb); - stream_seek(cur_stream, size*(double)event.button.x/(double)cur_stream->width, 0, 1); + stream_seek(cur_stream, size*x/cur_stream->width, 0, 1); }else{ int64_t ts; int ns, hh, mm, ss; @@ -2410,7 +2419,7 @@ static void event_loop(void) thh = tns/3600; tmm = (tns%3600)/60; tss = (tns%60); - frac = (double)event.button.x/(double)cur_stream->width; + frac = x/cur_stream->width; ns = frac*tns; hh = ns/3600; mm = (ns%3600)/60; @@ -2650,7 +2659,6 @@ int main(int argc, char **argv) } SDL_EventState(SDL_ACTIVEEVENT, SDL_IGNORE); - SDL_EventState(SDL_MOUSEMOTION, SDL_IGNORE); SDL_EventState(SDL_SYSWMEVENT, SDL_IGNORE); SDL_EventState(SDL_USEREVENT, SDL_IGNORE); -- 2.11.0