Skip to content

[RFC]: Deprecate VA_ENC_PACKED_HEADER_NONE and similar #178

Open
@uartie

Description

@uartie

VAAPI provides two ways for drivers to report/handle some unsupported attributes. For example, driver can report that packed headers are unsupported by either setting the value to VA_ATTRIB_NOT_SUPPORTED or VA_ENC_PACKED_HEADER_NONE. Unfortunately, VA_ENC_PACKED_HEADER_NONE evaluates to zero (0) and can produce unintended results if not handled properly in both driver and middleware (since the packed header attribute is a bitfield).
VA_ATTRIB_NOT_SUPPORTED on the other hand is not zero and makes it suitable for simple bitwise operations on bitfield attributes. To handle both cases properly, drivers/middleware are forced to do extra work that would be unnecessary otherwise (e.g. https://github.com/intel/intel-vaapi-driver/blob/0b37282fa1c302d2b0c791fdc46c69af0d16d09b/src/i965_drv_video.c#L1418). AFAICT, having attribute values such as VA_ENC_PACKED_HEADER_NONE=0 serves no purpose and only creates confusion and bugs.

Also, there are other bitfield attributes that have similar _NONE = 0 usage which should also be deprecated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions