[FFmpeg-devel] [PATCH 09/12] swscale/internal: constify SwsFunc
Niklas Haas
ffmpeg at haasn.xyz
Tue Oct 8 03:22:22 EEST 2024
On Mon, 07 Oct 2024 16:53:41 -0400 Sean McGovern <gseanmcg at gmail.com> wrote:
> Hi,
>
> On Sun, Oct 6, 2024 at 6:31 PM Michael Niedermayer
> <michael at niedermayer.cc> wrote:
> >
> > On Sat, Oct 05, 2024 at 09:24:00PM +0200, Niklas Haas wrote:
> > > From: Niklas Haas <git at haasn.dev>
> > >
> > > I want to move away from having random leaf processing functions mutate
> > > plane pointers, and while we're at it, we might as well make the strides
> > > and tables const as well.
> > >
> > > Sponsored-by: Sovereign Tech Fund
> > > Signed-off-by: Niklas Haas <git at haasn.dev>
> > > ---
> > > libswscale/aarch64/swscale_unscaled.c | 34 ++--
> > > libswscale/alphablend.c | 6 +-
> > > libswscale/arm/swscale_unscaled.c | 26 +--
> > > libswscale/bayer_template.c | 4 +-
> > > libswscale/loongarch/yuv2rgb_lasx.c | 12 +-
> > > libswscale/loongarch/yuv2rgb_lsx.c | 12 +-
> > > libswscale/ppc/yuv2rgb_altivec.c | 12 +-
> > > libswscale/rgb2rgb.c | 2 +-
> > > libswscale/rgb2rgb.h | 4 +-
> > > libswscale/rgb2rgb_template.c | 2 +-
> > > libswscale/swscale_internal.h | 12 +-
> > > libswscale/swscale_unscaled.c | 242 +++++++++++++-------------
> > > libswscale/x86/yuv2rgb.c | 54 +++---
> > > libswscale/yuv2rgb.c | 6 +-
> > > 14 files changed, 220 insertions(+), 208 deletions(-)
> >
> > should be ok
>
> Sorry for not checking this earlier, but PowerPC 32- and 64-bit builds
> with AltiVec enabled now fail with:
>
> src/libswscale/ppc/yuv2yuv_altivec.c: In function ‘ff_get_unscaled_swscale_ppc’:
> src/libswscale/ppc/yuv2yuv_altivec.c:199:33: error: assignment to
> ‘SwsFunc’ {aka ‘int (*)(SwsContext *, const unsigned char * const*,
> const int *, int, int, unsigned char * const*, const int *)’} from
> incompatible pointer type ‘int (*)(SwsContext *, const uint8_t **, int
> *, int, int, uint8_t **, int *)’ {aka ‘int (*)(SwsContext *, const
> unsigned char **, int *, int, int, unsigned char **, int *)’}
> [-Wincompatible-pointer-types]
> 199 | c->convert_unscaled = yv12toyuy2_unscaled_altivec;
> | ^
> src/libswscale/ppc/yuv2yuv_altivec.c:201:33: error: assignment to
> ‘SwsFunc’ {aka ‘int (*)(SwsContext *, const unsigned char * const*,
> const int *, int, int, unsigned char * const*, const int *)’} from
> incompatible pointer type ‘int (*)(SwsContext *, const uint8_t **, int
> *, int, int, uint8_t **, int *)’ {aka ‘int (*)(SwsContext *, const
> unsigned char **, int *, int, int, unsigned char **, int *)’}
> [-Wincompatible-pointer-types]
> 201 | c->convert_unscaled = yv12touyvy_unscaled_altivec;
> | ^
> make: *** [src/ffbuild/common.mak:81: libswscale/ppc/yuv2yuv_altivec.o] Error 1
My bad for missing this one. Is there a public way I can test build on different
platforms before submitting series? I would have thought that posting it on the
ML is enough to trigger FATE runs on all platforms, but I didn't get any email
reply to the series.
Anyway, this should fix it:
diff --git a/libswscale/ppc/yuv2yuv_altivec.c b/libswscale/ppc/yuv2yuv_altivec.c
index 728e4d210c..d63feb6012 100644
--- a/libswscale/ppc/yuv2yuv_altivec.c
+++ b/libswscale/ppc/yuv2yuv_altivec.c
@@ -31,10 +31,10 @@
#if HAVE_ALTIVEC
-static int yv12toyuy2_unscaled_altivec(SwsContext *c, const uint8_t *src[],
- int srcStride[], int srcSliceY,
- int srcSliceH, uint8_t *dstParam[],
- int dstStride_a[])
+static int yv12toyuy2_unscaled_altivec(SwsContext *c, const uint8_t *const src[],
+ const int srcStride[], int srcSliceY,
+ int srcSliceH, uint8_t *const dstParam[],
+ const int dstStride_a[])
{
uint8_t *dst = dstParam[0] + dstStride_a[0] * srcSliceY;
// yv12toyuy2(src[0], src[1], src[2], dst, c->srcW, srcSliceH,
@@ -107,10 +107,10 @@ static int yv12toyuy2_unscaled_altivec(SwsContext *c, const uint8_t *src[],
return srcSliceH;
}
-static int yv12touyvy_unscaled_altivec(SwsContext *c, const uint8_t *src[],
- int srcStride[], int srcSliceY,
- int srcSliceH, uint8_t *dstParam[],
- int dstStride_a[])
+static int yv12touyvy_unscaled_altivec(SwsContext *c, const uint8_t *const src[],
+ const int srcStride[], int srcSliceY,
+ int srcSliceH, uint8_t *const dstParam[],
+ const int dstStride_a[])
{
uint8_t *dst = dstParam[0] + dstStride_a[0] * srcSliceY;
// yv12toyuy2(src[0], src[1], src[2], dst, c->srcW, srcSliceH,
>
> >
> >
> > thx
> >
> > [...]
> >
> > --
> > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
> >
> > Modern terrorism, a quick summary: Need oil, start war with country that
> > has oil, kill hundread thousand in war. Let country fall into chaos,
> > be surprised about raise of fundamantalists. Drop more bombs, kill more
> > people, be surprised about them taking revenge and drop even more bombs
> > and strip your own citizens of their rights and freedoms. to be continued
> > _______________________________________________
> > 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".
> _______________________________________________
> 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".
More information about the ffmpeg-devel
mailing list