gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog server/impl.cpp server/swf/tag_...


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/impl.cpp server/swf/tag_...
Date: Thu, 04 Jan 2007 18:39:26 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  07/01/04 18:39:26

Modified files:
        .              : ChangeLog 
        server         : impl.cpp 
        server/swf     : tag_loaders.cpp tag_loaders.h 

Log message:
                * server/impl.cpp, server/swf/tag_loaders.{h,cpp}:
                  Implemented parsing (not use) of FILEATTRIBUTES (69)
                  and METADATA (77) tags.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2045&r2=1.2046
http://cvs.savannah.gnu.org/viewcvs/gnash/server/impl.cpp?cvsroot=gnash&r1=1.85&r2=1.86
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/tag_loaders.cpp?cvsroot=gnash&r1=1.68&r2=1.69
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/tag_loaders.h?cvsroot=gnash&r1=1.12&r2=1.13

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.2045
retrieving revision 1.2046
diff -u -b -r1.2045 -r1.2046
--- ChangeLog   4 Jan 2007 04:03:33 -0000       1.2045
+++ ChangeLog   4 Jan 2007 18:39:25 -0000       1.2046
@@ -1,5 +1,11 @@
 2007-01-04 Sandro Santilli <address@hidden>
 
+       * server/impl.cpp, server/swf/tag_loaders.{h,cpp}:
+         Implemented parsing (not use) of FILEATTRIBUTES (69)
+         and METADATA (77) tags.
+
+2007-01-04 Sandro Santilli <address@hidden>
+
        * server/parser/shape_character_def.cpp (read):
          use symbolic names for tags (not yet for flags: TODO);
          (read_fill_styles): don't choke on malformed SWF.

Index: server/impl.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/impl.cpp,v
retrieving revision 1.85
retrieving revision 1.86
diff -u -b -r1.85 -r1.86
--- server/impl.cpp     17 Dec 2006 20:24:57 -0000      1.85
+++ server/impl.cpp     4 Jan 2007 18:39:25 -0000       1.86
@@ -14,7 +14,7 @@
 // along with this program; if not, write to the Free Software
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
-/* $Id: impl.cpp,v 1.85 2006/12/17 20:24:57 rsavoye Exp $ */
+/* $Id: impl.cpp,v 1.86 2007/01/04 18:39:25 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -203,13 +203,13 @@
        register_tag_loader(SWF::DEFINEVIDEOSTREAM, define_video_loader); // 60
        register_tag_loader(SWF::VIDEOFRAME, video_loader); // 61
        
-       register_tag_loader(SWF::FILEATTRIBUTES, fixme_loader); // 69
+       register_tag_loader(SWF::FILEATTRIBUTES, file_attributes_loader); // 69
        register_tag_loader(SWF::PLACEOBJECT3, fixme_loader); // 70
        register_tag_loader(SWF::IMPORT2, fixme_loader); // 71
        register_tag_loader(SWF::DEFINEALIGNZONES, fixme_loader); // 73
        register_tag_loader(SWF::CSMTEXTSETTINGS, fixme_loader); // 74
        register_tag_loader(SWF::DEFINEFONT3, fixme_loader); // 75
-       register_tag_loader(SWF::METADATA, fixme_loader); // 77
+       register_tag_loader(SWF::METADATA, metadata_loader); // 77
        register_tag_loader(SWF::DEFINESCALINGGRID, fixme_loader); // 78
        register_tag_loader(SWF::DEFINESHAPE4, fixme_loader); // 83
        register_tag_loader(SWF::DEFINEMORPHSHAPE2, fixme_loader); // 84

Index: server/swf/tag_loaders.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/swf/tag_loaders.cpp,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -b -r1.68 -r1.69
--- server/swf/tag_loaders.cpp  28 Dec 2006 01:44:09 -0000      1.68
+++ server/swf/tag_loaders.cpp  4 Jan 2007 18:39:25 -0000       1.69
@@ -18,7 +18,7 @@
 //
 //
 
-/* $Id: tag_loaders.cpp,v 1.68 2006/12/28 01:44:09 strk Exp $ */
+/* $Id: tag_loaders.cpp,v 1.69 2007/01/04 18:39:25 strk Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -1868,6 +1868,67 @@
        ch->read(in, tag, m);
 }
 
+void
+file_attributes_loader(stream* in, tag_type tag, movie_definition* m)
+{
+       assert(tag == SWF::FILEATTRIBUTES); // 69
+
+       typedef struct file_attrs_flags_t {
+               unsigned reserved1:3;
+               unsigned has_metadata:1;
+               unsigned reserved2:3;
+               unsigned use_network:1;
+               unsigned reserved3:24;
+       } file_attrs_flags;
+
+       file_attrs_flags flags;
+
+       flags.reserved1 = in->read_uint(3);
+       flags.has_metadata = in->read_uint(1);
+       flags.reserved2 = in->read_uint(3);
+       flags.use_network = in->read_uint(1);
+       flags.reserved3 = in->read_uint(24);
+
+       IF_VERBOSE_PARSE
+       (
+               log_parse("  file attributes: has_metadata=%s use_network=%s",
+                       flags.has_metadata ? "true" : "false",
+                       flags.use_network ? "true" : "false")
+       );
+
+       if ( ! flags.use_network )
+       {
+               log_warning("FileAttributes tag in the SWF requests that "
+                       "network access is not granted to this movie "
+                       "(or application?). Anyway Gnash won't care "
+                       "use white/black listing in your .gnashrc instead");
+       }
+
+       // TODO: attach info to movie_definition 
+
+}
+
+void
+metadata_loader(stream* in, tag_type tag, movie_definition* m)
+{
+       assert(tag == SWF::METADATA); // 77
+
+       // this is supposed to be an XML string
+       char* metadata = in->read_string();
+
+       IF_VERBOSE_PARSE (
+               log_parse("  metadata = [[\n%s\n]]", metadata);
+       );
+
+       log_warning("METADATA tag parsed but unused");
+
+       // TODO: attach to movie_definition instead
+       //       (should we parse the XML maybe?)
+
+       delete [] metadata;
+
+}
+
 
 
 

Index: server/swf/tag_loaders.h
===================================================================
RCS file: /sources/gnash/gnash/server/swf/tag_loaders.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- server/swf/tag_loaders.h    29 Oct 2006 18:34:16 -0000      1.12
+++ server/swf/tag_loaders.h    4 Jan 2007 18:39:25 -0000       1.13
@@ -18,7 +18,7 @@
 //
 //
 
-/* $Id: tag_loaders.h,v 1.12 2006/10/29 18:34:16 rsavoye Exp $ */
+/* $Id: tag_loaders.h,v 1.13 2007/01/04 18:39:25 strk Exp $ */
 
 #ifndef GNASH_SWF_TAG_LOADERS_H
 #define GNASH_SWF_TAG_LOADERS_H
@@ -134,6 +134,12 @@
 void
 video_loader(stream* in, tag_type tag, movie_definition* m);
 
+void
+file_attributes_loader(stream* in, tag_type tag, movie_definition* m);
+
+void
+metadata_loader(stream* in, tag_type tag, movie_definition* m);
+
 } // namespace gnash::SWF::tag_loaders
 } // namespace gnash::SWF
 } // namespace gnash




reply via email to

[Prev in Thread] Current Thread [Next in Thread]