gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog libmedia/gst/gstflvparse.c serv... [relea


From: Bastiaan Jacques
Subject: [Gnash-commit] gnash ChangeLog libmedia/gst/gstflvparse.c serv... [release_0_8_2_rc1]
Date: Thu, 21 Feb 2008 19:01:43 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Branch:         release_0_8_2_rc1
Changes by:     Bastiaan Jacques <bjacques>     08/02/21 19:01:42

Modified files:
        .              : ChangeLog 
        libmedia/gst   : gstflvparse.c 
        server/asobj   : NetStream.cpp NetStream.h NetStreamGst.cpp 

Log message:
                * libmedia/gst/gstflvparse.c: Always send a GstMessage when a 
function
                is encountered (not just for onMetaData). Store the function 
name in a
                special tag.
                * server/asobj/NetStream.{cpp,h}: Change onMetaData to be 
generic for 
                any function called from an FLV.
                * server/asobj/NetStreamGst.cpp: Parse out the function name 
and call
                processNotify with the remainder of the tag.
        
        This commit is for rc1 only.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.5711.2.2&r2=1.5711.2.3
http://cvs.savannah.gnu.org/viewcvs/gnash/libmedia/gst/gstflvparse.c?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.1&r2=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/NetStream.cpp?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.84&r2=1.84.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/NetStream.h?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.58&r2=1.58.2.1
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/NetStreamGst.cpp?cvsroot=gnash&only_with_tag=release_0_8_2_rc1&r1=1.80&r2=1.80.2.1

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5711.2.2
retrieving revision 1.5711.2.3
diff -u -b -r1.5711.2.2 -r1.5711.2.3
--- ChangeLog   21 Feb 2008 19:00:06 -0000      1.5711.2.2
+++ ChangeLog   21 Feb 2008 19:01:41 -0000      1.5711.2.3
@@ -1,3 +1,13 @@
+2008-02-20 Bastiaan Jacques <address@hidden>
+
+       * libmedia/gst/gstflvparse.c: Always send a GstMessage when a function
+       is encountered (not just for onMetaData). Store the function name in a
+       special tag.
+       * server/asobj/NetStream.{cpp,h}: Change onMetaData to be generic for
+       any function called from an FLV.
+       * server/asobj/NetStreamGst.cpp: Parse out the function name and call
+       processNotify with the remainder of the tag.
+
 2008-02-21 Sandro Santilli <address@hidden>
 
        * testsuite/misc-ming.all/Makefile.am: don't try to build

Index: libmedia/gst/gstflvparse.c
===================================================================
RCS file: /sources/gnash/gnash/libmedia/gst/gstflvparse.c,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -u -b -r1.1 -r1.1.2.1
--- libmedia/gst/gstflvparse.c  21 Jan 2008 07:07:27 -0000      1.1
+++ libmedia/gst/gstflvparse.c  21 Feb 2008 19:01:42 -0000      1.1.2.1
@@ -334,14 +334,25 @@
 
     GST_LOG_OBJECT (demux, "function name is %s", function_name);
 
-    if (!strcmp (function_name, "onMetaData")) {
+    if (TRUE) {
       guint32 nb_elems = 0;
       gboolean end_marker = FALSE;
 
       GST_DEBUG_OBJECT (demux, "we have a metadata script object");
 
-      /* Jump over the onMetaData string and the array indicator */
-      offset += 13;
+      if (!gst_tag_exists ("___function_name___")) {
+        gst_tag_register ("___function_name___", GST_TAG_FLAG_META, 
G_TYPE_STRING,
+                          "___function_name___", "___function_name___", 
+                          gst_tag_merge_strings_with_comma);
+      }
+
+      if (gst_tag_get_type ("___function_name___") == G_TYPE_STRING) {
+        gst_tag_list_add (demux->taglist, GST_TAG_MERGE_REPLACE,
+                          "___function_name___", function_name, NULL);
+      }
+
+      /* Jump over the function_name string and the array indicator */
+      offset += strlen(function_name) + 3;
 
       nb_elems = GST_READ_UINT32_BE (data + offset);
 

Index: server/asobj/NetStream.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/NetStream.cpp,v
retrieving revision 1.84
retrieving revision 1.84.2.1
diff -u -b -r1.84 -r1.84.2.1
--- server/asobj/NetStream.cpp  27 Jan 2008 07:18:19 -0000      1.84
+++ server/asobj/NetStream.cpp  21 Feb 2008 19:01:42 -0000      1.84.2.1
@@ -17,7 +17,7 @@
 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 //
 
-/* $Id: NetStream.cpp,v 1.84 2008/01/27 07:18:19 bjacques Exp $ */
+/* $Id: NetStream.cpp,v 1.84.2.1 2008/02/21 19:01:42 bjacques Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "gnashconfig.h"
@@ -37,6 +37,8 @@
 #include "NetConnection.h"
 #include "render.h"    // for gnash::render::videoFrameFormat()
 #include "Object.h" // for getObjectInterface
+#include "VM.h"
+#include <boost/algorithm/string/case_conv.hpp> // for PROPNAME
 #include "namedStrings.h"
 #include "movie_root.h"
 
@@ -470,7 +472,7 @@
 
 
 void
-NetStream::processMetaData(boost::intrusive_ptr<as_object>& metadata_obj)
+NetStream::processNotify(std::string& funcname, 
boost::intrusive_ptr<as_object>& info_obj)
 {
        // TODO: check for System.onStatus too ! use a private 
getStatusHandler() method for this.
 
@@ -478,7 +480,9 @@
   log_debug(" Invoking onMetaData");
 #endif
 
-       callMethod(NSV::PROP_ON_META_DATA, as_value(metadata_obj.get()));
+        string_table::key func = 
getVM().getStringTable().find(PROPNAME(funcname));
+
+       callMethod(func, as_value(info_obj.get()));
 }
 
 

Index: server/asobj/NetStream.h
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/NetStream.h,v
retrieving revision 1.58
retrieving revision 1.58.2.1
diff -u -b -r1.58 -r1.58.2.1
--- server/asobj/NetStream.h    27 Jan 2008 07:18:19 -0000      1.58
+++ server/asobj/NetStream.h    21 Feb 2008 19:01:42 -0000      1.58.2.1
@@ -15,7 +15,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: NetStream.h,v 1.58 2008/01/27 07:18:19 bjacques Exp $ */
+/*  $Id: NetStream.h,v 1.58.2.1 2008/02/21 19:01:42 bjacques Exp $ */
 
 #ifndef __NETSTREAM_H__
 #define __NETSTREAM_H__
@@ -120,7 +120,7 @@
        void processStatusNotifications();
        
        
-       void processMetaData(boost::intrusive_ptr<as_object>& metadata_obj);
+       void processNotify(std::string& funcname, 
boost::intrusive_ptr<as_object>& metadata_obj);
 
        /// The actionscript enviroment for the AS callbacks
        //

Index: server/asobj/NetStreamGst.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/NetStreamGst.cpp,v
retrieving revision 1.80
retrieving revision 1.80.2.1
diff -u -b -r1.80 -r1.80.2.1
--- server/asobj/NetStreamGst.cpp       20 Feb 2008 19:03:59 -0000      1.80
+++ server/asobj/NetStreamGst.cpp       21 Feb 2008 19:01:42 -0000      1.80.2.1
@@ -534,11 +534,22 @@
 
       gst_message_parse_tag(message, &taglist);      
         
+      gchar* value;
+      if (!gst_tag_list_get_string(taglist, "___function_name___", &value)) {
+        break;
+      }
+      
+      std::string funcname(value);
+      g_free(value);
+      
+      gst_tag_list_remove_tag (taglist, "___function_name___");
+
+        
       boost::intrusive_ptr<as_object> o = new as_object(getObjectInterface());
 
       gst_tag_list_foreach(taglist, metadata, o.get());
 
-      processMetaData(o);
+      processNotify(funcname, o);
       
       g_free(taglist);
       break;




reply via email to

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