Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#1392 closed enhancement (fixed)

Immediately decode incoming frames to avoid loosing key frames when the jbuf is full and improve latency

Reported by: bennylp Owned by: nanang
Priority: normal Milestone: release-2.0-beta
Component: pjmedia Version: trunk
Keywords: Cc:
Backport to 1.x milestone: Backported:

Description (last modified by bennylp)

Image decoding is now done in on_rx_rtp() callback by the network thread as soon as full image is available in the jitter buffer.

The default behavior is to only decode one image and suspend further decoding until this image is consumed by get_frame(). The decoding can be made more aggressive by setting PJMEDIA_VID_STREAM_SKIP_PACKETS_TO_REDUCE_LATENCY to non-zero, and in this case the stream will always decode any available images in the jitter buffer regardless whether it will overwrite previously decoded image or not. This will notably improve latency, but if the network is too bursty several images may be skipped causing reduced fps playback and non-smooth video playback.

Change History (3)

comment:1 Changed 8 years ago by bennylp

  • Resolution set to fixed
  • Status changed from new to closed

(In [3835]) Fixed #1392: Immediately decode incoming frames to avoid loosing key frames when the jbuf is full and improve latency

comment:2 Changed 8 years ago by bennylp

  • Description modified (diff)

comment:3 Changed 8 years ago by bennylp

(In [3858]) Fixed call_med->rtp_addr is not initialized causing UPDATE to be sent after every ICE negotiation (misc re #1392)

Note: See TracTickets for help on using tickets.