On Mon, Sep 9, 2024 at 6:35 PM Anton Khirnov <an...@khirnov.net> wrote:

> Quoting Zhao Zhili (2024-09-07 19:13:40)
> > From: Zhao Zhili <zhiliz...@tencent.com>
> >
> > ---
> >  libavcodec/hevc/dsp_template.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/libavcodec/hevc/dsp_template.c
> b/libavcodec/hevc/dsp_template.c
> > index aebccd1a0c..a0f79c2673 100644
> > --- a/libavcodec/hevc/dsp_template.c
> > +++ b/libavcodec/hevc/dsp_template.c
> > @@ -302,8 +302,8 @@ IDCT_DC(32)
> >
> ////////////////////////////////////////////////////////////////////////////////
> >  #define ff_hevc_pel_filters ff_hevc_qpel_filters
> >  #define DECL_HV_FILTER(f)                              \
> > -    const uint8_t *hf = ff_hevc_ ## f ## _filters[mx]; \
> > -    const uint8_t *vf = ff_hevc_ ## f ## _filters[my];
> > +    const int8_t *hf = ff_hevc_ ## f ## _filters[mx]; \
> > +    const int8_t *vf = ff_hevc_ ## f ## _filters[my];
>
> Looks ok, though I wonder why are these then used as intptr_t.
>
The original HEVC assembly  code
<https://github.com/FFmpeg/FFmpeg/blob/b3bbbb14d0685c8c1fbcf8455e59c7f444290c7c/libavcodec/x86/hevc_mc.asm#L204>
uses mx and my as 64-bit variables.
If we define it as an int, it will push a 32-bit value onto the stack,
leaving the upper 32 bits undefined. Defining it as intptr_t will ensure
all bits are filled.
We no longer need to use intptr_t for x86 and NEON, as the assembly code
now accepts const int8_t *.However, other platforms like MIPS still use
intptr_t.
Once all architectures are updated to use the const int8_t * style, we can
modify HEVCDSPContext->put_hevc_xxx(intptr_t mx, intptr_t my...) to
HEVCDSPContext->put_hevc_xxx(... const int8_t *hf, const int8_t *vf...).


> --
> Anton Khirnov
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
>
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

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

Reply via email to