We currently only have exported data symbols within libavcodec, but the concept is easy to extend to other libraries if necessary. The attribute declaration needs to be in a private header though, since we can't use CONFIG_SHARED in public installed headers. Signed-off-by: Martin Storsjö <martin@martin.st>tags/n4.0
| @@ -31,6 +31,8 @@ define RULES | |||||
| $(TOOLS): THISLIB = $(NAME:%=$(LD_LIB)) | $(TOOLS): THISLIB = $(NAME:%=$(LD_LIB)) | ||||
| $(TESTPROGS): THISLIB = $(SUBDIR)$(LIBNAME) | $(TESTPROGS): THISLIB = $(SUBDIR)$(LIBNAME) | ||||
| $(LIBOBJS): CPPFLAGS += -DBUILDING_$(NAME) | |||||
| $(TESTPROGS) $(TOOLS): %$(EXESUF): %.o | $(TESTPROGS) $(TOOLS): %$(EXESUF): %.o | ||||
| $$(LD) $(LDFLAGS) $(LDEXEFLAGS) $$(LD_O) $$(filter %.o,$$^) $$(THISLIB) $(FFEXTRALIBS) $$(EXTRALIBS-$$(*F)) $$(ELIBS) | $$(LD) $(LDFLAGS) $(LDEXEFLAGS) $$(LD_O) $$(filter %.o,$$^) $$(THISLIB) $(FFEXTRALIBS) $$(EXTRALIBS-$$(*F)) $$(ELIBS) | ||||
| @@ -26,6 +26,7 @@ | |||||
| #include "libavutil/internal.h" | #include "libavutil/internal.h" | ||||
| #include "ac3.h" | #include "ac3.h" | ||||
| #include "internal.h" | |||||
| #if CONFIG_HARDCODED_TABLES | #if CONFIG_HARDCODED_TABLES | ||||
| # define HCONST const | # define HCONST const | ||||
| @@ -35,7 +36,7 @@ | |||||
| extern const uint16_t ff_ac3_frame_size_tab[38][3]; | extern const uint16_t ff_ac3_frame_size_tab[38][3]; | ||||
| extern const uint8_t ff_ac3_channels_tab[8]; | extern const uint8_t ff_ac3_channels_tab[8]; | ||||
| extern av_export const uint16_t avpriv_ac3_channel_layout_tab[8]; | |||||
| extern av_export_avcodec const uint16_t avpriv_ac3_channel_layout_tab[8]; | |||||
| extern const uint8_t ff_ac3_enc_channel_map[8][2][6]; | extern const uint8_t ff_ac3_enc_channel_map[8][2][6]; | ||||
| extern const uint8_t ff_ac3_dec_channel_map[8][2][6]; | extern const uint8_t ff_ac3_dec_channel_map[8][2][6]; | ||||
| extern const uint16_t ff_ac3_sample_rate_tab[3]; | extern const uint16_t ff_ac3_sample_rate_tab[3]; | ||||
| @@ -28,12 +28,12 @@ | |||||
| #include <stdint.h> | #include <stdint.h> | ||||
| #include "libavutil/float_dsp.h" | #include "libavutil/float_dsp.h" | ||||
| #include "libavutil/internal.h" | |||||
| #include "avcodec.h" | #include "avcodec.h" | ||||
| #include "dcadsp.h" | #include "dcadsp.h" | ||||
| #include "fmtconvert.h" | #include "fmtconvert.h" | ||||
| #include "get_bits.h" | #include "get_bits.h" | ||||
| #include "internal.h" | |||||
| #define DCA_PRIM_CHANNELS_MAX (7) | #define DCA_PRIM_CHANNELS_MAX (7) | ||||
| #define DCA_ABITS_MAX (32) /* Should be 28 */ | #define DCA_ABITS_MAX (32) /* Should be 28 */ | ||||
| @@ -288,7 +288,7 @@ typedef struct DCAContext { | |||||
| FmtConvertContext fmt_conv; | FmtConvertContext fmt_conv; | ||||
| } DCAContext; | } DCAContext; | ||||
| extern av_export const uint32_t avpriv_dca_sample_rates[16]; | |||||
| extern av_export_avcodec const uint32_t avpriv_dca_sample_rates[16]; | |||||
| /** | /** | ||||
| * Convert bitstream to one representation based on sync marker | * Convert bitstream to one representation based on sync marker | ||||
| @@ -285,4 +285,14 @@ int ff_decode_frame_props(AVCodecContext *avctx, AVFrame *frame); | |||||
| */ | */ | ||||
| AVCPBProperties *ff_add_cpb_side_data(AVCodecContext *avctx); | AVCPBProperties *ff_add_cpb_side_data(AVCodecContext *avctx); | ||||
| #if defined(_MSC_VER) && CONFIG_SHARED | |||||
| #ifdef BUILDING_avcodec | |||||
| # define av_export_avcodec __declspec(dllexport) | |||||
| #else | |||||
| # define av_export_avcodec __declspec(dllimport) | |||||
| #endif | |||||
| #else | |||||
| # define av_export_avcodec | |||||
| #endif | |||||
| #endif /* AVCODEC_INTERNAL_H */ | #endif /* AVCODEC_INTERNAL_H */ | ||||
| @@ -23,18 +23,18 @@ | |||||
| #include <stdint.h> | #include <stdint.h> | ||||
| #include "libavutil/internal.h" | |||||
| #include "internal.h" | |||||
| extern av_export const uint8_t avpriv_mjpeg_bits_dc_luminance[]; | |||||
| extern av_export const uint8_t avpriv_mjpeg_val_dc[]; | |||||
| extern av_export_avcodec const uint8_t avpriv_mjpeg_bits_dc_luminance[]; | |||||
| extern av_export_avcodec const uint8_t avpriv_mjpeg_val_dc[]; | |||||
| extern av_export const uint8_t avpriv_mjpeg_bits_dc_chrominance[]; | |||||
| extern av_export_avcodec const uint8_t avpriv_mjpeg_bits_dc_chrominance[]; | |||||
| extern av_export const uint8_t avpriv_mjpeg_bits_ac_luminance[]; | |||||
| extern av_export const uint8_t avpriv_mjpeg_val_ac_luminance[]; | |||||
| extern av_export_avcodec const uint8_t avpriv_mjpeg_bits_ac_luminance[]; | |||||
| extern av_export_avcodec const uint8_t avpriv_mjpeg_val_ac_luminance[]; | |||||
| extern av_export const uint8_t avpriv_mjpeg_bits_ac_chrominance[]; | |||||
| extern av_export const uint8_t avpriv_mjpeg_val_ac_chrominance[]; | |||||
| extern av_export_avcodec const uint8_t avpriv_mjpeg_bits_ac_chrominance[]; | |||||
| extern av_export_avcodec const uint8_t avpriv_mjpeg_val_ac_chrominance[]; | |||||
| void ff_mjpeg_build_huffman_codes(uint8_t *huff_size, uint16_t *huff_code, | void ff_mjpeg_build_huffman_codes(uint8_t *huff_size, uint16_t *huff_code, | ||||
| const uint8_t *bits_table, | const uint8_t *bits_table, | ||||
| @@ -27,6 +27,7 @@ | |||||
| #include "libavutil/attributes.h" | #include "libavutil/attributes.h" | ||||
| #include "get_bits.h" | #include "get_bits.h" | ||||
| #include "internal.h" | |||||
| #include "put_bits.h" | #include "put_bits.h" | ||||
| typedef struct MPEG4AudioConfig { | typedef struct MPEG4AudioConfig { | ||||
| @@ -44,7 +45,7 @@ typedef struct MPEG4AudioConfig { | |||||
| int frame_length_short; | int frame_length_short; | ||||
| } MPEG4AudioConfig; | } MPEG4AudioConfig; | ||||
| extern av_export const int avpriv_mpeg4audio_sample_rates[16]; | |||||
| extern av_export_avcodec const int avpriv_mpeg4audio_sample_rates[16]; | |||||
| extern const uint8_t ff_mpeg4audio_channels[8]; | extern const uint8_t ff_mpeg4audio_channels[8]; | ||||
| /** | /** | ||||
| @@ -29,13 +29,13 @@ | |||||
| #include <stdint.h> | #include <stdint.h> | ||||
| #include "libavutil/internal.h" | |||||
| #include "internal.h" | |||||
| #define MODE_EXT_MS_STEREO 2 | #define MODE_EXT_MS_STEREO 2 | ||||
| #define MODE_EXT_I_STEREO 1 | #define MODE_EXT_I_STEREO 1 | ||||
| extern av_export const uint16_t avpriv_mpa_bitrate_tab[2][3][15]; | |||||
| extern av_export const uint16_t avpriv_mpa_freq_tab[3]; | |||||
| extern av_export_avcodec const uint16_t avpriv_mpa_bitrate_tab[2][3][15]; | |||||
| extern av_export_avcodec const uint16_t avpriv_mpa_freq_tab[3]; | |||||
| extern const int ff_mpa_sblimit_table[5]; | extern const int ff_mpa_sblimit_table[5]; | ||||
| extern const int ff_mpa_quant_steps[17]; | extern const int ff_mpa_quant_steps[17]; | ||||
| extern const int ff_mpa_quant_bits[17]; | extern const int ff_mpa_quant_bits[17]; | ||||
| @@ -57,12 +57,6 @@ | |||||
| #endif | #endif | ||||
| #endif | #endif | ||||
| #if defined(_MSC_VER) && CONFIG_SHARED | |||||
| # define av_export __declspec(dllimport) | |||||
| #else | |||||
| # define av_export | |||||
| #endif | |||||
| #if HAVE_PRAGMA_DEPRECATED | #if HAVE_PRAGMA_DEPRECATED | ||||
| # if defined(__ICL) | # if defined(__ICL) | ||||
| # define FF_DISABLE_DEPRECATION_WARNINGS __pragma(warning(push)) __pragma(warning(disable:1478)) | # define FF_DISABLE_DEPRECATION_WARNINGS __pragma(warning(push)) __pragma(warning(disable:1478)) | ||||