riff: create palette_data buffer correctly
authorTim-Philipp Müller <tim@centricular.net>
Mon, 15 Oct 2012 23:55:56 +0000 (00:55 +0100)
committerTim-Philipp Müller <tim@centricular.net>
Mon, 15 Oct 2012 23:55:56 +0000 (00:55 +0100)
gst_buffer_copy_into() will append to any existing
memory region, so don't create a buffer and alloc
some memory, but just create an empty buffer and
let _copy_into() append the memory we want. Fixes
the palette being 2048 bytes with the first half
being filled with garbage.

https://bugzilla.gnome.org/show_bug.cgi?id=686046

gst-libs/gst/riff/riff-media.c

index c64e996..12ff927 100644 (file)
@@ -906,7 +906,7 @@ gst_riff_create_video_caps (guint32 codec_fcc,
 
     if (size >= (num_colors * 4)) {
       /* palette is always at least 256*4 bytes */
-      copy = gst_buffer_new_and_alloc (MAX (size, 256 * 4));
+      copy = gst_buffer_new ();
       gst_buffer_copy_into (copy, palette, GST_BUFFER_COPY_MEMORY, 0, size);
 
 #if (G_BYTE_ORDER == G_BIG_ENDIAN)