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 <julien@moutte.net>

* 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.
This commit is contained in:
Julien Moutte 2004-01-12 16:48:48 +00:00
parent 39717cf5c9
commit c3c909355c
3 changed files with 18 additions and 6 deletions

View file

@ -1,3 +1,11 @@
2004-01-12 Julien MOUTTE <julien@moutte.net>
* 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 <julien@moutte.net>
* sys/ximage/ximagesink.c: (gst_ximagesink_chain):

View file

@ -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)

View file

@ -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)