Skip to main content

3.6.1. Creating an imageattr Attribute

3.6.1. Creating an imageattr Attribute

The receiver will first combine any known local limits (e.g., hardware decoder capabilities or local policy) to determine the absolute minimum and maximum sizes it can receive. If there are no known local limits, the "a=imageattr" attribute SHOULD be omitted. If these local limits preclude receiving any video, i.e., the degenerate case of no permitted resolutions, the "a=imageattr" attribute MUST be omitted, and the "m=" section MUST be marked as sendonly/inactive, as appropriate.

Otherwise, an "a=imageattr" attribute is created with a "recv" direction, and the resulting resolution space formed from the aforementioned intersection is used to specify its minimum and maximum "x=" and "y=" values.

The rules here express a single set of preferences, and therefore, the "a=imageattr" "q=" value is not important. It SHOULD be set to "1.0".

The "a=imageattr" field is payload type specific. When all video codecs supported have the same capabilities, use of a single attribute, with the wildcard payload type (*), is RECOMMENDED. However, when the supported video codecs have different limitations, specific "a=imageattr" attributes MUST be inserted for each payload type.

As an example, consider a system with a multiformat video decoder, which is capable of decoding any resolution from 48x48 to 720p. In this case, the implementation would generate this attribute:

a=imageattr:* recv [x=[48:1280],y=[48:720],q=1.0]

This declaration indicates that the receiver is capable of decoding any image resolution from 48x48 up to 1280x720 pixels.