[FFmpeg-devel] [PATCH] avcodec/mpeg4videodec: Align idct-block appropriately

Sean McGovern gseanmcg at gmail.com
Thu Mar 14 22:49:47 EET 2024


Andreas:

On Tue, Mar 12, 2024 at 8:53 PM Andreas Rheinhardt
<andreas.rheinhardt at outlook.com> wrote:
>
> It is accessed via AV_RN64() in ff_simple_idct_put_int32_10bit().
> Should fix the UBSan failures in the mpeg4-simple-studio-profile
> test here:
> https://fate.ffmpeg.org/report.cgi?time=20240312011016&slot=ppc-linux-gcc-13.2-ubsan-altivec-qemu
>
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
> ---
>  libavcodec/mpeg4videodec.h | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/libavcodec/mpeg4videodec.h b/libavcodec/mpeg4videodec.h
> index c0e6ec6592..4a26d18987 100644
> --- a/libavcodec/mpeg4videodec.h
> +++ b/libavcodec/mpeg4videodec.h
> @@ -29,6 +29,7 @@
>  #include "mpegvideo.h"
>  #include "mpeg4videodsp.h"
>
> +#include "libavutil/mem_internal.h"
>
>  typedef struct Mpeg4DecContext {
>      MpegEncContext m;
> @@ -83,7 +84,7 @@ typedef struct Mpeg4DecContext {
>
>      Mpeg4VideoDSPContext mdsp;
>
> -    int32_t block32[12][64];
> +    DECLARE_ALIGNED(8, int32_t, block32)[12][64];
>      // 0 = DCT, 1 = DPCM top to bottom scan, -1 = DPCM bottom to top scan
>      int dpcm_direction;
>      int16_t dpcm_macroblock[3][256];
> --
> 2.40.1
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".

Confirming that this fixes fate-mpeg4-simple-studio-profile on PowerPC
QEMU with GCC UBsan as noted.

It was not failing on POWER7 (ppc64) or POWER9 (ppc64le).

Thanks,
Sean McGovern


More information about the ffmpeg-devel mailing list