Summary:ASTERISK-11376: chan_iax2 does not send full video frames when it is supposed to
Reporter:mihai (mihai)Labels:
Date Opened:2008-02-04 16:16:41.000-0600Date Closed:2008-03-26 13:37:27
Versions:Frequency of
Environment:Attachments:( 0) asterisk-fullvideo.patch
( 1) fullvideo.patch
Description:The IAX2 spec says that full video frames should be sent whenever the 15 bits timestamp rolls over.  Current chan_iax2 code doesn't do that


The reason is that the logic that decide whether a frame should be full or mini depends on pvt->lastsent, which is the timestamp of the last frame sent (including voice frames). The correct way would be to use the timestamp of the last video frame sent when deciding whether a rollover happened.
Comments:By: mihai (mihai) 2008-02-04 16:21:30.000-0600

I've uploaded a patch that fixes the problem. The patch adds a new pvt structure field, that holds the timestamp of the last video frame sent.  The patch also changes the way timestamps are calculated: because we don't know how often video frames should be sent (as opposed to audio), we just assign them a timestamp based on the wall clock.

The patch also clears up the logic that decides whether a video frame should be full or mini

By: mihai (mihai) 2008-02-07 12:15:11.000-0600

Uploaded a new and improved version of the patch. This time we make sure that video timestamps cannot go backwards

By: Digium Subversion (svnbot) 2008-03-26 13:37:24

Repository: asterisk
Revision: 111014

U   branches/1.4/channels/chan_iax2.c

r111014 | file | 2008-03-26 13:37:22 -0500 (Wed, 26 Mar 2008) | 6 lines

Make sure that full video frames are sent whenever the 15 bit timestamp rolls over.
(closes issue ASTERISK-11376)
Reported by: mihai
     asterisk-fullvideo.patch uploaded by mihai (license 94)