X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fmodules%2Fmod_ffmpeg%2Fmptr_ffmpeg.cpp;h=0ab514fc4fd647a10c4917716c25326f1dcf289c;hb=284f2de6f33ed153630ffda94653a9eea093095e;hp=6a4c3f68056bc26c219c14c96fdbbc6cce20b074;hpb=ac9f1942ee6347c80de853354d0e5e9890ebf98c;p=synfig.git 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 6a4c3f6..0ab514f 100644 --- a/synfig-core/trunk/src/modules/mod_ffmpeg/mptr_ffmpeg.cpp +++ b/synfig-core/trunk/src/modules/mod_ffmpeg/mptr_ffmpeg.cpp @@ -77,6 +77,11 @@ SYNFIG_IMPORTER_SET_CVS_ID(ffmpeg_mptr,"$Id$"); /* === M E T H O D S ======================================================= */ +bool ffmpeg_mptr::is_animated() +{ + return true; +} + bool ffmpeg_mptr::seek_to(int frame) { @@ -97,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); @@ -128,10 +133,11 @@ 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"<