GNOME Bugzilla – Bug 465146
Add more complete negotiation to gstrtpbasepayload
Last modified: 2008-05-02 12:39:20 UTC
I'm attaching a patch that improves the _set_outcaps() function of the base rtp payloader class to be able to perform negotiation of the type "src ! pay ! application/x-rtp, payload=100 ! sink". I'm also attaching a patch against gstrtpilbcpay in good to do the same, which also implement a getcaps() function.
Created attachment 93388 [details] [review] Add proper caps nego to the base payloader class
Created attachment 93389 [details] [review] Add _getcaps function to rtpilbcpay for upstream nego
Created attachment 93405 [details] [review] Much better _getcaps function for rtpilbcpay
Created attachment 93447 [details] [review] Improved patch to add proper get_caps function to base rtp payloader
Created attachment 93448 [details] [review] Even more improved patch for caps nego for rtpilbcpay
Commited something more clever to -base: * gst-libs/gst/rtp/gstbasertppayload.c: (gst_basertppayload_set_outcaps): * gst-libs/gst/rtp/gstbasertppayload.h: Improve caps negotiation so that downstream elements can confiure certain RTP properties by fixing them on the caps. See #465146. Add docs. Please see if it also works.
Created attachment 93581 [details] [review] Add getcaps vfunc to basertppay The first part works, as we discussed, here is a patch that add a getcaps vfunc to the basertppayload class.
Created attachment 93582 [details] [review] rtpilbcpay patch that uses the vfunc is the base class
Created attachment 93601 [details] [review] caps based configuration for speexenc/rtpspeexpay I've done the same thing with speex so we want have a testable PC implementation of the whole concept (and it works with farsight).
Created attachment 96731 [details] [review] slighthly fixed patch for speexenc (speexpay patch included unchanged) Oops, seems like ANY codecs can be marked with a simple flags... lets just ignore them
Can we get the speex/ilbc patches applied too? Speex particularly since its the best free voice coder.
Patch by: Olivier Crete <tester at tester dot ca> * gst/rtp/gstrtpilbcpay.c: (gst_rtpilbcpay_class_init), (gst_rtpilbcpay_sink_setcaps), (gst_rtpilbcpay_sink_getcaps): Add negotiation for the ILBC mode. See #465146.
Patch by: Olivier Crete <tester at tester dot ca> * gst/rtp/gstrtpspeexpay.c: (gst_rtp_speex_pay_class_init), (gst_rtp_speex_pay_getcaps): Add negotiation for the speec channels and rate. See #465146.
Patch by: Olivier Crete <tester at tester dot ca> * ext/speex/gstspeexenc.c: (gst_speex_enc_sink_getcaps), (gst_speex_enc_init), (gst_speex_enc_chain): Add negotiation for the speex channels and rate. Fixes #465146.