[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash ChangeLog server/impl.cpp server/stream.c...
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash ChangeLog server/impl.cpp server/stream.c... |
Date: |
Wed, 14 Feb 2007 22:48:56 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 07/02/14 22:48:55
Modified files:
. : ChangeLog
server : impl.cpp stream.cpp stream.h
server/swf : tag_loaders.cpp tag_loaders.h
Log message:
* server/swf/tag_loaders.{cpp,h}: implement serialnumber_loader.
* server/impl.cpp: register SERIALNUMBER loader.
* server/stream.{h,cpp}: add read_string_with_lenght() function
taking length as argument; add get_tag_length() function
returning length of current tag.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.2361&r2=1.2362
http://cvs.savannah.gnu.org/viewcvs/gnash/server/impl.cpp?cvsroot=gnash&r1=1.93&r2=1.94
http://cvs.savannah.gnu.org/viewcvs/gnash/server/stream.cpp?cvsroot=gnash&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/gnash/server/stream.h?cvsroot=gnash&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/tag_loaders.cpp?cvsroot=gnash&r1=1.74&r2=1.75
http://cvs.savannah.gnu.org/viewcvs/gnash/server/swf/tag_loaders.h?cvsroot=gnash&r1=1.13&r2=1.14
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.2361
retrieving revision 1.2362
diff -u -b -r1.2361 -r1.2362
--- ChangeLog 14 Feb 2007 20:41:47 -0000 1.2361
+++ ChangeLog 14 Feb 2007 22:48:55 -0000 1.2362
@@ -1,3 +1,11 @@
+2007-02-14 Sandro Santilli <address@hidden>
+
+ * server/swf/tag_loaders.{cpp,h}: implement serialnumber_loader.
+ * server/impl.cpp: register SERIALNUMBER loader.
+ * server/stream.{h,cpp}: add read_string_with_lenght() function
+ taking length as argument; add get_tag_length() function
+ returning length of current tag.
+
2007-02-14 Tomas Groth Christensen <address@hidden>
* backend/sound_handler_sdl.cpp, server/asobj/NetStreamFfmpeg.{h,cpp},
Index: server/impl.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/impl.cpp,v
retrieving revision 1.93
retrieving revision 1.94
diff -u -b -r1.93 -r1.94
--- server/impl.cpp 14 Feb 2007 14:12:47 -0000 1.93
+++ server/impl.cpp 14 Feb 2007 22:48:55 -0000 1.94
@@ -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.93 2007/02/14 14:12:47 strk Exp $ */
+/* $Id: impl.cpp,v 1.94 2007/02/14 22:48:55 strk Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -182,7 +182,7 @@
register_tag_loader(SWF::DEFINEVIDEO, fixme_loader); // 38
register_tag_loader(SWF::DEFINESPRITE, sprite_loader);
register_tag_loader(SWF::NAMECHARACTER, fixme_loader); // 40
- register_tag_loader(SWF::SERIALNUMBER, fixme_loader); // 41
+ register_tag_loader(SWF::SERIALNUMBER, serialnumber_loader); // 41
register_tag_loader(SWF::DEFINETEXTFORMAT, fixme_loader); // 42
register_tag_loader(SWF::FRAMELABEL, frame_label_loader); // 43
// 44 - _UNKNOWN_ unimplemented
Index: server/stream.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/stream.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- server/stream.cpp 20 Sep 2006 14:15:22 -0000 1.11
+++ server/stream.cpp 14 Feb 2007 22:48:55 -0000 1.12
@@ -183,6 +183,7 @@
align();
int len = read_u8();
+ log_msg("String length: %d", len);
if (len <= 0)
{
return NULL;
@@ -206,6 +207,13 @@
align();
unsigned int len = read_u8();
+ read_string_with_length(len, to);
+ }
+
+ void stream::read_string_with_length(unsigned len, std::string& to)
+ {
+ align();
+
to.resize(len);
for (unsigned int i = 0; i < len; ++i)
@@ -258,6 +266,7 @@
if (tag_length == 0x3F) {
tag_length = m_input->read_le32();
}
+ _current_tag_length = tag_length;
IF_VERBOSE_PARSE (
log_parse("SWF[%u]: tag type = %d, tag length = %d",
Index: server/stream.h
===================================================================
RCS file: /sources/gnash/gnash/server/stream.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- server/stream.h 20 Sep 2006 17:07:33 -0000 1.13
+++ server/stream.h 14 Feb 2007 22:48:55 -0000 1.14
@@ -71,16 +71,30 @@
/// Reads *and new[]'s* the string from the given file.
/// Ownership passes to the caller; caller must delete[] the
/// string when it is done with it.
- /// For string that begins with an 8-bit length code.
+ /// Length of string is read from the first byte.
+ ///
char* read_string_with_length();
- /// \brief
- /// Reads a sized string from the given file and
- /// assigns it to the given std::string,k overriding any
- /// previous value of it.
+ /// Reads a sized string into a provided std::string.
+ //
+ /// Length of string is read from the first byte.
+ ///
+ /// @param to
+ /// Output argument. Any previous value will be overriden.
///
void read_string_with_length(std::string& to);
+ /// Reads a sized string into a provided std::string.
+ //
+ ///
+ /// @param len
+ /// Length of string to read.
+ ///
+ /// @param to
+ /// Output argument. Any previous value will be overriden.
+ ///
+ void read_string_with_length(unsigned len, std::string& to);
+
/// Return our current (byte) position in the input stream.
int get_position();
@@ -90,6 +104,11 @@
/// Return the file position of the end of the current tag.
int get_tag_end_position();
+ /// Return the length of the current tag.
+ int get_tag_length() {
+ return _current_tag_length;
+ }
+
/// Return the tag type.
SWF::tag_type open_tag();
@@ -111,6 +130,8 @@
}
private:
+ int _current_tag_length;
+
tu_file* m_input;
uint8_t m_current_byte;
uint8_t m_unused_bits;
Index: server/swf/tag_loaders.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/swf/tag_loaders.cpp,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -b -r1.74 -r1.75
--- server/swf/tag_loaders.cpp 8 Feb 2007 13:25:42 -0000 1.74
+++ server/swf/tag_loaders.cpp 14 Feb 2007 22:48:55 -0000 1.75
@@ -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: tag_loaders.cpp,v 1.74 2007/02/08 13:25:42 tgc Exp $ */
+/* $Id: tag_loaders.cpp,v 1.75 2007/02/14 22:48:55 strk Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -1955,6 +1955,24 @@
}
+void
+serialnumber_loader(stream* in, tag_type tag, movie_definition* /*m*/)
+{
+ assert(tag == SWF::SERIALNUMBER); // 41
+
+ std::string serial;
+ in->read_string_with_length(in->get_tag_length(), serial);
+
+ IF_VERBOSE_PARSE (
+ log_parse(" serialnumber = [[\n%s\n]]", serial.c_str());
+ );
+
+ log_msg("SERIALNUMBER: %s", serial.c_str());
+
+ // attach to movie_definition ?
+
+}
+
Index: server/swf/tag_loaders.h
===================================================================
RCS file: /sources/gnash/gnash/server/swf/tag_loaders.h,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- server/swf/tag_loaders.h 4 Jan 2007 18:39:25 -0000 1.13
+++ server/swf/tag_loaders.h 14 Feb 2007 22:48:55 -0000 1.14
@@ -18,7 +18,7 @@
//
//
-/* $Id: tag_loaders.h,v 1.13 2007/01/04 18:39:25 strk Exp $ */
+/* $Id: tag_loaders.h,v 1.14 2007/02/14 22:48:55 strk Exp $ */
#ifndef GNASH_SWF_TAG_LOADERS_H
#define GNASH_SWF_TAG_LOADERS_H
@@ -140,6 +140,10 @@
void
metadata_loader(stream* in, tag_type tag, movie_definition* m);
+/// Load a SWF::SERIALNUMBER tag.
+void
+serialnumber_loader(stream* in, tag_type tag, movie_definition* /*m*/);
+
} // namespace gnash::SWF::tag_loaders
} // namespace gnash::SWF
} // namespace gnash
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash ChangeLog server/impl.cpp server/stream.c...,
Sandro Santilli <=