gst-libs/gst/play/gstplay.c: When analyzing the pads of an element the bin is mostly...
authorJulien Moutte <julien@moutte.net>
Mon, 12 Jan 2004 16:48:48 +0000 (16:48 +0000)
committerJulien Moutte <julien@moutte.net>
Mon, 12 Jan 2004 16:48:48 +0000 (16:48 +0000)
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.

ChangeLog
gst-libs/gst/play/gstplay.c
gst-libs/gst/play/play.c

index add26c2..63d900d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 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):
        * sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain): Fixing the
        direct put buffers detection. I prefer checking GST_BUFFER_PRIVATE
index bcc5c4d..dee3f8e 100644 (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)
index bcc5c4d..dee3f8e 100644 (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)