ext/ogg/gstoggmux.c (gst_ogg_mux_set_header_on_caps): ext/ogg/gstoggparse.c (gst_ogg_parse_append_header)

Original commit message from CVS:
2005-11-21  Andy Wingo  <wingo@pobox.com>

patch by: Alessandro Dessina <alessandro nnva org>

* ext/ogg/gstoggmux.c (gst_ogg_mux_set_header_on_caps):
* ext/ogg/gstoggparse.c (gst_ogg_parse_append_header)
(gst_ogg_parse_chain):
* ext/theora/theoraenc.c (theora_set_header_on_caps):
* ext/vorbis/vorbisenc.c (gst_vorbisenc_set_header_on_caps):
* ext/vorbis/vorbisparse.c (vorbis_parse_set_header_on_caps): Fix
gst_value_list calls on arrays. Fixes #321962.
This commit is contained in:
Alessandro Dessina 2005-11-21 12:36:22 +00:00 committed by Andy Wingo
parent 46db91babf
commit 6483710419
6 changed files with 46 additions and 34 deletions

View file

@ -1,3 +1,15 @@
2005-11-21 Andy Wingo <wingo@pobox.com>
patch by: Alessandro Dessina <alessandro nnva org>
* ext/ogg/gstoggmux.c (gst_ogg_mux_set_header_on_caps):
* ext/ogg/gstoggparse.c (gst_ogg_parse_append_header)
(gst_ogg_parse_chain):
* ext/theora/theoraenc.c (theora_set_header_on_caps):
* ext/vorbis/vorbisenc.c (gst_vorbisenc_set_header_on_caps):
* ext/vorbis/vorbisparse.c (vorbis_parse_set_header_on_caps): Fix
gst_value_list calls on arrays. Fixes #321962.
2005-11-21 Tim-Philipp Müller <tim at centricular dot net> 2005-11-21 Tim-Philipp Müller <tim at centricular dot net>
* ext/ogg/gstoggmux.c: (gst_ogg_mux_init), * ext/ogg/gstoggmux.c: (gst_ogg_mux_init),

View file

@ -768,7 +768,7 @@ static GstCaps *
gst_ogg_mux_set_header_on_caps (GstCaps * caps, GList * buffers) gst_ogg_mux_set_header_on_caps (GstCaps * caps, GList * buffers)
{ {
GstStructure *structure; GstStructure *structure;
GValue list = { 0 }; GValue array = { 0 };
GList *walk = buffers; GList *walk = buffers;
caps = gst_caps_make_writable (caps); caps = gst_caps_make_writable (caps);
@ -776,7 +776,7 @@ gst_ogg_mux_set_header_on_caps (GstCaps * caps, GList * buffers)
structure = gst_caps_get_structure (caps, 0); structure = gst_caps_get_structure (caps, 0);
/* put buffers in a fixed list */ /* put buffers in a fixed list */
g_value_init (&list, GST_TYPE_ARRAY); g_value_init (&array, GST_TYPE_ARRAY);
while (walk) { while (walk) {
GstBuffer *buf = GST_BUFFER (walk->data); GstBuffer *buf = GST_BUFFER (walk->data);
@ -790,11 +790,11 @@ gst_ogg_mux_set_header_on_caps (GstCaps * caps, GList * buffers)
g_value_init (&value, GST_TYPE_BUFFER); g_value_init (&value, GST_TYPE_BUFFER);
gst_value_set_buffer (&value, buf); gst_value_set_buffer (&value, buf);
gst_value_list_append_value (&list, &value); gst_value_array_append_value (&array, &value);
g_value_unset (&value); g_value_unset (&value);
} }
gst_structure_set_value (structure, "streamheader", &list); gst_structure_set_value (structure, "streamheader", &array);
g_value_unset (&list); g_value_unset (&array);
return caps; return caps;
} }

View file

