[FFmpeg-devel] [PATCH] avfilter: add wpsnr video filter

Ronald S. Bultje rsbultje at gmail.com
Sat Oct 30 04:17:15 EEST 2021


Hi Thomas,

On Fri, Oct 29, 2021 at 9:12 AM Tomas Härdin <tjoppen at acc.umu.se> wrote:

> tor 2021-10-28 klockan 21:09 +0200 skrev Paul B Mahol:
> > +    const uint16_t *src = (const uint16_t *)ssrc;
>
> This is not -fstrict-aliasing safe
>

I don't believe that is correct. It's true we're not allowed to cast
between two clashing types to access the same pointer (memory location),
but the C standard would appear to make an exception for byte types.

Quoted from https://stackoverflow.com/a/99010/4726410 because I'm too lazy
to dig through the standard:

"The types that C 2011 6.5 7 allows an lvalue to access are:
- a type compatible with the effective type of the object,
- a qualified version of a type compatible with the effective type of the
object,
- a type that is the signed or unsigned type corresponding to the effective
type of the object,
- a type that is the signed or unsigned type corresponding to a qualified
version of the effective type of the object,
- an aggregate or union type that includes one of the aforementioned types
among its members (including, recursively, a member of a subaggregate or
contained union), or
- a character type."

uint8_t is a variant of the character (aka byte) type, and so the cast
would not seem to violate strict aliasing rules.

Ronald


More information about the ffmpeg-devel mailing list