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 686547 - rtpopuspay outputs unparseable caps
rtpopuspay outputs unparseable caps
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
0.10.23
Other Linux
: Normal normal
: 1.0.2
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2012-10-20 22:20 UTC by James Harrison
Modified: 2012-10-22 10:12 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description James Harrison 2012-10-20 22:20:25 UTC
Tested on Raspbian (effectively Debian packages, armhf architecture), PyGST w/ 0.10.23.


rtpopuspay yields the following caps: application/x-rtp, media=(string)audio, clock-rate=(int)48000, encoding-name=(string)X-GST-OPUS-DRAFT-SPITTKA-00, caps=(string)"audio/x-opus, multistream=(boolean)false, streamheader=(buffer)< 4f707573486561640102000080bb0000000000, 4f707573546167731e000000456e636f6465642077697468204753747265616d6572204f707573656e630000000001 >", ssrc=(uint)1840561209, payload=(int)96, clock-base=(uint)2761078862, seqnum-base=(uint)617

Upon trying to set up on the receiver by setting caps on the udpsrc, the following warnings and critical assertion failure pop up:

0:00:00.491406610  6606  0x2421a20 WARN                 default gststructure.c:2112:gst_structure_parse_field: failed to parse value caps=(string)"audio/x-opus, multistream=(boolean)false, streamheader=(buffer)< 4f707573486561640102000080bb0000000000, 4f707573546167731e000000456e636f6465642077697468204753747265616d6572204f707573656e630000000001 >", ssrc=(uint)1840561209, payload=(int)96, clock-base=(uint)2761078862, seqnum-base=(uint)617
0:00:00.492531625  6606  0x2421a20 WARN                 default gststructure.c:2293:gst_structure_from_string: Failed to parse field, r=caps=(string)"audio/x-opus, multistream=(boolean)false, streamheader=(buffer)< 4f707573486561640102000080bb0000000000, 4f707573546167731e000000456e636f6465642077697468204753747265616d6572204f707573656e630000000001 >", ssrc=(uint)1840561209, payload=(int)96, clock-base=(uint)2761078862, seqnum-base=(uint)617

(python:6606): GStreamer-CRITICAL **: gst_pad_set_caps: assertion `caps == NULL || gst_caps_is_fixed (caps)' failed
/GstPipeline:rx/GstUDPSrc:udpsrc0.GstPad:src (gst.Pad)
ANY


I'm guessing this is choking on the caps within caps thing which is not standard for GStreamer.

Is this workaroundable (drop inner caps/pass them elsewhere) or is this a bug within the caps parsing code that requires fixing?

This effectively renders 0.10.23 unusable for RTP transit of Opus unless I'm being an idiot and missing something.
Comment 1 Wim Taymans 2012-10-22 10:12:02 UTC
It should not put caps in there:

commit 50140388d2b62d32dd9d0c071e3051ebc5b4083b
Author: Wim Taymans <wim.taymans@collabora.co.uk>
Date:   Mon Oct 22 12:08:41 2012 +0200

    opuspay: remove pointless caps serialization
    
    Remove the caps serialization in the rtp caps. the spec nor the receiver
    does anything with it.
    
    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=686547