Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [FFmpeg-devel] [PATCH 1/2] avutil/attributes_internal: Add EXTERN macro for extern+hidden
@ 2025-03-02 20:23 Andreas Rheinhardt
  0 siblings, 0 replies; only message in thread
From: Andreas Rheinhardt @ 2025-03-02 20:23 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

[-- Attachment #1: Type: text/plain, Size: 16 bytes --]

Patches attached

[-- Attachment #2: 0001-avutil-attributes_internal-Add-EXTERN-macro-for-exte.patch --]
[-- Type: text/x-patch, Size: 2394 bytes --]

From d0aa40a0f8c2a7e959628ee2d13c42e1bbbb643a Mon Sep 17 00:00:00 2001
From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Date: Sun, 2 Mar 2025 15:27:48 +0100
Subject: [PATCH 1/2] avutil/attributes_internal: Add EXTERN macro for
 extern+hidden

This is inspired by the equivalent dav1d attribute introduced
by Henrik Gramner in e4c4af02f3de5e6cea6f81272a2981c0fa7bae28.
Also already use it to beautify declarations.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 libavcodec/mathops.h            | 2 +-
 libavcodec/me_cmp.h             | 2 +-
 libavcodec/vp9dsp.h             | 2 +-
 libavutil/attributes_internal.h | 2 ++
 4 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/libavcodec/mathops.h b/libavcodec/mathops.h
index 84a924f31b..3e074ddf47 100644
--- a/libavcodec/mathops.h
+++ b/libavcodec/mathops.h
@@ -33,7 +33,7 @@
 extern const uint32_t ff_inverse[257];
 extern const uint8_t ff_log2_run[41];
 extern const uint8_t ff_sqrt_tab[256];
-extern const uint8_t attribute_visibility_hidden ff_crop_tab[256 + 2 * MAX_NEG_CROP];
+EXTERN const uint8_t ff_crop_tab[256 + 2 * MAX_NEG_CROP];
 extern const uint8_t ff_zigzag_direct[64];
 extern const uint8_t ff_zigzag_scan[16+1];
 
diff --git a/libavcodec/me_cmp.h b/libavcodec/me_cmp.h
index 9053327c4c..8fcfa38dae 100644
--- a/libavcodec/me_cmp.h
+++ b/libavcodec/me_cmp.h
@@ -25,7 +25,7 @@
 
 #include "avcodec.h"
 
-extern const uint32_t attribute_visibility_hidden ff_square_tab[512];
+EXTERN const uint32_t ff_square_tab[512];
 
 
 /* minimum alignment rules ;)
diff --git a/libavcodec/vp9dsp.h b/libavcodec/vp9dsp.h
index 772848e349..0e93224e17 100644
--- a/libavcodec/vp9dsp.h
+++ b/libavcodec/vp9dsp.h
@@ -121,7 +121,7 @@ typedef struct VP9DSPContext {
     vp9_scaled_mc_func smc[5][N_FILTERS][2];
 } VP9DSPContext;
 
-extern const int16_t attribute_visibility_hidden ff_vp9_subpel_filters[3][16][8];
+EXTERN const int16_t ff_vp9_subpel_filters[3][16][8];
 
 void ff_vp9dsp_init(VP9DSPContext *dsp, int bpp, int bitexact);
 
diff --git a/libavutil/attributes_internal.h b/libavutil/attributes_internal.h
index 3df1ee6af3..bc85ce77ff 100644
--- a/libavutil/attributes_internal.h
+++ b/libavutil/attributes_internal.h
@@ -31,4 +31,6 @@
 #    define FF_VISIBILITY_POP_HIDDEN
 #endif
 
+#define EXTERN extern attribute_visibility_hidden
+
 #endif /* AVUTIL_ATTRIBUTES_INTERNAL_H */
-- 
2.45.2


[-- Attachment #3: 0002-avformat-mpegenc-mpegts.-mxfenc-Mark-de-muxers-decla.patch --]
[-- Type: text/x-patch, Size: 2887 bytes --]

From 279f6e146472d787043591082ddc129f309bc790 Mon Sep 17 00:00:00 2001
From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Date: Sun, 2 Mar 2025 15:56:31 +0100
Subject: [PATCH 2/2] avformat/mpegenc, mpegts. mxfenc: Mark (de)muxers
 declarations as internal

Otherwise compilers might emit code that presumes there to be
a GOT which can't be fixed by the linker.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 libavformat/mpegenc.c | 9 +++++----
 libavformat/mpegts.c  | 3 ++-
 libavformat/mxfenc.c  | 5 +++--
 3 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/libavformat/mpegenc.c b/libavformat/mpegenc.c
index 6b6763c30f..30a034a418 100644
--- a/libavformat/mpegenc.c
+++ b/libavformat/mpegenc.c
@@ -24,6 +24,7 @@
 #include <stdint.h>
 
 #include "libavutil/attributes.h"
+#include "libavutil/attributes_internal.h"
 #include "libavutil/fifo.h"
 #include "libavutil/log.h"
 #include "libavutil/mathematics.h"
@@ -88,10 +89,10 @@ typedef struct MpegMuxContext {
     int preload;
 } MpegMuxContext;
 
-extern const FFOutputFormat ff_mpeg1vcd_muxer;
-extern const FFOutputFormat ff_mpeg2dvd_muxer;
-extern const FFOutputFormat ff_mpeg2svcd_muxer;
-extern const FFOutputFormat ff_mpeg2vob_muxer;
+EXTERN const FFOutputFormat ff_mpeg1vcd_muxer;
+EXTERN const FFOutputFormat ff_mpeg2dvd_muxer;
+EXTERN const FFOutputFormat ff_mpeg2svcd_muxer;
+EXTERN const FFOutputFormat ff_mpeg2vob_muxer;
 
 static int put_pack_header(AVFormatContext *ctx, uint8_t *buf,
                            int64_t timestamp)
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index 765bedec5c..54594b3a11 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -21,6 +21,7 @@
 
 #include "config_components.h"
 
+#include "libavutil/attributes_internal.h"
 #include "libavutil/buffer.h"
 #include "libavutil/crc.h"
 #include "libavutil/internal.h"
@@ -274,7 +275,7 @@ typedef struct PESContext {
     int merged_st;
 } PESContext;
 
-extern const FFInputFormat ff_mpegts_demuxer;
+EXTERN const FFInputFormat ff_mpegts_demuxer;
 
 static struct Program * get_program(MpegTSContext *ts, unsigned int programid)
 {
diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c
index a482a6a352..ffb207576a 100644
--- a/libavformat/mxfenc.c
+++ b/libavformat/mxfenc.c
@@ -40,6 +40,7 @@
 #include <inttypes.h>
 #include <time.h>
 
+#include "libavutil/attributes_internal.h"
 #include "libavutil/mem.h"
 #include "libavutil/opt.h"
 #include "libavutil/random_seed.h"
@@ -66,8 +67,8 @@
 #include "config.h"
 #include "version.h"
 
-extern const FFOutputFormat ff_mxf_d10_muxer;
-extern const FFOutputFormat ff_mxf_opatom_muxer;
+EXTERN const FFOutputFormat ff_mxf_d10_muxer;
+EXTERN const FFOutputFormat ff_mxf_opatom_muxer;
 
 #define IS_D10(s)    ((s)->oformat == &ff_mxf_d10_muxer.p)
 #define IS_OPATOM(s) ((s)->oformat == &ff_mxf_opatom_muxer.p)
-- 
2.45.2


[-- Attachment #4: Type: text/plain, Size: 251 bytes --]

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2025-03-02 20:23 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-03-02 20:23 [FFmpeg-devel] [PATCH 1/2] avutil/attributes_internal: Add EXTERN macro for extern+hidden Andreas Rheinhardt

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git