[Swfdec-commits] 2 commits - swfdec/swfdec_filter.c swfdec/swfdec_sprite_movie.c

Benjamin Otte company at kemper.freedesktop.org
Mon Sep 15 11:08:49 PDT 2008


 swfdec/swfdec_filter.c       |   15 +++++++++++++--
 swfdec/swfdec_sprite_movie.c |    4 +---
 2 files changed, 14 insertions(+), 5 deletions(-)

New commits:
commit 42dcd394bc0e1faa61304ad1601c013f3b9818e3
Author: Benjamin Otte <otte at gnome.org>
Date:   Mon Sep 15 20:06:37 2008 +0200

    filters are garbage-collected, unreffing them causes crashers

diff --git a/swfdec/swfdec_sprite_movie.c b/swfdec/swfdec_sprite_movie.c
index e78efc2..25558ad 100644
--- a/swfdec/swfdec_sprite_movie.c
+++ b/swfdec/swfdec_sprite_movie.c
@@ -346,10 +346,8 @@ swfdec_sprite_movie_perform_place (SwfdecSpriteMovie *movie, SwfdecBits *bits, g
   }
 out:
   if (has_filter) {
-    if (cur->filters) {
-      g_slist_foreach (cur->filters, (GFunc) g_object_unref, NULL);
+    if (cur->filters)
       g_slist_free (cur->filters);
-    }
     cur->filters = filters;
   }
 
commit 618d4aaca302a0058ed43859b15027d09d345cce
Author: Benjamin Otte <otte at gnome.org>
Date:   Mon Sep 15 19:59:22 2008 +0200

    read out color matrix filters

diff --git a/swfdec/swfdec_filter.c b/swfdec/swfdec_filter.c
index d78154e..87bafb9 100644
--- a/swfdec/swfdec_filter.c
+++ b/swfdec/swfdec_filter.c
@@ -24,6 +24,7 @@
 #include "swfdec_filter.h"
 
 #include "swfdec_blur_filter.h"
+#include "swfdec_color_matrix_filter.h"
 #include "swfdec_debug.h"
 
 G_DEFINE_ABSTRACT_TYPE (SwfdecFilter, swfdec_filter, SWFDEC_TYPE_AS_OBJECT)
@@ -134,8 +135,18 @@ swfdec_filter_parse (SwfdecPlayer *player, SwfdecBits *bits)
 	}
 	break;
       case 6:
-	SWFDEC_WARNING ("    color matrix");
-	swfdec_bits_skip_bytes (bits, 20 * 4);
+	{
+	  SwfdecColorMatrixFilter *filter;
+	  guint j;
+	  
+	  filter = g_object_new (SWFDEC_TYPE_COLOR_MATRIX_FILTER, 
+	      "context", player, NULL);
+	  SWFDEC_LOG ("    color matrix");
+	  for (j = 0; j < 20; j++) {
+	    filter->matrix[j] = swfdec_bits_get_float (bits);
+	  }
+	  filters = g_slist_prepend (filters, filter);
+	}
 	break;
       case 7:
 	{


More information about the Swfdec-commits mailing list