[FFmpeg-devel] [PATCH 3/3] avcodec/fdctdsp: Mark functions as hidden

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Mon Jul 24 16:17:38 EEST 2023


Pointers to these functions are used in comparisons.
Currently the compiler has to presume the worst for these,
namely that the functions are from another DSO and therefore
loads their addresses from the GOT (which also entails a
relocation entry that is processed at runtime, regardless
of whether the code using them is run or not). This changes
if these functions are declared as hidden.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
 libavcodec/fdctdsp.h | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/libavcodec/fdctdsp.h b/libavcodec/fdctdsp.h
index 82edf8b3bb..9dc375322f 100644
--- a/libavcodec/fdctdsp.h
+++ b/libavcodec/fdctdsp.h
@@ -21,6 +21,7 @@
 
 #include <stdint.h>
 
+#include "libavutil/attributes_internal.h"
 #include "avcodec.h"
 
 typedef struct FDCTDSPContext {
@@ -28,6 +29,7 @@ typedef struct FDCTDSPContext {
     void (*fdct248)(int16_t *block /* align 16 */);
 } FDCTDSPContext;
 
+FF_VISIBILITY_PUSH_HIDDEN
 void ff_fdctdsp_init(FDCTDSPContext *c, AVCodecContext *avctx);
 void ff_fdctdsp_init_ppc(FDCTDSPContext *c, AVCodecContext *avctx,
                          unsigned high_bit_depth);
@@ -40,5 +42,6 @@ void ff_jpeg_fdct_islow_8(int16_t *data);
 void ff_jpeg_fdct_islow_10(int16_t *data);
 void ff_fdct248_islow_8(int16_t *data);
 void ff_fdct248_islow_10(int16_t *data);
+FF_VISIBILITY_POP_HIDDEN
 
 #endif /* AVCODEC_FDCTDSP_H */
-- 
2.34.1



More information about the ffmpeg-devel mailing list