Michael Niedermayer: > On Tue, Oct 04, 2022 at 12:44:58AM +0200, Andreas Rheinhardt wrote: >> Currently, it is accessed via a pointer (ff_celt_window) >> exported from opustab.h which points inside a static array >> (ff_celt_window_padded) in opustab.h. Instead export >> ff_celt_window_padded directly and make opustab.h >> a static const pointer pointing inside ff_celt_window_padded. >> Also mark all the declarations in opustab.h as hidden, >> so that the compiler knows that ff_celt_window has a fixed >> offset from the code even when compiling position-independent >> code. >> >> Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@outlook.com> >> --- >> libavcodec/opusenc.c | 4 ++-- >> libavcodec/opustab.c | 4 +--- >> libavcodec/opustab.h | 8 +++++++- >> 3 files changed, 10 insertions(+), 6 deletions(-) > [...] >> diff --git a/libavcodec/opustab.h b/libavcodec/opustab.h >> index 16011db758..9c9f1b9d98 100644 >> --- a/libavcodec/opustab.h >> +++ b/libavcodec/opustab.h >> @@ -25,6 +25,9 @@ >> >> #include <stdint.h> >> >> +#include "libavutil/attributes_internal.h" >> + >> +FF_VISIBILITY_PUSH_HIDDEN >> extern const uint8_t ff_celt_band_end[]; >> >> extern const uint8_t ff_opus_default_coupled_streams[]; > > didnt investigate but this breaks mingw64 here > > CC libavcodec/opus.o > In file included from src/libavcodec/opus.c:34:0: > src/libavcodec/opustab.h:31:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or > ‘__attribute__’ before ‘extern’ > extern const uint8_t ff_celt_band_end[]; > ^~~~~~ > In file included from src/libavcodec/opus.c:35:0: > src/libavcodec/internal.h:52:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or > ‘__attribute__’ before ‘typedef’ > typedef struct AVCodecInternal { > ^~~~~~~ > src/libavcodec/opus.c: In function ‘ff_opus_parse_extradata’: > src/libavcodec/opus.c:333:24: error: ‘struct AVCodecInternal’ has no member > named ‘skip_samples’ > avctx->internal->skip_samples = avctx->delay; > ^~ > src/ffbuild/common.mak:81: recipe for target 'libavcodec/opus.o' failed > make: *** [libavcodec/opus.o] Error 1 > >
I already see the problem: An earlier version used FF_VISIBILITY_START/END_HIDDEN, then I decided to switch to FF_VISIBILITY_PUSH/POP_HIDDEN, but I only modified the part where hidden is supported; in the other case, FF_VISIBILITY_START/END_HIDDEN is still defined. Thanks for testing. - Andreas _______________________________________________ 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".