[Swfdec-commits] 2 commits - swfdec/swfdec_audio_decoder_uncompressed.c swfdec/swfdec_player.c

Benjamin Otte company at kemper.freedesktop.org
Mon Oct 13 06:31:49 PDT 2008


 swfdec/swfdec_audio_decoder_uncompressed.c |    7 +++++--
 swfdec/swfdec_player.c                     |    7 +++++++
 2 files changed, 12 insertions(+), 2 deletions(-)

New commits:
commit f6dbc3bb1b28cd118f53f1d92173c5c0525d5607
Author: Benjamin Otte <otte at gnome.org>
Date:   Mon Oct 13 15:24:48 2008 +0200

    increase invalidated area by one when using filters

diff --git a/swfdec/swfdec_player.c b/swfdec/swfdec_player.c
index 4bf3ad3..aa384ca 100644
--- a/swfdec/swfdec_player.c
+++ b/swfdec/swfdec_player.c
@@ -2461,9 +2461,16 @@ swfdec_player_invalidate_movie (SwfdecMovie *movie, double xscale, double yscale
     SwfdecRectangle *rect)
 {
   GSList *walk;
+  /* FIXME: We should likely always enlarge by one and not only for filters */
+  gboolean enlarge = !SWFDEC_IS_TEXT_FIELD_MOVIE (movie);
 
   while (movie != NULL) {
     for (walk = movie->filters; walk; walk = walk->next) {
+      if (enlarge) {
+	rect->width++;
+	rect->height++;
+	enlarge = FALSE;
+      }
       swfdec_filter_get_rectangle (walk->data, rect, xscale, yscale, rect);
     }
     movie = movie->parent;
commit 450634227fd4e6153a8bf31ab0d68924e49ca24a
Author: Benjamin Otte <otte at gnome.org>
Date:   Mon Oct 13 15:24:02 2008 +0200

    fix invalid write when reading unaligned data (fixes #18029)

diff --git a/swfdec/swfdec_audio_decoder_uncompressed.c b/swfdec/swfdec_audio_decoder_uncompressed.c
index 69a6922..5371d9f 100644
--- a/swfdec/swfdec_audio_decoder_uncompressed.c
+++ b/swfdec/swfdec_audio_decoder_uncompressed.c
@@ -99,10 +99,13 @@ swfdec_audio_decoder_uncompressed_decode_16bit (SwfdecBuffer *buffer)
   gint16 *src, *dest;
   guint i;
 
-  ret = swfdec_buffer_new (buffer->length);
+  if (buffer->length & 2) {
+    SWFDEC_ERROR ("buffer length not a multiple of 16bit");
+  }
+  ret = swfdec_buffer_new (buffer->length & ~1);
   src = (gint16 *) buffer->data;
   dest = (gint16 *) ret->data;
-  for (i = 0; i < buffer->length; i += 2) {
+  for (i = 0; i < ret->length; i += 2) {
     *dest = GINT16_FROM_LE (*src);
     dest++;
     src++;


More information about the Swfdec-commits mailing list