@ -298,7 +298,7 @@ gst_ogg_parse_submit_buffer (GstOggParse * ogg, GstBuffer * buffer)
} }
static void static void
gst_ogg_parse_append_header (GValue * list, GstBuffer * buf) gst_ogg_parse_append_header (GValue * array, GstBuffer * buf)
{ {
GValue value = { 0 }; GValue value = { 0 };
@ -306,7 +306,7 @@ gst_ogg_parse_append_header (GValue * list, GstBuffer * buf)
g_value_init (&value, GST_TYPE_BUFFER); g_value_init (&value, GST_TYPE_BUFFER);
gst_value_set_buffer (&value, buf); gst_value_set_buffer (&value, buf);
gst_value_list_append_value (list, &value); gst_value_array_append_value (array, &value);
g_value_unset (&value); g_value_unset (&value);
} }
@ -501,11 +501,11 @@ gst_ogg_parse_chain (GstPad * pad, GstBuffer * buffer)
*/ */
GstCaps *caps; GstCaps *caps;
GstStructure *structure; GstStructure *structure;
GValue list = { 0 }; GValue array = { 0 };
gint i, count = 0; gint i, count = 0;
gboolean found_pending_headers = FALSE; gboolean found_pending_headers = FALSE;
g_value_init (&list, GST_TYPE_ARRAY); g_value_init (&array, GST_TYPE_ARRAY);
for (i = 0; i < g_slist_length (ogg->oggstreams); i++) { for (i = 0; i < g_slist_length (ogg->oggstreams); i++) {
GstOggStream *stream = g_slist_nth_data (ogg->oggstreams, i); GstOggStream *stream = g_slist_nth_data (ogg->oggstreams, i);
@ -516,7 +516,7 @@ gst_ogg_parse_chain (GstPad * pad, GstBuffer * buffer)
goto failure; goto failure;
} }
gst_ogg_parse_append_header (&list, gst_ogg_parse_append_header (&array,
GST_BUFFER (stream->headers->data)); GST_BUFFER (stream->headers->data));
count++; count++;
} }
@ -526,7 +526,7 @@ gst_ogg_parse_chain (GstPad * pad, GstBuffer * buffer)
int j; int j;
for (j = 1; j < g_slist_length (stream->headers); j++) { for (j = 1; j < g_slist_length (stream->headers); j++) {
gst_ogg_parse_append_header (&list, gst_ogg_parse_append_header (&array,
GST_BUFFER (g_slist_nth_data (stream->headers, j))); GST_BUFFER (g_slist_nth_data (stream->headers, j)));
count++; count++;
} }
@ -536,11 +536,11 @@ gst_ogg_parse_chain (GstPad * pad, GstBuffer * buffer)
caps = gst_caps_make_writable (caps); caps = gst_caps_make_writable (caps);
structure = gst_caps_get_structure (caps, 0); structure = gst_caps_get_structure (caps, 0);
gst_structure_set_value (structure, "streamheader", &list); gst_structure_set_value (structure, "streamheader", &array);
gst_pad_set_caps (ogg->srcpad, caps); gst_pad_set_caps (ogg->srcpad, caps);
g_value_unset (&list); g_value_unset (&array);
// gst_caps_free(caps); // gst_caps_free(caps);

View file

