mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-30 21:51:09 +00:00
gst/autodetect/: Use gst_plugin_feature_list_free() to free feature list and in the case of autovideosink free the li...
Original commit message from CVS: * gst/autodetect/gstautoaudiosink.c: (gst_auto_audio_sink_find_best), (gst_auto_audio_sink_detect): * gst/autodetect/gstautovideosink.c: (gst_auto_video_sink_find_best), (gst_auto_video_sink_detect): Use gst_plugin_feature_list_free() to free feature list and in the case of autovideosink free the list at all. Also miscellaneous cosmetic fixes.
This commit is contained in:
parent
baba27fb18
commit
e8464db22f
3 changed files with 29 additions and 10 deletions
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
||||||
|
2005-11-22 Tim-Philipp Müller <tim at centricular dot net>
|
||||||
|
|
||||||
|
* gst/autodetect/gstautoaudiosink.c:
|
||||||
|
(gst_auto_audio_sink_find_best), (gst_auto_audio_sink_detect):
|
||||||
|
* gst/autodetect/gstautovideosink.c:
|
||||||
|
(gst_auto_video_sink_find_best), (gst_auto_video_sink_detect):
|
||||||
|
Use gst_plugin_feature_list_free() to free feature list and
|
||||||
|
in the case of autovideosink free the list at all. Also
|
||||||
|
miscellaneous cosmetic fixes.
|
||||||
|
|
||||||
2005-11-22 Thomas Vander Stichele <thomas at apestaart dot org>
|
2005-11-22 Thomas Vander Stichele <thomas at apestaart dot org>
|
||||||
|
|
||||||
* gst/cutter/gstcutter.c: (gst_cutter_chain),
|
* gst/cutter/gstcutter.c: (gst_cutter_chain),
|
||||||
|
|
|
@ -170,7 +170,7 @@ gst_auto_audio_sink_find_best (GstAutoAudioSink * sink)
|
||||||
if (ss) {
|
if (ss) {
|
||||||
gboolean r;
|
gboolean r;
|
||||||
|
|
||||||
g_object_get (G_OBJECT (el), "soundserver-running", &r, NULL);
|
g_object_get (el, "soundserver-running", &r, NULL);
|
||||||
if (r) {
|
if (r) {
|
||||||
GST_DEBUG_OBJECT (sink, "%s - soundserver is running",
|
GST_DEBUG_OBJECT (sink, "%s - soundserver is running",
|
||||||
GST_PLUGIN_FEATURE (f)->name);
|
GST_PLUGIN_FEATURE (f)->name);
|
||||||
|
@ -192,7 +192,8 @@ gst_auto_audio_sink_find_best (GstAutoAudioSink * sink)
|
||||||
/* collect all error messages */
|
/* collect all error messages */
|
||||||
while ((message = gst_bus_pop (bus))) {
|
while ((message = gst_bus_pop (bus))) {
|
||||||
if (GST_MESSAGE_TYPE (message) == GST_MESSAGE_ERROR) {
|
if (GST_MESSAGE_TYPE (message) == GST_MESSAGE_ERROR) {
|
||||||
GST_DEBUG_OBJECT (sink, "appending error message %p", message);
|
GST_DEBUG_OBJECT (sink, "appending error message %"
|
||||||
|
GST_PTR_FORMAT, message);
|
||||||
errors = g_slist_append (errors, message);
|
errors = g_slist_append (errors, message);
|
||||||
} else {
|
} else {
|
||||||
gst_message_unref (message);
|
gst_message_unref (message);
|
||||||
|
@ -203,7 +204,7 @@ gst_auto_audio_sink_find_best (GstAutoAudioSink * sink)
|
||||||
}
|
}
|
||||||
|
|
||||||
next:
|
next:
|
||||||
gst_object_unref (GST_OBJECT (el));
|
gst_object_unref (el);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -228,7 +229,7 @@ done:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gst_object_unref (bus);
|
gst_object_unref (bus);
|
||||||
g_list_free (list);
|
gst_plugin_feature_list_free (list);
|
||||||
g_slist_foreach (errors, (GFunc) gst_mini_object_unref, NULL);
|
g_slist_foreach (errors, (GFunc) gst_mini_object_unref, NULL);
|
||||||
g_slist_free (errors);
|
g_slist_free (errors);
|
||||||
|
|
||||||
|
@ -252,7 +253,9 @@ gst_auto_audio_sink_detect (GstAutoAudioSink * sink)
|
||||||
if (!(esink = gst_auto_audio_sink_find_best (sink))) {
|
if (!(esink = gst_auto_audio_sink_find_best (sink))) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
sink->kid = esink;
|
sink->kid = esink;
|
||||||
|
gst_element_set_state (sink->kid, GST_STATE (sink));
|
||||||
gst_bin_add (GST_BIN (sink), esink);
|
gst_bin_add (GST_BIN (sink), esink);
|
||||||
|
|
||||||
/* attach ghost pad */
|
/* attach ghost pad */
|
||||||
|
|
|
@ -134,14 +134,15 @@ gst_auto_video_sink_compare_ranks (GstPluginFeature * f1, GstPluginFeature * f2)
|
||||||
static GstElement *
|
static GstElement *
|
||||||
gst_auto_video_sink_find_best (GstAutoVideoSink * sink)
|
gst_auto_video_sink_find_best (GstAutoVideoSink * sink)
|
||||||
{
|
{
|
||||||
GList *list;
|
GstElement *choice = NULL;
|
||||||
|
GList *list, *walk;
|
||||||
|
|
||||||
list = gst_registry_feature_filter (gst_registry_get_default (),
|
list = gst_registry_feature_filter (gst_registry_get_default (),
|
||||||
(GstPluginFeatureFilter) gst_auto_video_sink_factory_filter, FALSE, sink);
|
(GstPluginFeatureFilter) gst_auto_video_sink_factory_filter, FALSE, sink);
|
||||||
list = g_list_sort (list, (GCompareFunc) gst_auto_video_sink_compare_ranks);
|
list = g_list_sort (list, (GCompareFunc) gst_auto_video_sink_compare_ranks);
|
||||||
|
|
||||||
for (; list != NULL; list = list->next) {
|
for (walk = list; walk != NULL; walk = walk->next) {
|
||||||
GstElementFactory *f = GST_ELEMENT_FACTORY (list->data);
|
GstElementFactory *f = GST_ELEMENT_FACTORY (walk->data);
|
||||||
GstElement *el;
|
GstElement *el;
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (sink, "Trying %s", GST_PLUGIN_FEATURE (f)->name);
|
GST_DEBUG_OBJECT (sink, "Trying %s", GST_PLUGIN_FEATURE (f)->name);
|
||||||
|
@ -153,7 +154,8 @@ gst_auto_video_sink_find_best (GstAutoVideoSink * sink)
|
||||||
ret = gst_element_set_state (el, GST_STATE_READY);
|
ret = gst_element_set_state (el, GST_STATE_READY);
|
||||||
if (ret == GST_STATE_CHANGE_SUCCESS) {
|
if (ret == GST_STATE_CHANGE_SUCCESS) {
|
||||||
GST_DEBUG_OBJECT (sink, "success");
|
GST_DEBUG_OBJECT (sink, "success");
|
||||||
return el;
|
choice = el;
|
||||||
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_WARNING_OBJECT (sink, "Couldn't set READY: %d", ret);
|
GST_WARNING_OBJECT (sink, "Couldn't set READY: %d", ret);
|
||||||
|
@ -162,11 +164,14 @@ gst_auto_video_sink_find_best (GstAutoVideoSink * sink)
|
||||||
GST_WARNING_OBJECT (sink,
|
GST_WARNING_OBJECT (sink,
|
||||||
"Couldn't set element to NULL prior to disposal.");
|
"Couldn't set element to NULL prior to disposal.");
|
||||||
|
|
||||||
gst_object_unref (GST_OBJECT (el));
|
gst_object_unref (el);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return NULL;
|
done:
|
||||||
|
gst_plugin_feature_list_free (list);
|
||||||
|
|
||||||
|
return choice;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
@ -188,6 +193,7 @@ gst_auto_video_sink_detect (GstAutoVideoSink * sink)
|
||||||
("Failed to find a supported video sink"));
|
("Failed to find a supported video sink"));
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
sink->kid = esink;
|
sink->kid = esink;
|
||||||
gst_bin_add (GST_BIN (sink), esink);
|
gst_bin_add (GST_BIN (sink), esink);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue