From bbf8b3e7230b95b196c6595e51850422bf52cf99 Mon Sep 17 00:00:00 2001 From: Julien Moutte Date: Mon, 12 Jan 2004 16:48:48 +0000 Subject: gst-libs/gst/play/gstplay.c: When analyzing the pads of an element the bin is mostly in READY state so no caps were n... Original commit message from CVS: 2004-01-12 Julien MOUTTE * gst-libs/gst/play/gstplay.c: (gst_play_get_sink_element): When analyzing the pads of an element the bin is mostly in READY state so no caps were negotiated. This helper function needs to work with _get_caps directly then. I was not freeing them though, added that to fix the mem leak. --- ChangeLog | 8 ++++++++ gst-libs/gst/play/gstplay.c | 8 +++++--- gst-libs/gst/play/play.c | 8 +++++--- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index add26c20..63d900d6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2004-01-12 Julien MOUTTE + + * gst-libs/gst/play/gstplay.c: (gst_play_get_sink_element): When + analyzing the pads of an element the bin is mostly in READY state so + no caps were negotiated. This helper function needs to work with + _get_caps directly then. I was not freeing them though, added that to + fix the mem leak. + 2004-01-12 Julien MOUTTE * sys/ximage/ximagesink.c: (gst_ximagesink_chain): diff --git a/gst-libs/gst/play/gstplay.c b/gst-libs/gst/play/gstplay.c index bcc5c4d1..dee3f8ef 100644 --- a/gst-libs/gst/play/gstplay.c +++ b/gst-libs/gst/play/gstplay.c @@ -923,14 +923,14 @@ gst_play_get_sink_element (GstPlay *play, } else { /* If not a src pad checking caps */ - const GstCaps *caps; + GstCaps *caps; GstStructure *structure; gboolean has_video_cap = FALSE; gboolean has_audio_cap = FALSE; - caps = gst_pad_get_negotiated_caps (GST_PAD (pads->data)); + caps = gst_pad_get_caps (GST_PAD (pads->data)); structure = gst_caps_get_structure (caps, 0); - + if (strcmp (gst_structure_get_name (structure), "audio/x-raw-int") == 0) { has_audio_cap = TRUE; @@ -943,6 +943,8 @@ gst_play_get_sink_element (GstPlay *play, has_video_cap = TRUE; } + gst_caps_free (caps); + switch (sink_type) { case GST_PLAY_SINK_TYPE_AUDIO: if (has_audio_cap) diff --git a/gst-libs/gst/play/play.c b/gst-libs/gst/play/play.c index bcc5c4d1..dee3f8ef 100644 --- a/gst-libs/gst/play/play.c +++ b/gst-libs/gst/play/play.c @@ -923,14 +923,14 @@ gst_play_get_sink_element (GstPlay *play, } else { /* If not a src pad checking caps */ - const GstCaps *caps; + GstCaps *caps; GstStructure *structure; gboolean has_video_cap = FALSE; gboolean has_audio_cap = FALSE; - caps = gst_pad_get_negotiated_caps (GST_PAD (pads->data)); + caps = gst_pad_get_caps (GST_PAD (pads->data)); structure = gst_caps_get_structure (caps, 0); - + if (strcmp (gst_structure_get_name (structure), "audio/x-raw-int") == 0) { has_audio_cap = TRUE; @@ -943,6 +943,8 @@ gst_play_get_sink_element (GstPlay *play, has_video_cap = TRUE; } + gst_caps_free (caps); + switch (sink_type) { case GST_PLAY_SINK_TYPE_AUDIO: if (has_audio_cap) -- cgit v1.2.1