/* === M E T H O D S ======================================================= */
+bool ffmpeg_mptr::is_animated()
+{
+ return true;
+}
+
bool
ffmpeg_mptr::seek_to(int frame)
{
execlp("ffmpeg", "ffmpeg", "-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"<<endl;
- return false;
+ _exit(1);
} else {
// Parent process
// Close pipeout, not needed
float divisor;
char cookie[2];
cookie[0]=fgetc(file);
+
+ if(feof(file))
+ return false;
+
cookie[1]=fgetc(file);
if(cookie[0]!='P' || cookie[1]!='6')
}
surface=frame;
- return false;
+ return true;
}