[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash server/impl.cpp ChangeLog
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash server/impl.cpp ChangeLog |
Date: |
Wed, 28 Nov 2007 15:38:53 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 07/11/28 15:38:53
Modified files:
server : impl.cpp
. : ChangeLog
Log message:
stub support for png loading.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/server/impl.cpp?cvsroot=gnash&r1=1.126&r2=1.127
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.4994&r2=1.4995
Patches:
Index: server/impl.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/impl.cpp,v
retrieving revision 1.126
retrieving revision 1.127
diff -u -b -r1.126 -r1.127
--- server/impl.cpp 24 Nov 2007 17:21:44 -0000 1.126
+++ server/impl.cpp 28 Nov 2007 15:38:52 -0000 1.127
@@ -17,7 +17,7 @@
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
//
-/* $Id: impl.cpp,v 1.126 2007/11/24 17:21:44 strk Exp $ */
+/* $Id: impl.cpp,v 1.127 2007/11/28 15:38:52 strk Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -392,7 +392,7 @@
if ( ! im.get() )
{
- log_error(_("Can't read jpeg"));
+ log_error(_("Can't read jpeg from %u"), url.c_str());
return NULL;
}
@@ -400,13 +400,34 @@
//log_msg(_("BitmapMovieDefinition %p created"), mdef);
return mdef;
+}
+
+// Create a movie_definition from a png stream
+// NOTE: this method assumes this *is* a png stream
+static movie_definition*
+create_png_movie(std::auto_ptr<tu_file> in, const std::string& url)
+{
+ log_unimpl(_("Loading of png"));
+ return NULL;
+
+#if 0
+ std::auto_ptr<image::rgb> im ( image::read_png(in.get()) );
+
+ if ( ! im.get() )
+ {
+ log_error(_("Can't read png from %s"), url.c_str());
+ return NULL;
+ }
+
+ BitmapMovieDefinition* mdef = new BitmapMovieDefinition(im, url);
+ //log_msg(_("BitmapMovieDefinition %p created"), mdef);
+ return mdef;
+#endif
- // FIXME: create a movie_definition from a jpeg
- //bitmap_character* ch = new bitmap_character(bi);
}
// Get type of file looking at first bytes
-// return "jpeg", "swf" or "unknown"
+// return "jpeg", "png", "swf" or "unknown"
//
static std::string
get_file_type(tu_file* in)
@@ -418,6 +439,7 @@
if ( 3 < in->read_bytes(buf, 3) )
{
log_error(_("Can't read file header"));
+ in->set_position(0);
return "unknown";
}
@@ -428,6 +450,13 @@
return "jpeg";
}
+ // This is the magic number for any JPEG format file
+ if ((buf[0] == 137) && (buf[1] == 'P') && (buf[2] == 'N')) // buf[3] ==
'G' (we didn't read so far)
+ {
+ in->set_position(0);
+ return "png";
+ }
+
// This is for SWF (FWS or CWS)
if ( (buf[0] == 'F' || buf[0] == 'C') &&
(buf[1] == 'W') &&
@@ -440,15 +469,24 @@
// Check if it is an swf embedded in a player (.exe-file)
if ((buf[0] == 'M') && (buf[1] == 'Z')) {
- if ( 3 < in->read_bytes(buf, 3) ) return "unknown";
+ if ( 3 < in->read_bytes(buf, 3) )
+ {
+ in->set_position(0);
+ return "unknown";
+ }
- while (buf[0]!='F' && buf[0]!='C' || buf[1]!='W' ||
buf[2]!='S') {
+ while (buf[0]!='F' && buf[0]!='C' || buf[1]!='W' || buf[2]!='S')
+ {
buf[0] = buf[1];
buf[1] = buf[2];
buf[2] = in->read_byte();
- if (in->get_eof()) return "unknown";
+ if (in->get_eof())
+ {
+ in->set_position(0);
+ return "unknown";
}
- in->set_position(in->get_position()-3);
+ }
+ in->set_position(in->get_position()-3); // position to start of
the swf itself
return "swf";
}
return "unknown";
@@ -498,6 +536,14 @@
}
return create_jpeg_movie(in, url);
}
+ else if ( type == "png" )
+ {
+ if ( startLoaderThread == false )
+ {
+ log_unimpl(_("Requested to keep from completely loading
a movie, but the movie in question is a png, for which we don't yet have the
concept of a 'loading thread'"));
+ }
+ return create_png_movie(in, url);
+ }
else if ( type == "swf" )
{
return create_swf_movie(in, url, startLoaderThread);
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.4994
retrieving revision 1.4995
diff -u -b -r1.4994 -r1.4995
--- ChangeLog 28 Nov 2007 12:47:03 -0000 1.4994
+++ ChangeLog 28 Nov 2007 15:38:53 -0000 1.4995
@@ -1,5 +1,9 @@
2007-11-28 Sandro Santilli <address@hidden>
+ * server/impl.cpp: stub support for png loading.
+
+2007-11-28 Sandro Santilli <address@hidden>
+
* server/asobj/Stage.{cpp,h}: make Stage an AsBroadcaster and
register its native methods; stage align and showMenu members.
* server/movie_root.cpp: update use of Stage to its AsBroadcaster
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash server/impl.cpp ChangeLog,
Sandro Santilli <=