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 734322 - RTP Jitterbuffer shouldn't force clock-rate on the caps
RTP Jitterbuffer shouldn't force clock-rate on the caps
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Linux
: Normal critical
: 1.5.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-08-05 23:03 UTC by Youness Alaoui
Modified: 2014-08-21 22:38 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
jitterbuffer: Allow rtp caps without clock-rate (2.13 KB, patch)
2014-08-08 02:02 UTC, Youness Alaoui
committed Details | Review

Description Youness Alaoui 2014-08-05 23:03:27 UTC
I'm having an issue with the RTP jitterbuffer because it has clock-rate set on the caps, so when rtpssrcdemux tries to send RTP to it with caps "application/x-rtp, ssrc=(uint) xxxxxx", it will fail.
I basically get these debug message :
GST_PADS gstpad.c:2941:gst_pad_query_accept_caps_default:<rtpjitterbuffer0:sink> allowed caps subset application/x-rtp, ssrc=(uint)3781690021, clock-rate=(int)[ 1, 2147483647 ], caps application/x-rtp, ssrc=(uint)3781690021
default gstutils.c:2857:gst_pad_query_accept_caps:<rtpjitterbuffer0:sink> query returned 0
GST_PADS gstpad.c:4845:gst_pad_push_event_unchecked:<rtpssrcdemux0:src_3781690021> sent event 0x7f12d8002a60 to (caps) peerpad <rtpjitterbuffer0:sink>, ret not-negotiated

Since the caps pushed by rtpssrcdemux are not a subset of the caps accepted by rtpjitterbuffer (due to the added clock-rate field), I always get a not-negotiated error.

The jitterbuffer documentation says : 
 * The element needs the clock-rate of the RTP payload in order to estimate the
 * delay. This information is obtained either from the caps on the sink pad or,
 * when no caps are present, from the #GstRtpJitterBuffer::request-pt-map signal.

Unfortunately, the current git version forces the clock-rate on the caps which is not something we can provide. The clock rate shouldn't be specified in the template caps and the GST_EVENT_CAPS event shouldn't fail if it receives caps without the clock-rate.
Comment 1 Youness Alaoui 2014-08-08 02:02:30 UTC
Created attachment 282859 [details] [review]
jitterbuffer: Allow rtp caps without clock-rate

I'm attaching a patch that fixes this issue. It will allow caps without clock-rate but will still try to get the clock rate from the caps then fallback on the request-pt-map signal.
Comment 2 Olivier Crête 2014-08-21 22:38:23 UTC
Pushed

commit a98341397d3522fdc7470c4220775035a2d1d790
Author: Youness Alaoui <kakaroto@kakaroto.homelinux.net>
Date:   Thu Aug 7 21:58:14 2014 -0400

    jitterbuffer: Allow rtp caps without clock-rate
    
    The jitterbuffer shouldn't force clock-rate on its sink pad, this will cause a negotiation issue since rtpssrcdemux doesn't have the cloc
    
    https://bugzilla.gnome.org/show_bug.cgi?id=734322