Packetizer

Video Format Signaled In-band (Q68)


The information in this article applies to: H.245

Although rare, we have noticed a couple of vendors that assume that "the" single video format, e.g., CIF, that will ever be used during a call is signaled in the openLogicalChannel request. To compound the problem, they have indicated receive caps for several simultaneous video formats, e.g., SQCIF + QCIF + CIF, in the same descriptor. This is risky, though, because format is signaled in-band and can change with each frame. Both vendors independently assume that the channel will only be opened for one format at a time. They apparently use how the channel was opened as an indication of the display size. For example, if the channel was opened for SQCIF, QCIF, and CIF, their logic simply sees the CIF parameter, looks no further, and then assumes that all frames in the stream will be CIF. This is okay for the CIF frames but causes the SQCIF and QCIF frames to be displayed quite "artistically."

There are two possible fixes:

  1. Don't indicate receive video caps with multiple formats in a single descriptor. Break them out into a separate descriptor for each format. NetMeeting does it this way. This forces the transmitter to open the channel with a single format, and the receiver can be assured that all frames will be that format.
  2. Always look in-band for the frame format. The openLogicalChannel request only indicates the possible formats in the stream.