Each Aux Stream is limited to 32-bytes per transmission and is distinguished from other Aux Streams by a 32-bit Type field. The Type field has the same function as the Type field used by standard Aux Data , and it is drawn from the same space. In general, data selection/pruning is intended to work identically for Aux Stream as it does for Aux Data. I.e., data sources advertise what Types they have available and what bit-field they will use to represent each Type. Participants who wish to receive a particular Type from a particular source set the appropriate bit in their (source-specific) data selection bit-mask. If an Aux Data item and an Aux Stream are identified with identical Type fields, then they must both be selected or both be pruned together.
The above describes how the Aux Stream selection/pruning is intended to work, once reflectors have the ability to dissassemble and reassemble packets. In the current implementation, Aux Stream data is carried in video packets whenever video packets are being transmitted at a sufficiently high rate, and reflectors have no ability to extract Aux Stream data from video packets. Hence, whenever an Aux Stream source is transmitting video, an Aux Stream recipient must be receiving its video in order to receive its Aux Stream. When an Aux Stream source is not transmitting video, or when video is not being transmitted frequently enough, Aux Stream data is carried in a separate packet that is distributed to all who request it, as described in the preceding paragraph.
When video is outgoing, Aux Stream data is transmitted at the same frequency as the frame rate, and also whenever 1 half second has elapsed without an Aux Stream transmission. When video is not outgoing, the frequency is once every half second.
The original video packet format design did not anticipate the need to carry additional, non-video, payload in the same packet. Hence, the Aux Stream data is appended to the video data as if it were another square of video, but using a square ID that is outside the valid range (0-1199) for the largest size (320 x 240 pixel) video. The detection of an invalid square ID terminates video decompression, at which point the Aux Stream data can be extracted.
0 8 16 24 31 +--------------+--------------+--------------+--------------+ | Square ID = 1201 | Byte Count | +--------------+--------------+--------------+--------------+ 04h | Prune Bits | +--------------+--------------+--------------+--------------+ 08h | Type[1] | +--------------+--------------+--------------+--------------+ 0Ch | Data[1] (32 bytes) | | | ... | | +--------------+--------------+--------------+--------------+ ... +--------------+--------------+--------------+--------------+ | Type[n] | +--------------+--------------+--------------+--------------+ | Data[n] (32 bytes) | ... | | +--------------+--------------+--------------+--------------+