Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: "Ronald S. Bultje" <rsbultje@gmail.com>
To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] [PATCH] avcodec/vp9mvs: fix misaligned access when clearing VP9mv
Date: Sun, 2 Jun 2024 17:16:46 -0400
Message-ID: <CAEEMt2kPGSPgHy0C7WjSuLezgXup8rtD6pMeE=+fCpx58RwQrQ@mail.gmail.com> (raw)
In-Reply-To: <a570ad37-8f00-478b-9e7f-e34452b0ceef@gmail.com>

Hi,

On Sun, Jun 2, 2024 at 9:12 AM James Almer <jamrial@gmail.com> wrote:

> On 6/2/2024 10:06 AM, James Almer wrote:
> > On 6/2/2024 9:14 AM, Kacper Michajłow wrote:
> >> Fixes runtime error: member access within misaligned address
> >> <addr> for type 'av_alias64', which requires 8 byte alignment.
> >>
> >> VP9mv is aligned to 4 bytes, so instead doing 8 bytes clear, let's do
> >> 2 times 4 bytes.
> >>
> >> Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
> >> ---
> >>   libavcodec/vp9mvs.c | 3 ++-
> >>   1 file changed, 2 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/libavcodec/vp9mvs.c b/libavcodec/vp9mvs.c
> >> index b706d1660f..790cf629a6 100644
> >> --- a/libavcodec/vp9mvs.c
> >> +++ b/libavcodec/vp9mvs.c
> >> @@ -294,7 +294,8 @@ void ff_vp9_fill_mv(VP9TileData *td, VP9mv *mv,
> >> int mode, int sb)
> >>       VP9Block *b = td->b;
> >>       if (mode == ZEROMV) {
> >> -        AV_ZERO64(mv);
> >> +        AV_ZERO32(&mv[0]);
> >> +        AV_ZERO32(&mv[1]);
> >>       } else {
> >>           int hp;
> >
> > IMO just move mv in VP9Block to the top of the struct. That will make
> > sure it's aligned to at the very least 16 byte (Since it's av_malloc'd).
>
> Actually nevermind, VP9mv has two int16_t and given what's passed to
> ff_vp9_fill_mv() it's not enough.
>

Do compilers on relevant platforms convert this to a single 64bit
(unaligned) zero-move? Otherwise, we may want an unaligned AV_ZERO64() so
as to not slow down platforms supporting unaligned writes.

Ronald
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

  reply	other threads:[~2024-06-02 21:17 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-02 12:14 Kacper Michajłow
2024-06-02 13:06 ` James Almer
2024-06-02 13:11   ` James Almer
2024-06-02 21:16     ` Ronald S. Bultje [this message]
2024-06-02 22:43       ` Kacper Michajlow
2024-06-02 23:05         ` Ronald S. Bultje
2024-08-06 22:24           ` Michael Niedermayer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAEEMt2kPGSPgHy0C7WjSuLezgXup8rtD6pMeE=+fCpx58RwQrQ@mail.gmail.com' \
    --to=rsbultje@gmail.com \
    --cc=ffmpeg-devel@ffmpeg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git