@ -381,7 +381,7 @@ theora_set_header_on_caps (GstCaps * caps, GstBuffer * buf1,
GstBuffer * buf2, GstBuffer * buf3) GstBuffer * buf2, GstBuffer * buf3)
{ {
GstStructure *structure; GstStructure *structure;
GValue list = { 0 }; GValue array = { 0 };
GValue value = { 0 }; GValue value = { 0 };
caps = gst_caps_make_writable (caps); caps = gst_caps_make_writable (caps);
@ -393,21 +393,21 @@ theora_set_header_on_caps (GstCaps * caps, GstBuffer * buf1,
GST_BUFFER_FLAG_SET (buf3, GST_BUFFER_FLAG_IN_CAPS); GST_BUFFER_FLAG_SET (buf3, GST_BUFFER_FLAG_IN_CAPS);
/* put buffers in a fixed list */ /* put buffers in a fixed list */
g_value_init (&list, GST_TYPE_ARRAY); g_value_init (&array, GST_TYPE_ARRAY);
g_value_init (&value, GST_TYPE_BUFFER); g_value_init (&value, GST_TYPE_BUFFER);
gst_value_set_buffer (&value, buf1); gst_value_set_buffer (&value, buf1);
gst_value_list_append_value (&list, &value); gst_value_array_append_value (&array, &value);
g_value_unset (&value); g_value_unset (&value);
g_value_init (&value, GST_TYPE_BUFFER); g_value_init (&value, GST_TYPE_BUFFER);
gst_value_set_buffer (&value, buf2); gst_value_set_buffer (&value, buf2);
gst_value_list_append_value (&list, &value); gst_value_array_append_value (&array, &value);
g_value_unset (&value); g_value_unset (&value);
g_value_init (&value, GST_TYPE_BUFFER); g_value_init (&value, GST_TYPE_BUFFER);
gst_value_set_buffer (&value, buf3); gst_value_set_buffer (&value, buf3);
gst_value_list_append_value (&list, &value); gst_value_array_append_value (&array, &value);
gst_structure_set_value (structure, "streamheader", &list); gst_structure_set_value (structure, "streamheader", &array);
g_value_unset (&value); g_value_unset (&value);
g_value_unset (&list); g_value_unset (&array);
return caps; return caps;
} }

View file

@ -845,7 +845,7 @@ gst_vorbisenc_set_header_on_caps (GstCaps * caps, GstBuffer * buf1,
GstBuffer * buf2, GstBuffer * buf3) GstBuffer * buf2, GstBuffer * buf3)
{ {
GstStructure *structure; GstStructure *structure;
GValue list = { 0 }; GValue array = { 0 };
GValue value = { 0 }; GValue value = { 0 };
caps = gst_caps_make_writable (caps); caps = gst_caps_make_writable (caps);
@ -857,21 +857,21 @@ gst_vorbisenc_set_header_on_caps (GstCaps * caps, GstBuffer * buf1,
GST_BUFFER_FLAG_SET (buf3, GST_BUFFER_FLAG_IN_CAPS); GST_BUFFER_FLAG_SET (buf3, GST_BUFFER_FLAG_IN_CAPS);
/* put buffers in a fixed list */ /* put buffers in a fixed list */
g_value_init (&list, GST_TYPE_ARRAY); g_value_init (&array, GST_TYPE_ARRAY);
g_value_init (&value, GST_TYPE_BUFFER); g_value_init (&value, GST_TYPE_BUFFER);
gst_value_set_buffer (&value, buf1); gst_value_set_buffer (&value, buf1);
gst_value_list_append_value (&list, &value); gst_value_array_append_value (&array, &value);
g_value_unset (&value); g_value_unset (&value);
g_value_init (&value, GST_TYPE_BUFFER); g_value_init (&value, GST_TYPE_BUFFER);
gst_value_set_buffer (&value, buf2); gst_value_set_buffer (&value, buf2);
gst_value_list_append_value (&list, &value); gst_value_array_append_value (&array, &value);
g_value_unset (&value); g_value_unset (&value);
g_value_init (&value, GST_TYPE_BUFFER); g_value_init (&value, GST_TYPE_BUFFER);
gst_value_set_buffer (&value, buf3); gst_value_set_buffer (&value, buf3);
gst_value_list_append_value (&list, &value); gst_value_array_append_value (&array, &value);
gst_structure_set_value (structure, "streamheader", &list); gst_structure_set_value (structure, "streamheader", &array);
g_value_unset (&value); g_value_unset (&value);
g_value_unset (&list); g_value_unset (&array);
return caps; return caps;
} }

View file

@ -104,7 +104,7 @@ vorbis_parse_set_header_on_caps (GstVorbisParse * parse, GstCaps * caps)
{ {
GstBuffer *buf1, *buf2, *buf3; GstBuffer *buf1, *buf2, *buf3;
GstStructure *structure; GstStructure *structure;
GValue list = { 0 }; GValue array = { 0 };
GValue value = { 0 }; GValue value = { 0 };
g_assert (parse); g_assert (parse);
@ -126,21 +126,21 @@ vorbis_parse_set_header_on_caps (GstVorbisParse * parse, GstCaps * caps)
GST_BUFFER_FLAG_SET (buf3, GST_BUFFER_FLAG_IN_CAPS); GST_BUFFER_FLAG_SET (buf3, GST_BUFFER_FLAG_IN_CAPS);
/* put buffers in a fixed list */ /* put buffers in a fixed list */
g_value_init (&list, GST_TYPE_ARRAY); g_value_init (&array, GST_TYPE_ARRAY);
g_value_init (&value, GST_TYPE_BUFFER); g_value_init (&value, GST_TYPE_BUFFER);
g_value_set_boxed (&value, buf1); g_value_set_boxed (&value, buf1);
gst_value_list_append_value (&list, &value); gst_value_array_append_value (&array, &value);
g_value_unset (&value); g_value_unset (&value);
g_value_init (&value, GST_TYPE_BUFFER); g_value_init (&value, GST_TYPE_BUFFER);
g_value_set_boxed (&value, buf2); g_value_set_boxed (&value, buf2);
gst_value_list_append_value (&list, &value); gst_value_array_append_value (&array, &value);
g_value_unset (&value); g_value_unset (&value);
g_value_init (&value, GST_TYPE_BUFFER); g_value_init (&value, GST_TYPE_BUFFER);
g_value_set_boxed (&value, buf3); g_value_set_boxed (&value, buf3);
gst_value_list_append_value (&list, &value); gst_value_array_append_value (&array, &value);
gst_structure_set_value (structure, "streamheader", &list); gst_structure_set_value (structure, "streamheader", &array);
g_value_unset (&value); g_value_unset (&value);
g_value_unset (&list); g_value_unset (&array);
} }
static GstFlowReturn static GstFlowReturn