mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-11 10:56:38 +00:00
oggparse: fix list iteration code
Not that it really matters, but let's fix it before someone notices and makes fun of us.
This commit is contained in:
parent
03ea1bea4e
commit
5aa02968c9
1 changed files with 25 additions and 31 deletions
|
@ -572,12 +572,11 @@ gst_ogg_parse_chain (GstPad * pad, GstBuffer * buffer)
|
||||||
|
|
||||||
for (l = ogg->oggstreams; l != NULL; l = l->next) {
|
for (l = ogg->oggstreams; l != NULL; l = l->next) {
|
||||||
GstOggStream *stream = (GstOggStream *) l->data;
|
GstOggStream *stream = (GstOggStream *) l->data;
|
||||||
int j;
|
GList *j;
|
||||||
|
|
||||||
/* FIXME: list iteration */
|
/* already appended the first header, now do headers 2-N */
|
||||||
for (j = 1; j < g_list_length (stream->headers); j++) {
|
for (j = stream->headers->next; j != NULL; j = j->next) {
|
||||||
gst_ogg_parse_append_header (&array,
|
gst_ogg_parse_append_header (&array, GST_BUFFER (j->data));
|
||||||
GST_BUFFER (g_list_nth_data (stream->headers, j)));
|
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -613,12 +612,11 @@ gst_ogg_parse_chain (GstPad * pad, GstBuffer * buffer)
|
||||||
}
|
}
|
||||||
for (l = ogg->oggstreams; l != NULL; l = l->next) {
|
for (l = ogg->oggstreams; l != NULL; l = l->next) {
|
||||||
GstOggStream *stream = (GstOggStream *) l->data;
|
GstOggStream *stream = (GstOggStream *) l->data;
|
||||||
int j;
|
GList *j;
|
||||||
|
|
||||||
/* FIXME: list iteration */
|
/* pushed the first one for each stream already, now do 2-N */
|
||||||
for (j = 1; j < g_list_length (stream->headers); j++) {
|
for (j = stream->headers->next; j != NULL; j = j->next) {
|
||||||
GstBuffer *buf =
|
GstBuffer *buf = GST_BUFFER (j->data);
|
||||||
GST_BUFFER (g_list_nth_data (stream->headers, j));
|
|
||||||
|
|
||||||
buf = gst_buffer_make_metadata_writable (buf);
|
buf = gst_buffer_make_metadata_writable (buf);
|
||||||
gst_buffer_set_caps (buf, caps);
|
gst_buffer_set_caps (buf, caps);
|
||||||
|
@ -668,29 +666,25 @@ gst_ogg_parse_chain (GstPad * pad, GstBuffer * buffer)
|
||||||
stream->stored_buffers = g_list_append (stream->stored_buffers,
|
stream->stored_buffers = g_list_append (stream->stored_buffers,
|
||||||
pagebuffer);
|
pagebuffer);
|
||||||
} else {
|
} else {
|
||||||
if (stream->stored_buffers) {
|
while (stream->stored_buffers) {
|
||||||
int j;
|
GstBuffer *buf = stream->stored_buffers->data;
|
||||||
|
|
||||||
/* FIXME: list iteration */
|
buf = gst_buffer_make_metadata_writable (buf);
|
||||||
for (j = 0; j < g_list_length (stream->stored_buffers); j++) {
|
gst_buffer_set_caps (buf, ogg->caps);
|
||||||
GstBuffer *buf =
|
GST_BUFFER_TIMESTAMP (buf) = buffertimestamp;
|
||||||
GST_BUFFER (g_list_nth_data (stream->stored_buffers, j));
|
if (!keyframe) {
|
||||||
|
GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT);
|
||||||
buf = gst_buffer_make_metadata_writable (buf);
|
} else {
|
||||||
gst_buffer_set_caps (buf, ogg->caps);
|
keyframe = FALSE;
|
||||||
GST_BUFFER_TIMESTAMP (buf) = buffertimestamp;
|
|
||||||
if (!keyframe) {
|
|
||||||
GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT);
|
|
||||||
} else {
|
|
||||||
keyframe = FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
result = gst_pad_push (ogg->srcpad, buf);
|
|
||||||
if (result != GST_FLOW_OK)
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
g_list_free (stream->stored_buffers);
|
|
||||||
stream->stored_buffers = NULL;
|
result = gst_pad_push (ogg->srcpad, buf);
|
||||||
|
if (result != GST_FLOW_OK)
|
||||||
|
return result;
|
||||||
|
|
||||||
|
stream->stored_buffers =
|
||||||
|
g_list_delete_link (stream->stored_buffers,
|
||||||
|
stream->stored_buffers);
|
||||||
}
|
}
|
||||||
|
|
||||||
pagebuffer = gst_buffer_make_metadata_writable (pagebuffer);
|
pagebuffer = gst_buffer_make_metadata_writable (pagebuffer);
|
||||||
|
|
Loading…
Reference in a new issue