balazskreith / gst-mprtp

Gstreamer plugin for MPRTP protocol, FRACTaL congestion control algorithm
Other
13 stars 5 forks source link

Refactor FEC Decoder service #3

Closed balazskreith closed 7 years ago

balazskreith commented 7 years ago

Problem:

  1. Each RTP message invokes several malloc, search and insert operations at the receiver side, most of the time they are unnecessary (if no repair request arrives).
  2. Each FEC Buffer invokes memcpy and they are unnecessary.
  3. clean operation cause several list creation totally unnecessary.

Vision: Create a sliding window of fec and rtp packets of the last 100 (or 1s) rtp packets and the last 10 (or 1s) fec packets. only create segments and do the xor operation if it is requested and the repair is possible. otherwise no.

Task:

  1. elliminate clean method and create a sliding window automatically remove obsolate RTP and FEC packets.
  2. ref and unref the gst_buffers accordingly and make the sliding window searchable (peak operation)
  3. Do the repair only if it is necessary.