GNOME Bugzilla – Bug 537675
rtp vorbis/theora payloader static caps don't specify delivery method
Last modified: 2008-06-13 09:40:10 UTC
the rtp theora payloader only supports the "inline" delivery method, its caps should reflect that, I'm attaching a simple patch.
Created attachment 112507 [details] [review] specify delivery-method=inline in the static caps
Thanks, committed :) 2008-06-11 Sebastian Dröge <slomo@circular-chaos.org> Patch by: Olivier Crete <tester at tester dot ca> * gst/rtp/gstrtptheorapay.c: The Theora RTP payloader only supports the "inline" delievery method so let's declare this on the caps of the static pad template. Fixes bug #537675.
Evil bug reuse.. the same patch should be applied to the vorbis payloader too.. Btw, the vorbis pay/depay don't match the spec (on xiph.org) because the spec does not specify that a delivery method must be specified but says that "configuration" should always be there..
Created attachment 112650 [details] [review] Make the setcaps and static caps reflect reality After a bit more reading.. it seems that both the vorbis and theora depayloaders actually also only work with delivery-method="inline" (ie it doesn't work with any other delivery-method.. Also, the current vorbis RTP payloading draft (on xiph.org) does not talk about delivery-method at all, so it should work only "configuration".. I'm attaching a patch that fixes both. Also, the SDP can include mode than one delivery method.. which is hard to reflect in fixed caps.. so maybe it should just ignore it in the caps.. check if there is a "configuration" or otherwise assume in-band (and lobby to have out-band dropped, because it seems a really stupid idea).
Not quite right, for theoradepay, we have a mandatory deliver-method property but we cannot enforce it in caps because it contains ANY strings so we can't add it. Since we accidentally only support inline, we add only this delivery-method to the caps. For vorbis, the property is optional, so it must not be added to the caps. I removed the check in the setcaps function to make the delivery-method mandatory. I reversed strcmp checks, too. Patch by: Olivier Crete <tester at tester dot ca> * gst/rtp/gstrtptheoradepay.c: (gst_rtp_theora_depay_setcaps): Make the delivery-method mandatory on the caps and only accept inline for now. Reverse strcmp checks for delivery-method. * gst/rtp/gstrtpvorbisdepay.c: (gst_rtp_vorbis_depay_setcaps): Make delivery method optional when parsing caps and note this in the caps. Reverse strcmp checks for delivery-method. * gst/rtp/gstrtpvorbispay.c: Update a comment to note that the delivery-method is optional, Fixes #537675.