Michael Niedermayer: > On Wed, Mar 19, 2025 at 10:18:38PM +0100, Andreas Rheinhardt wrote: >> First part of a patchset; the second part will be sent separately >> because the complete set crosses the ML thresholds ("Message body is too >> big: 1731572 bytes with a limit of 1000 KB"). A complete branch can be > >> found here: https://github.com/mkver/FFmpeg/tree/mpvenc > > tested the branch on mips: > > make -k > CC libavcodec/mpegvideo_unquantize.o > src/libavcodec/mpegvideo_unquantize.c: In function ‘ff_mpv_unquantize_init’: > src/libavcodec/mpegvideo_unquantize.c:272:34: error: ‘s’ is a pointer; did you mean to use ‘->’? > ff_mpv_unquantize_init_mips(s. avctx, q_scale_type); > ^ > -> > src/libavcodec/mpegvideo_unquantize.c:272:43: warning: passing argument 2 of ‘ff_mpv_unquantize_init_mips’ makes pointer from integer without a cast [-Wint-conversion] > ff_mpv_unquantize_init_mips(s. avctx, q_scale_type); > ^~~~~~~~~~~~ > In file included from src/libavcodec/mpegvideo_unquantize.c:34:0: > src/libavcodec/mpegvideo_unquantize.h:60:6: note: expected ‘AVCodecContext * {aka struct AVCodecContext *}’ but argument is of type ‘int’ > void ff_mpv_unquantize_init_mips(MPVUnquantDSPContext *s, AVCodecContext *avctx, > ^~~~~~~~~~~~~~~~~~~~~~~~~~~ > src/libavcodec/mpegvideo_unquantize.c:272:5: error: too few arguments to function ‘ff_mpv_unquantize_init_mips’ > ff_mpv_unquantize_init_mips(s. avctx, q_scale_type); > ^~~~~~~~~~~~~~~~~~~~~~~~~~~ > In file included from src/libavcodec/mpegvideo_unquantize.c:34:0: > src/libavcodec/mpegvideo_unquantize.h:60:6: note: declared here > void ff_mpv_unquantize_init_mips(MPVUnquantDSPContext *s, AVCodecContext *avctx, > ^~~~~~~~~~~~~~~~~~~~~~~~~~~ > make: *** [src/ffbuild/common.mak:81: libavcodec/mpegvideo_unquantize.o] Error 1 > make: Target 'all' not remade because of errors. > > [...] Thanks. I fixed this as well as a bug in the ppc/altivec unquantize functions and force pushed my branch. Please replace the last two patches with the ones attached here (or just look at the github branch). - Andreas PS: Both mips as well as arm (neon) always use the inter scantable. This works because the derived raster_end for inter is always >= the raster_end for intra. I didn't fix MIPS, because I can't seem to compile MMI; and I didn't change ARM, because it would entail tinkering with external assembly.