Improve RTSP/RTP layer

From MultimediaWiki
Jump to navigation Jump to search

Roadmap/checklist for Josh Allmann's Summer of Code Project:

  • Primary goal: improve the receiver compatibility
    • Add support for more widespread formats ([list will follow check gst live555 and feng])
    • support Quicktime http tunnel mode
      • Initial implementation done and committed, not supported in the RTSP muxer yet, missing handling of the x-server-ip-address header
    • untangle the AAC and mpeg4 format specific code from rtsp.c, make them proper dynamic payload handlers
      • Committed
    • factorize out common code for parsing SDP (fmtp) lines, that is duplicated in parse_h264_sdp_line, amr_parse_sdp_line and xiph_parse_sdp_line
      • Committed
    • add RTP packetizers for codecs that we already have depacketizers for (Theora, Vorbis, SVQ3, QDM2, any other? - VP8, in parallel with the depacketizer for that)
      • Xiph and VP8 packetizers committed
    • Real RTSP-HTTP, with port knocking
    • support RTCP/Bye as end-of-file (see small task)
      • Committed
  • Secondary goal: improve application integration
    • Provide an API to expose the rtcp layer (and the equivalent in RDT dialect)
    • Try to support subtitle streams (either as rtcp-xr or application/text stream)
    • Make VideoLanClient, MPlayer or Xine use FFmpeg RTSP
      • Patch submitted to VLC, awaiting review
    • Implement protocol variations (e.g. DCCP or improve SCTP)
    • Untangle MPEG2-TS/RTP from rtpdec into a dynamic payload handler. Write a packetizer first, unless we find such a server to test against.
    • Reduce ffrtsp startup time
    • Small Xiph RTP optimization: avoid the extra memcpy to packet; instead, hook av_init_packet up to url_close_dyn_buf
      • Committed

Mentor: Luca Barbato, Martin Storsjö, Ronald S. Bultje