See also Farsight2ApiProblems
RTP plugin
Short term
Need a way to extract the list of ExtraSend codecs (aka special sources)
- Should the new-active-candidate-pair be emitted one per component or only once all components are connected? What should it report?
- Document the fatal errors vs recoverable errors (and how to recover from the recoverable ones)
Longer term
- Generate document for: (its a major pain because of gtk-doc)
- elements
- transmitters
- Send Receiver-Reports even for streams on which we are not sending. Maybe filter RTCP packets to only send the relevant parts? Add a filter to the stream transmitter that will emit a signal that can modify the buffer is desired.
Implement re-sending the config data (in rtp payloaders) and the GstForceKeyUnit custom event for config-data (Vorbis, Theora, H.264, etc)
- RTP/RTCP multiplexing/demultiplexing (to send both on the same UDP port)
- Comfort noise (write software VAD and CN generator and integrate into farsight)
- Add Echo cancellation
- Try to forward the new-segments in the right places (from the valve at least)
- check if it works with MPV (which encoder/decoder?)
- Pre-encoded data? outside decoder?
- Make changing the codec on the fly reliable (and write unit tests for the non-working cases)
- Document
- That you have to be playing for most stuff to append (like getting stun replies)
- Write a minimal C example
Tests to write
- Two sessions in the same conference
- Packets with invalid payload types
- Errors:
- New stream with invalid participant (invalid... from another type or from
- another conf?)
- New stream with invalid participant (invalid... from another type or from
- Change codec ids while its running...
- New codec with the same PT while its running
- H263-1998 (use h263 or h263+ encoder depending on the properties)
- 3 way negotiation
- success
- failed
- Test codec cache:
- empty
- save
- load
- Test non-rtcp case (drop rtcp, filter candidate, provide wrong candidate?)
- Test lack of rtcp with more than one participant (it should fail)
- Change the udp port of a stream while it's running (rawudp transmitter, multicast transmitter?)
- Generate DTMF
- Sound (write dtmf detector?)
- Receive DTMF
Events (without dtmf detector? only check if GstMessages are received maybe?)
- Changing a running pipeline
- Add a session to a running pipeline
- Destroy a session in a running pipeline
- Re-add a destroying session in a running pipline
- Write automated tests for the live adder
- Set to playing more than once?
Other plugins
Port msnwebcam, msnav, yahoowebcam to the new api
Generic GStreamer RTP enhancements
- Make reverse propagation of SDP optional parameters to the encoders
- Speex
- H263
- H264

