+2005-11-21 Tim-Philipp Müller <tim at centricular dot net>
+
+ * ext/cairo/gsttextoverlay.c: (gst_text_overlay_finalize),
+ (gst_text_overlay_init), (gst_text_overlay_text_pad_linked),
+ (gst_text_overlay_text_pad_unlinked), (gst_text_overlay_pop_video),
+ (gst_text_overlay_pop_text), (gst_text_overlay_collected),
+ (gst_text_overlay_change_state):
+ * gst/matroska/matroska-mux.c: (gst_matroska_mux_init),
+ (gst_matroska_mux_reset), (gst_matroska_mux_request_new_pad),
+ (gst_matroska_mux_best_pad), (gst_matroska_mux_change_state):
+ * gst/smpte/gstsmpte.c: (gst_smpte_init), (gst_smpte_collected):
+ * gst/videomixer/videomixer.c: (gst_videomixer_init),
+ (gst_videomixer_request_new_pad), (gst_videomixer_fill_queues),
+ (gst_videomixer_change_state):
+ Fix for collect pads API change. Also fix textoverlay state
+ change function.
+
2005-11-20 Julien MOUTTE <julien@moutte.net>
* gst/matroska/matroska-mux.c: (gst_matroska_mux_start): Replace
{
GstTextOverlay *overlay = GST_TEXT_OVERLAY (object);
- gst_collectpads_stop (overlay->collect);
+ gst_collect_pads_stop (overlay->collect);
gst_object_unref (overlay->collect);
g_free (overlay->text_fill_image);
overlay->framerate = 0.0;
- overlay->collect = gst_collectpads_new ();
+ overlay->collect = gst_collect_pads_new ();
- gst_collectpads_set_function (overlay->collect,
+ gst_collect_pads_set_function (overlay->collect,
GST_DEBUG_FUNCPTR (gst_text_overlay_collected), overlay);
- overlay->video_collect_data = gst_collectpads_add_pad (overlay->collect,
+ overlay->video_collect_data = gst_collect_pads_add_pad (overlay->collect,
overlay->video_sinkpad, sizeof (GstCollectData));
/* text pad will be added when it is linked */
GST_DEBUG_OBJECT (overlay, "Text pad linked");
if (overlay->text_collect_data == NULL) {
- overlay->text_collect_data = gst_collectpads_add_pad (overlay->collect,
+ overlay->text_collect_data = gst_collect_pads_add_pad (overlay->collect,
overlay->text_sinkpad, sizeof (GstCollectData));
}
GST_DEBUG_OBJECT (overlay, "Text pad unlinked");
if (overlay->text_collect_data) {
- gst_collectpads_remove_pad (overlay->collect, overlay->text_sinkpad);
+ gst_collect_pads_remove_pad (overlay->collect, overlay->text_sinkpad);
overlay->text_collect_data = NULL;
}
{
GstBuffer *buf;
- buf = gst_collectpads_pop (overlay->collect, overlay->video_collect_data);
+ buf = gst_collect_pads_pop (overlay->collect, overlay->video_collect_data);
g_return_if_fail (buf != NULL);
gst_buffer_unref (buf);
}
GstBuffer *buf;
if (overlay->text_collect_data) {
- buf = gst_collectpads_pop (overlay->collect, overlay->text_collect_data);
+ buf = gst_collect_pads_pop (overlay->collect, overlay->text_collect_data);
g_return_if_fail (buf != NULL);
gst_buffer_unref (buf);
}
GST_DEBUG ("Collecting");
- video_frame = gst_collectpads_peek (overlay->collect,
+ video_frame = gst_collect_pads_peek (overlay->collect,
overlay->video_collect_data);
/* send EOS if video stream EOSed regardless of text stream */
if (video_frame == NULL) {
GST_DEBUG ("Video stream at EOS");
if (overlay->text_collect_data) {
- text_buf = gst_collectpads_pop (overlay->collect,
+ text_buf = gst_collect_pads_pop (overlay->collect,
overlay->text_collect_data);
}
gst_pad_push_event (overlay->srcpad, gst_event_new_eos ());
goto done;
}
- text_buf = gst_collectpads_peek (overlay->collect,
+ text_buf = gst_collect_pads_peek (overlay->collect,
overlay->text_collect_data);
/* just push the video frame if the text stream has EOSed */
switch (transition) {
case GST_STATE_CHANGE_READY_TO_PAUSED:
- gst_collectpads_start (overlay->collect);
+ gst_collect_pads_start (overlay->collect);
+ break;
+ case GST_STATE_CHANGE_PAUSED_TO_READY:
+ /* need to unblock the collectpads before calling the
+ * parent change_state so that streaming can finish */
+ gst_collect_pads_stop (overlay->collect);
break;
default:
break;
return ret;
switch (transition) {
- case GST_STATE_CHANGE_PAUSED_TO_READY:
- gst_collectpads_stop (overlay->collect);
- break;
default:
break;
}
gst_pad_set_event_function (mux->srcpad, gst_matroska_mux_handle_src_event);
gst_element_add_pad (GST_ELEMENT (mux), mux->srcpad);
- mux->collect = gst_collectpads_new ();
- gst_collectpads_set_function (mux->collect,
+ mux->collect = gst_collect_pads_new ();
+ gst_collect_pads_set_function (mux->collect,
(GstCollectPadsFunction) gst_matroska_mux_collected, mux);
mux->ebml_write = gst_ebml_write_new (mux->srcpad);
}
/* remove from collectpads */
- gst_collectpads_remove_pad (mux->collect, thepad);
+ gst_collect_pads_remove_pad (mux->collect, thepad);
}
mux->num_streams = 0;
mux->num_a_streams = 0;
newpad = gst_pad_new_from_template (templ, name);
g_free (name);
collect_pad = (GstMatroskaPad *)
- gst_collectpads_add_pad (mux->collect, newpad, sizeof (GstMatroskaPad));
+ gst_collect_pads_add_pad (mux->collect, newpad, sizeof (GstMatroskaPad));
context->flags = GST_MATROSKA_TRACK_ENABLED | GST_MATROSKA_TRACK_DEFAULT;
collect_pad->track = context;
collect_pad->buffer = NULL;
collect_pad = (GstMatroskaPad *) collected->data;
/* fetch a new buffer if needed */
if (collect_pad->buffer == NULL) {
- collect_pad->buffer = gst_collectpads_pop (mux->collect,
+ collect_pad->buffer = gst_collect_pads_pop (mux->collect,
(GstCollectData *) collect_pad);
}
case GST_STATE_CHANGE_NULL_TO_READY:
break;
case GST_STATE_CHANGE_READY_TO_PAUSED:
- gst_collectpads_start (mux->collect);
+ gst_collect_pads_start (mux->collect);
break;
case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
break;
case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
break;
case GST_STATE_CHANGE_PAUSED_TO_READY:
- gst_collectpads_stop (mux->collect);
+ gst_collect_pads_stop (mux->collect);
gst_matroska_mux_reset (GST_ELEMENT (mux));
break;
case GST_STATE_CHANGE_READY_TO_NULL:
(&gst_smpte_src_template), "src");
gst_element_add_pad (GST_ELEMENT (smpte), smpte->srcpad);
- smpte->collect = gst_collectpads_new ();
- gst_collectpads_set_function (smpte->collect,
+ smpte->collect = gst_collect_pads_new ();
+ gst_collect_pads_set_function (smpte->collect,
(GstCollectPadsFunction) gst_smpte_collected, smpte);
- gst_collectpads_start (smpte->collect);
+ gst_collect_pads_start (smpte->collect);
- gst_collectpads_add_pad (smpte->collect, smpte->sinkpad1,
+ gst_collect_pads_add_pad (smpte->collect, smpte->sinkpad1,
sizeof (GstCollectData));
- gst_collectpads_add_pad (smpte->collect, smpte->sinkpad2,
+ gst_collect_pads_add_pad (smpte->collect, smpte->sinkpad2,
sizeof (GstCollectData));
smpte->width = 320;
data = (GstCollectData *) collected->data;
if (data->pad == smpte->sinkpad1)
- in1 = gst_collectpads_pop (pads, data);
+ in1 = gst_collect_pads_pop (pads, data);
else if (data->pad == smpte->sinkpad2)
- in2 = gst_collectpads_pop (pads, data);
+ in2 = gst_collect_pads_pop (pads, data);
}
if (in1 == NULL) {
gst_pad_set_getcaps_function (GST_PAD (mix->srcpad), gst_videomixer_getcaps);
gst_element_add_pad (GST_ELEMENT (mix), mix->srcpad);
- mix->collect = gst_collectpads_new ();
+ mix->collect = gst_collect_pads_new ();
mix->background = DEFAULT_BACKGROUND;
mix->in_width = 0;
mix->in_height = 0;
mix->out_width = 0;
mix->out_height = 0;
- gst_collectpads_set_function (mix->collect,
+ gst_collect_pads_set_function (mix->collect,
(GstCollectPadsFunction) gst_videomixer_collected, mix);
}
mixpad->alpha = DEFAULT_PAD_ALPHA;
mixcol = (GstVideoMixerCollect *)
- gst_collectpads_add_pad (mix->collect, GST_PAD (mixpad),
+ gst_collect_pads_add_pad (mix->collect, GST_PAD (mixpad),
sizeof (GstVideoMixerCollect));
/* Keep track of eachother */
GST_LOG ("we need a new buffer");
- buf = gst_collectpads_pop (mix->collect, data);
+ buf = gst_collect_pads_pop (mix->collect, data);
if (buf) {
guint64 duration;
switch (transition) {
case GST_STATE_CHANGE_READY_TO_PAUSED:
GST_LOG ("starting collectpads");
- gst_collectpads_start (mix->collect);
+ gst_collect_pads_start (mix->collect);
break;
case GST_STATE_CHANGE_PAUSED_TO_READY:
GST_LOG ("stopping collectpads");
- gst_collectpads_stop (mix->collect);
+ gst_collect_pads_stop (mix->collect);
break;
default:
break;