On 6/6/11 12:04 PM, Diego Biurrun wrote:
They are hacks added to use functions for multiple purposes, e.g. if you have
YUYV or UYVY, setting offset += 1 means the same function can read both.

Unfortunately, that only works if alignment of the address is of no concern,
and breaks even further if you set multiple function pointers in different
places. Imagine the C function setting a YUYV reader for UYVY with offset=1,
and then an optimized SIMD reader (optimized for unaligned access also) sets
it back to a UYVY reader. It will completely and utterly break.

The hacks are mostly used for alpha or BE vs LE 16-bit reading, where the
benefit disappears as soon as you want to maintain full-bitdepth precision.
As this is being worked on right now, it is better to just remove the hacks.

Using unaligning offsets to make the same function work for similar layouts (e.g. YUYV and UYVY) doesn't work for SIMD variants and higher bitdepts colorspaces.

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

Reply via email to