riff: create palette_data buffer correctly

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
This commit is contained in:
Tim-Philipp Müller 2012-10-16 00:55:56 +01:00
parent 162433795a
commit b0d581eadc

View 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)