mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 16:50:47 +00:00
gst/multifile/gstmultifilesink.c: Add a fixme comment.
Original commit message from CVS: * gst/multifile/gstmultifilesink.c: Add a fixme comment. * plugins/elements/gstoutputselector.c: Fix same leak as in input-selector. * tests/icles/output-selector-test.c: Improve the test.
This commit is contained in:
parent
2495420116
commit
dec9d95edb
2 changed files with 10 additions and 11 deletions
|
@ -25,13 +25,6 @@
|
||||||
* Direct input stream to one out of N output pads.
|
* Direct input stream to one out of N output pads.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* FIXME: By default basesinks require some prerolled data before changing
|
|
||||||
to playing state. Also pipeline with output-selector connected to multiple
|
|
||||||
sink elements won't change to playing until all sink elements have received
|
|
||||||
the preroll data. Currently this can be worked around using live source element
|
|
||||||
and and exporting GST_COMPAT="no-live-preroll".
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#endif
|
#endif
|
||||||
|
@ -212,7 +205,12 @@ gst_output_selector_set_property (GObject * object, guint prop_id,
|
||||||
GstPad *next_pad =
|
GstPad *next_pad =
|
||||||
gst_element_get_static_pad (GST_ELEMENT (sel),
|
gst_element_get_static_pad (GST_ELEMENT (sel),
|
||||||
g_value_get_string (value));
|
g_value_get_string (value));
|
||||||
if (next_pad && (next_pad != sel->active_srcpad)) {
|
if (!next_pad) {
|
||||||
|
GST_WARNING ("pad %s not found, activation failed",
|
||||||
|
g_value_get_string (value));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (next_pad != sel->active_srcpad) {
|
||||||
/* switch to new srcpad in next chain run */
|
/* switch to new srcpad in next chain run */
|
||||||
if (sel->pending_srcpad != NULL) {
|
if (sel->pending_srcpad != NULL) {
|
||||||
GST_INFO ("replacing pending switch");
|
GST_INFO ("replacing pending switch");
|
||||||
|
@ -220,7 +218,8 @@ gst_output_selector_set_property (GObject * object, guint prop_id,
|
||||||
}
|
}
|
||||||
sel->pending_srcpad = next_pad;
|
sel->pending_srcpad = next_pad;
|
||||||
} else {
|
} else {
|
||||||
GST_WARNING ("setting active pad failed");
|
GST_INFO ("pad already active");
|
||||||
|
gst_object_unref (next_pad);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,8 +93,8 @@ main (gint argc, gchar * argv[])
|
||||||
g_object_set (G_OBJECT (src), "is-live", TRUE, NULL);
|
g_object_set (G_OBJECT (src), "is-live", TRUE, NULL);
|
||||||
g_object_set (G_OBJECT (src), "do-timestamp", TRUE, NULL);
|
g_object_set (G_OBJECT (src), "do-timestamp", TRUE, NULL);
|
||||||
g_object_set (G_OBJECT (src), "num-buffers", 500, NULL);
|
g_object_set (G_OBJECT (src), "num-buffers", 500, NULL);
|
||||||
g_object_set (G_OBJECT (sink1), "sync", FALSE, NULL);
|
g_object_set (G_OBJECT (sink1), "sync", FALSE, "async", FALSE, NULL);
|
||||||
g_object_set (G_OBJECT (sink2), "sync", FALSE, NULL);
|
g_object_set (G_OBJECT (sink2), "sync", FALSE, "async", FALSE, NULL);
|
||||||
g_object_set (G_OBJECT (osel), "resend-latest", TRUE, NULL);
|
g_object_set (G_OBJECT (osel), "resend-latest", TRUE, NULL);
|
||||||
|
|
||||||
/* link src ! timeoverlay ! osel */
|
/* link src ! timeoverlay ! osel */
|
||||||
|
|
Loading…
Reference in a new issue