Hi,
here is a patch for handling ghostpad creation differently (unref of
the internal pad). Regards.
___________________________________________________________________________
Découvrez une nouvelle façon d'obtenir des réponses à toutes vos questions !
Profitez des connaissances, des opinions et des expériences des internautes sur
Yahoo! Questions/Réponses
http://fr.answers.yahoo.com
--- gstrtpbin.c.05062007 2007-06-01 16:11:08.000000000 +0200
+++ gstrtpbin.c 2007-06-05 14:09:11.765663232 +0200
@@ -604,16 +604,20 @@ gst_rtp_bin_setup_elements (GstRTPBin *
/* Let's just ghost pad rtcpsink on rtpbin */
GstPad *newpad1 = NULL;
GstPad *newpad2 = NULL;
- newpad1 = gst_ghost_pad_new ("rtcpsink",
- gst_element_get_pad (rtp_bin->rtprecv, "rtcpsink"));
+ GstPad *tmppad = NULL;
+
+ tmppad = gst_element_get_pad (rtp_bin->rtprecv, "rtcpsink");
+ newpad1 = gst_ghost_pad_new ("rtcpsink", tmppad );
+ gst_object_unref (tmppad);
if (!gst_element_add_pad (GST_ELEMENT (rtp_bin), newpad1)) {
gst_object_unref (newpad1);
GST_DEBUG ("Could not setup rtcpsink ghost pad");
return FALSE;
}
- newpad2 = gst_ghost_pad_new ("rtcpsrc",
- gst_element_get_pad (rtp_bin->rtpsend, "rtcpsrc"));
+ tmppad = gst_element_get_pad (rtp_bin->rtpsend, "rtcpsrc");
+ newpad2 = gst_ghost_pad_new ("rtcpsrc", tmppad);
+ gst_object_unref (tmppad);
if (!gst_element_add_pad (GST_ELEMENT (rtp_bin), newpad2)) {
gst_object_unref (newpad2);
@@ -839,9 +843,12 @@ gst_rtp_bin_setup_rtpsend_pads(GstRTPBin
GST_DEBUG ("Using bypass_udp to create ghostpads for rtpsend");
/* Let's just ghost pad rtpsrc on rtpbin */
GstPad *bypass_pad = NULL;
- bypass_pad = gst_ghost_pad_new ("rtpsrc",
- gst_element_get_pad (rtp_bin->rtpsend, "rtpsrc"));
+ GstPad *tmppad = NULL;
+ tmppad = gst_element_get_pad (rtp_bin->rtpsend, "rtpsrc");
+ bypass_pad = gst_ghost_pad_new ("rtpsrc", tmppad);
+ gst_object_unref (tmppad);
+
gst_pad_set_active (bypass_pad, TRUE);
if (!gst_element_add_pad (GST_ELEMENT (rtp_bin), bypass_pad)) {
@@ -857,9 +864,12 @@ static GstPad *
gst_rtp_bin_setup_rtprecv_pads(GstRTPBin * rtp_bin)
{
GstPad *newpad = NULL;
- newpad = gst_ghost_pad_new ("src",
- gst_element_get_pad (rtp_bin->jbuf, "src"));
-
+ GstPad *tmppad = NULL;
+
+ tmppad = gst_element_get_pad (rtp_bin->jbuf, "src");
+ newpad = gst_ghost_pad_new ("src",tmppad);
+ gst_object_unref (tmppad);
+
gst_pad_set_active (newpad, TRUE);
if (!gst_element_add_pad (GST_ELEMENT (rtp_bin), newpad)) {
@@ -872,8 +882,11 @@ gst_rtp_bin_setup_rtprecv_pads(GstRTPBin
GST_DEBUG ("Using bypass_udp to create ghostpads on rtprecv");
/* Let's just ghost pad rtpsink on rtpbin */
GstPad *newpad = NULL;
- newpad = gst_ghost_pad_new ("rtpsink",
- gst_element_get_pad (rtp_bin->rtprecv, "rtpsink"));
+ GstPad *tmppad = NULL;
+
+ tmppad = gst_element_get_pad (rtp_bin->rtprecv, "rtpsink");
+ newpad = gst_ghost_pad_new ("rtpsink",tmppad);
+ gst_object_unref (tmppad);
gst_pad_set_active (newpad, TRUE);
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Farsight-devel mailing list
Farsight-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/farsight-devel