From 6fdd2872be2328044f27c700cef1e94f67cd255d Mon Sep 17 00:00:00 2001 From: pabs3 Date: Thu, 6 Nov 2008 10:36:52 +0000 Subject: [PATCH] Speed up reverse seeking in the ffmpeg importer by using the ffmpeg -ss option to tell ffmpeg to seek to the right frame. git-svn-id: https://synfig.svn.sourceforge.net/svnroot/synfig@2161 1f10aa63-cdf2-0310-b900-c93c546f37ac --- synfig-core/trunk/src/modules/mod_ffmpeg/mptr_ffmpeg.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/synfig-core/trunk/src/modules/mod_ffmpeg/mptr_ffmpeg.cpp b/synfig-core/trunk/src/modules/mod_ffmpeg/mptr_ffmpeg.cpp index b611d97..0ab514f 100644 --- a/synfig-core/trunk/src/modules/mod_ffmpeg/mptr_ffmpeg.cpp +++ b/synfig-core/trunk/src/modules/mod_ffmpeg/mptr_ffmpeg.cpp @@ -102,7 +102,7 @@ ffmpeg_mptr::seek_to(int frame) string command; - command=strprintf("ffmpeg -i \"%s\" -an -f image2pipe -vcodec ppm -\n",filename.c_str()); + command=strprintf("ffmpeg -ss 00:00:00.%d -i \"%s\" -an -f image2pipe -vcodec ppm -\n",frame,filename.c_str()); file=popen(command.c_str(),POPEN_BINARY_READ_TYPE); @@ -133,7 +133,8 @@ ffmpeg_mptr::seek_to(int frame) } // Close the unneeded pipein close(p[1]); - execlp("ffmpeg", "ffmpeg", "-i", filename.c_str(), "-an", "-f", "image2pipe", "-vcodec", "ppm", "-", (const char *)NULL); + string time = strprintf("00:00:00.%d",frame); + execlp("ffmpeg", "ffmpeg", "-ss", time.c_str(), "-i", filename.c_str(), "-an", "-f", "image2pipe", "-vcodec", "ppm", "-", (const char *)NULL); // We should never reach here unless the exec failed cerr<<"Unable to open pipe to ffmpeg"<