[h323plus] lost rtp packets and using jitter for video session

Simon Horne s.horne at packetizer.com
Tue Feb 8 08:29:07 EST 2011



The main issue is not the packets are being lost but the rendering being too
slow and blocking  the receive thread which would drop packets. 

The quick solution was to throw the actual rending within your
VideoOutputDevice onto another thread and use a std::queue (with mutex) to
load the frames coming out of the codec and grab the frames to send to the
renderer. This will then not block the receiving thread.


You can be cleaver and build a 1-3 frame buffer in your outputdevice to
simulate a jitter buffer.


MyVideoOutputDevice::SetFrameData(..,const void * mark);


The mark is a H323_RTPInformation pointer which contains a pointer to the
last raw received RTP packet of the completed frame.  You can get timestamp
information from this and pace the output to the render, so if a frame is
dropped then you can conceal it.





From: h323plus-bounces at lists.packetizer.com
[mailto:h323plus-bounces at lists.packetizer.com] On Behalf Of Igor Pavlov
Sent: 08 February 2011 22:27
To: h323plus at lists.packetizer.com
Subject: [h323plus] lost rtp packets and using jitter for video session



On connection speed greater than 384 kbps I have many lost rtp packets.
If I switch off decoding of incoming video packets, than number of lost
packets decreases.
That is why I would like to try use jitter on video stream.
I changed call of OpalMediaFormat() constructor inside OpalVideoFormat
constructor in such way that needsjitter member become TRUE.
But It is not working, not decoding any data.

How can I use Jitter for my purpose and in general - can I do it?

Igor Pavlov

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.packetizer.com/pipermail/h323plus/attachments/20110208/583937b5/attachment.htm>

More information about the h323plus mailing list