After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 561752 - GstRtpBin implement Release pad functions
GstRtpBin implement Release pad functions
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal enhancement
: 0.10.14
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-11-21 01:40 UTC by Olivier Crête
Modified: 2009-06-29 16:50 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
patch to fix the first step.. (1.69 KB, patch)
2008-11-21 01:41 UTC, Olivier Crête
committed Details | Review
rtpbin: Remove src pad when it is unlinked from the pt demuxer (1.74 KB, patch)
2009-05-13 22:59 UTC, Olivier Crête
rejected Details | Review
rtpbin: Implement releasing of rtcp src pad (1.04 KB, patch)
2009-05-13 22:59 UTC, Olivier Crête
committed Details | Review
rtpbin: Implement releasing of rtp send pads (2.60 KB, patch)
2009-05-13 22:59 UTC, Olivier Crête
committed Details | Review
rtpbin: Implement releasing of the recv rtcp request pad (1.19 KB, patch)
2009-05-13 22:59 UTC, Olivier Crête
committed Details | Review
rtpbin: Implement relasing of the rtp recv pad (1.35 KB, patch)
2009-05-13 22:59 UTC, Olivier Crête
committed Details | Review
rtpbin: Keep jb signals handler (1.93 KB, patch)
2009-05-13 22:59 UTC, Olivier Crête
committed Details | Review
rtpbin: Implement releasing the streams (3.25 KB, patch)
2009-05-13 22:59 UTC, Olivier Crête
none Details | Review
rtpbin: Free session if all request pads have been released (1.33 KB, patch)
2009-05-13 22:59 UTC, Olivier Crête
committed Details | Review
rtpbin: Remove src pad when it is unlinked from the pt demuxer (1.76 KB, patch)
2009-06-26 22:10 UTC, Olivier Crête
none Details | Review

Description Olivier Crête 2008-11-21 01:40:31 UTC
The release_pad function tries to compare its pad .. but what it stores is the pad it requested from the gstrtpsession (ie.. the ghost pad's target).. patch attached
Comment 1 Olivier Crête 2008-11-21 01:41:26 UTC
Created attachment 123146 [details] [review]
patch to fix the first step..

Also, it would be nice if the releasing was actually implemented, are you planning to do it in the short term, or should I try to do it ?
Comment 2 Wim Taymans 2008-11-22 14:20:07 UTC
        Patch by: Olivier Crete <tester at tester dot ca>

        * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_release_pad):
        Release the right pads on rtpbin. Fixes #561752.
Comment 3 Olivier Crête 2009-05-13 22:59:00 UTC
Created attachment 134612 [details] [review]
rtpbin: Remove src pad when it is unlinked from the pt demuxer

Clean up the rtpbin ghost pad when its parent on the PT demuxer is unlinked.
Comment 4 Olivier Crête 2009-05-13 22:59:02 UTC
Created attachment 134613 [details] [review]
rtpbin: Implement releasing of rtcp src pad
Comment 5 Olivier Crête 2009-05-13 22:59:04 UTC
Created attachment 134614 [details] [review]
rtpbin: Implement releasing of rtp send pads
Comment 6 Olivier Crête 2009-05-13 22:59:06 UTC
Created attachment 134615 [details] [review]
rtpbin: Implement releasing of the recv rtcp request pad
Comment 7 Olivier Crête 2009-05-13 22:59:08 UTC
Created attachment 134616 [details] [review]
rtpbin: Implement relasing of the rtp recv pad
Comment 8 Olivier Crête 2009-05-13 22:59:10 UTC
Created attachment 134617 [details] [review]
rtpbin: Keep jb signals handler

Keep the signal handlers so they can be disconnected at release time
Comment 9 Olivier Crête 2009-05-13 22:59:12 UTC
Created attachment 134618 [details] [review]
rtpbin: Implement releasing the streams
Comment 10 Olivier Crête 2009-05-13 22:59:14 UTC
Created attachment 134619 [details] [review]
rtpbin: Free session if all request pads have been released
Comment 11 Wim Taymans 2009-05-25 13:51:10 UTC
All (expect unneeded pacth in Comment #3) commited along with some unit tests.
Comment 12 Olivier Crête 2009-06-26 19:49:42 UTC
The patch in comment #3 is needed for the case where you do PLAYING->NULL->PLAYING on a pipeline containing a gstrtpbin. Otherwise it tries to re-add the existing pad (because the sometimes pad from the ptdemux are removed).
Comment 13 Olivier Crête 2009-06-26 22:10:55 UTC
Created attachment 137442 [details] [review]
rtpbin: Remove src pad when it is unlinked from the pt demuxer
Comment 14 Olivier Crête 2009-06-27 00:02:42 UTC
Arg, that last patch is wrong too, taking the shutdown lock seems to deadlock somehow. Anyway, stream->pads should not be needed, they all be removed when the ptdemux is NULLed anyway.
Comment 15 Wim Taymans 2009-06-29 16:50:10 UTC
commit 4bc5e2f61ed93072f3e96933af25b08fd6a2807f
Author: Wim Taymans <wim.taymans@collabora.co.uk>
Date:   Mon Jun 29 18:48:33 2009 +0200

    rtpbin: do better cleanup of the src ghostpads
    
    Connect to the pad-removed signal of the ptdemux elements so that we remove the
    ghostpads for them. Fixes cleanup when going to NULL as well as when releasing
    the sinkpads.
    
    Fixes #561752