+2005-01-18 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
+
+ * gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
+ (gst_qtdemux_loop_header), (gst_qtdemux_handle_esds):
+ More memory leak fixes (#149162).
+
2005-01-18 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
break;
case GST_STATE_PLAYING_TO_PAUSED:
break;
- case GST_STATE_PAUSED_TO_READY:
+ case GST_STATE_PAUSED_TO_READY:{
+ gint n;
+
qtdemux->last_ts = GST_CLOCK_TIME_NONE;
qtdemux->need_discont = FALSE;
qtdemux->need_flush = FALSE;
gst_tag_list_free (qtdemux->tag_list);
qtdemux->tag_list = NULL;
}
+ for (n = 0; n < qtdemux->n_streams; n++) {
+ gst_element_remove_pad (element, qtdemux->streams[n]->pad);
+ g_free (qtdemux->streams[n]->samples);
+ gst_caps_free (qtdemux->streams[n]->caps);
+ g_free (qtdemux->streams[n]);
+ }
+ qtdemux->n_streams = 0;
break;
+ }
case GST_STATE_READY_TO_NULL:
break;
default:
qtdemux_node_dump (qtdemux, qtdemux->moov_node);
}
qtdemux_parse_tree (qtdemux);
+ g_node_destroy (qtdemux->moov_node);
+ gst_buffer_unref (moov);
+ qtdemux->moov_node = NULL;
qtdemux->state = QTDEMUX_STATE_MOVIE;
break;
}
gst_caps_set_simple (stream->caps, "codec_data", GST_TYPE_BUFFER,
buffer, NULL);
+ gst_buffer_unref (buffer);
}
}