mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 20:21:24 +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>
|
||||
|
||||
* gst/cutter/gstcutter.c: (gst_cutter_chain),
|
||||
|
|
|
@ -170,7 +170,7 @@ gst_auto_audio_sink_find_best (GstAutoAudioSink * sink)
|
|||
if (ss) {
|
||||
gboolean r;
|
||||
|
||||
g_object_get (G_OBJECT (el), "soundserver-running", &r, NULL);
|
||||
g_object_get (el, "soundserver-running", &r, NULL);
|
||||
if (r) {
|
||||
GST_DEBUG_OBJECT (sink, "%s - soundserver is running",
|
||||
GST_PLUGIN_FEATURE (f)->name);
|
||||
|
@ -192,7 +192,8 @@ gst_auto_audio_sink_find_best (GstAutoAudioSink * sink)
|
|||
/* collect all error messages */
|
||||
while ((message = gst_bus_pop (bus))) {
|
||||
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);
|
||||
} else {
|
||||
gst_message_unref (message);
|
||||
|
@ -203,7 +204,7 @@ gst_auto_audio_sink_find_best (GstAutoAudioSink * sink)
|
|||
}
|
||||
|
||||
next:
|
||||
gst_object_unref (GST_OBJECT (el));
|
||||
gst_object_unref (el);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -228,7 +229,7 @@ done:
|
|||
}
|
||||
}
|
||||
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_free (errors);
|
||||
|
||||
|
@ -252,7 +253,9 @@ gst_auto_audio_sink_detect (GstAutoAudioSink * sink)
|
|||
if (!(esink = gst_auto_audio_sink_find_best (sink))) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sink->kid = esink;
|
||||
gst_element_set_state (sink->kid, GST_STATE (sink));
|
||||
gst_bin_add (GST_BIN (sink), esink);
|
||||
|
||||
/* attach ghost pad */
|
||||
|
|
|
@ -134,14 +134,15 @@ gst_auto_video_sink_compare_ranks (GstPluginFeature * f1, GstPluginFeature * f2)
|
|||
static GstElement *
|
||||
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 (),
|
||||
(GstPluginFeatureFilter) gst_auto_video_sink_factory_filter, FALSE, sink);
|
||||
list = g_list_sort (list, (GCompareFunc) gst_auto_video_sink_compare_ranks);
|
||||
|
||||
for (; list != NULL; list = list->next) {
|
||||
GstElementFactory *f = GST_ELEMENT_FACTORY (list->data);
|
||||
for (walk = list; walk != NULL; walk = walk->next) {
|
||||
GstElementFactory *f = GST_ELEMENT_FACTORY (walk->data);
|
||||
GstElement *el;
|
||||
|
||||
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);
|
||||
if (ret == GST_STATE_CHANGE_SUCCESS) {
|
||||
GST_DEBUG_OBJECT (sink, "success");
|
||||
return el;
|
||||
choice = el;
|
||||
goto done;
|
||||
}
|
||||
|
||||
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,
|
||||
"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
|
||||
|
@ -188,6 +193,7 @@ gst_auto_video_sink_detect (GstAutoVideoSink * sink)
|
|||
("Failed to find a supported video sink"));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
sink->kid = esink;
|
||||
gst_bin_add (GST_BIN (sink), esink);
|
||||
|
||||
|
|
Loading…
Reference in a new issue