Hi,

following two patches add proper compat for Sandy Bridge and Ivy Bridge GPUs to 
the DXVA2 H.264 HWAccel.

The problem was that the code filling the long slice structure was not 
standards compliant,
and used the wrong reference frame index. It was implemented this way because 
old Intel GPUs 
do expect it this way.

This brings me to the real problem. If the first patch is applied, decoding on 
old Intel GPUs will break,
but decoding on new Intel GPUs will work. To compensate there is the second 
patch which adds a workaround flag
to restore the non-compliant behaviour which is required for old Intel GPUs.

What i now wonder: This can break HW decoding on old intel GPUs if the user 
application is not aware
that it needs to set the workaround flag in the future. However, it does fix 
decoding on new Intel GPUs.
So, what to do?

For the record, the "non-compliant" behaviour can be identified on the users 
side by the decoder
device GUID.

Intel specific, non standard compliant devices (workaround needed):
DXVADDI_Intel_ModeH264_E - {604F8E68-4951-4C54-88FE-ABD25C15B3D6}

Microsoft Standard H.264 device (no workaround needed):
DXVA2_ModeH264_E - {1B81BE68-A0C7-11D3-B984-00C04F2E73C5}

How to proceed?
Is it acceptable to add a new mandatory workaround flag that user applications 
need to be aware of
when running on old Intel GPUs?

- Hendrik

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to