On Sun, Oct 13, 2024 at 09:15:38PM +0200, Niklas Haas wrote: > On Sun, 13 Oct 2024 19:31:05 +0200 Michael Niedermayer > <mich...@niedermayer.cc> wrote: > > On Fri, Oct 11, 2024 at 12:26:49AM +0200, Niklas Haas wrote: > > > From: Niklas Haas <g...@haasn.dev> > > > > > > And preserve the public SwsContext as separate name. The motivation here > > > is that I want to turn SwsContext into a public struct, while keeping the > > > internal implementation hidden. Additionally, I also want to be able to > > > use multiple internal implementations, e.g. for GPU devices. > > > > > > This commit does not include any functional changes. For the most part, > > > it is > > > a simple rename. The only complications arise from the public facing API > > > functions, which preserve their current type (and hence require an > > > additional > > > unwrapping step internally), and the checkasm test framework, which > > > directly > > > accesses SwsInternal. > > > > > > For consistency, the affected functions that need to maintain a > > > distionction > > > have generally been changed to refer to the SwsContext as *sws, and the > > > SwsInternal as *c. > > > > > > In an upcoming commit, I will provide a backing definition for the public > > > SwsContext, and update `sws_internal()` to dereference the internal struct > > > instead of merely casting it. > > > > > > Sponsored-by: Sovereign Tech Fund > > > Signed-off-by: Niklas Haas <g...@haasn.dev> > > > > breaks build on mingw64 > > > > CC libswscale/x86/w64xmmtest.o > > In file included from src/libswscale/x86/w64xmmtest.c:22: > > src/libswscale/x86/w64xmmtest.c:25:23: warning: ‘struct SwsInternal’ > > declared inside parameter list will not be visible outside of this > > definition or declaration > > 25 | wrap(sws_scale(struct SwsInternal *c, const uint8_t *const > > srcSlice[], > > | ^~~~~~~~~~~ > > src/libavutil/x86/w64xmmtest.h:74:16: note: in definition of macro ‘wrap’ > > 74 | int __real_ ## func; \ > > | ^~~~ > > src/libswscale/x86/w64xmmtest.c:25:23: warning: ‘struct SwsInternal’ > > declared inside parameter list will not be visible outside of this > > definition or declaration > > 25 | wrap(sws_scale(struct SwsInternal *c, const uint8_t *const > > srcSlice[], > > | ^~~~~~~~~~~ > > src/libavutil/x86/w64xmmtest.h:75:16: note: in definition of macro ‘wrap’ > > 75 | int __wrap_ ## func; \ > > | ^~~~ > > src/libswscale/x86/w64xmmtest.c:25:23: warning: ‘struct SwsInternal’ > > declared inside parameter list will not be visible outside of this > > definition or declaration > > 25 | wrap(sws_scale(struct SwsInternal *c, const uint8_t *const > > srcSlice[], > > | ^~~~~~~~~~~ > > src/libavutil/x86/w64xmmtest.h:76:16: note: in definition of macro ‘wrap’ > > 76 | int __wrap_ ## func > > | ^~~~ > > src/libavutil/x86/w64xmmtest.h:76:5: error: conflicting types for > > ‘__wrap_sws_scale’ > > 76 | int __wrap_ ## func > > | ^~~~~~~ > > src/libswscale/x86/w64xmmtest.c:25:1: note: in expansion of macro ‘wrap’ > > 25 | wrap(sws_scale(struct SwsInternal *c, const uint8_t *const > > srcSlice[], > > | ^~~~ > > src/libavutil/x86/w64xmmtest.h:75:5: note: previous declaration of > > ‘__wrap_sws_scale’ was here > > 75 | int __wrap_ ## func; \ > > | ^~~~~~~ > > src/libswscale/x86/w64xmmtest.c:25:1: note: in expansion of macro ‘wrap’ > > 25 | wrap(sws_scale(struct SwsInternal *c, const uint8_t *const > > srcSlice[], > > | ^~~~ > > src/libswscale/x86/w64xmmtest.c: In function ‘__wrap_sws_scale’: > > src/libswscale/x86/w64xmmtest.c:29:32: warning: passing argument 1 of > > ‘__real_sws_scale’ from incompatible pointer type > > [-Wincompatible-pointer-types] > > 29 | testxmmclobbers(sws_scale, c, srcSlice, srcStride, srcSliceY, > > | ^ > > | | > > | struct SwsInternal * > > src/libavutil/x86/w64xmmtest.h:51:27: note: in definition of macro > > ‘testxmmclobbers’ > > 51 | ret = __real_ ## func(ctx, __VA_ARGS__); \ > > | ^~~ > > src/libswscale/x86/w64xmmtest.c:25:36: note: expected ‘struct SwsInternal > > *’ but argument is of type ‘struct SwsInternal *’ > > 25 | wrap(sws_scale(struct SwsInternal *c, const uint8_t *const > > srcSlice[], > > | ~~~~~~~~~~~~~~~~~~~~^ > > src/libavutil/x86/w64xmmtest.h:74:16: note: in definition of macro ‘wrap’ > > 74 | int __real_ ## func; \ > > | ^~~~ > > make: *** [ffbuild/common.mak:81: libswscale/x86/w64xmmtest.o] Error 1 > > make: Target 'all' not remade because of errors. > > > > thx > > Fixed by > > diff --git a/libswscale/x86/w64xmmtest.c b/libswscale/x86/w64xmmtest.c > index 33af90fd41..d405a0eab4 100644 > --- a/libswscale/x86/w64xmmtest.c > +++ b/libswscale/x86/w64xmmtest.c > @@ -22,7 +22,7 @@ > #include "libavutil/x86/w64xmmtest.h" > #include "libswscale/swscale.h" > > -wrap(sws_scale(struct SwsInternal *c, const uint8_t *const srcSlice[], > +wrap(sws_scale(SwsContext *c, const uint8_t *const srcSlice[], > const int srcStride[], int srcSliceY, int srcSliceH, > uint8_t *const dst[], const int dstStride[])) > {
teh original patch #2 no longer applies CONFLICT (content): Merge conflict in libswscale/output.c do you have some up to date branch that can be used for testing ? thx [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Those who are best at talking, realize last or never when they are wrong.
signature.asc
Description: PGP signature
_______________________________________________ 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".