--- ../gnash-0.8.10/./gui/ScreenShotter.h	2012-01-20 04:17:47.000000000 +0900
+++ ./gui/ScreenShotter.h	2012-02-23 03:04:06.000000000 +0900
@@ -25,6 +25,7 @@
 #include <set>
 #include <algorithm>
 #include <boost/lexical_cast.hpp>
+#include <boost/format.hpp>
 
 #include "GnashEnums.h"
 
@@ -59,6 +60,11 @@
         _last = true;
     }
 
+    /// Take whole screenshots
+    void allFrames() {
+        _all = true;
+    }
+
     struct NoAction { void operator()() const {} };
 
     /// To be called on the last frame before exit.
@@ -117,7 +123,16 @@
     void screenShot(const Renderer& r, size_t frameAdvance, Action* t = 0) {
         // Save an image if a spontaneous screenshot was requested or the
         // frame is in the list of requested frames.
-        if (_immediate || std::binary_search(_frames.begin(), _frames.end(),
+        if ( _all ) {
+        	if( frameAdvance != _last_saved_frame )
+        	{
+				if (t) (*t)();
+				std::string frame = boost::str( boost::format("%06d") % frameAdvance);
+				saveImage(r, frame);
+				printf("screenShot-all : %s\n", frame.c_str() );
+				_last_saved_frame = frameAdvance;
+			}
+        } else if (_immediate || std::binary_search(_frames.begin(), _frames.end(),
                     frameAdvance)) {
 
             // Check whether we've rendered an image for this frame.
@@ -150,6 +165,10 @@
     /// Whether to take a screenshot on the last frame.
     bool _last;
 
+    /// Whether to take screenshots on each frame..
+    bool _all;
+    size_t _last_saved_frame;
+
     FrameList _frames;
 
     const FileType _type;
--- ../gnash-0.8.10/./gui/Player.cpp	2012-01-24 04:56:47.000000000 +0900
+++ ./gui/Player.cpp	2012-02-23 02:14:22.000000000 +0900
@@ -616,10 +616,12 @@
         std::istringstream is(_screenshots);
         std::string arg;
         bool last = false;
+        bool all = false;
         ScreenShotter::FrameList v;
 
         while (std::getline(is, arg, ',')) {
             if (arg == "last") last = true;
+            else if (arg == "all") all = true;
             else try {
                 const size_t frame = boost::lexical_cast<size_t>(arg);
                 v.push_back(frame);
@@ -635,11 +637,12 @@
                 url.path().substr(p + 1);
             _screenshotFile = "screenshot-" + name + "-%f";
         }
-        if (!last && v.empty()) return;
+        if (!all && !last && v.empty()) return;
         
         std::auto_ptr<ScreenShotter> ss(new ScreenShotter(_screenshotFile,
                                                           _screenshotQuality));
         if (last) ss->lastFrame();
+        else if (all) ss->allFrames();
         ss->setFrames(v);
         _gui->setScreenShotter(ss);
     }
--- ../gnash-0.8.10/./gui/ScreenShotter.cpp	2012-01-20 04:17:47.000000000 +0900
+++ ./gui/ScreenShotter.cpp	2012-02-23 02:56:39.000000000 +0900
@@ -63,6 +63,8 @@
     _immediate(false),
     _fileName(fileName),
     _last(false),
+    _all(false),
+    _last_saved_frame(-1),
     _type(typeFromFileName(fileName)),
     _quality(quality)
 {
