summaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2017-08-24 22:07:04 +0300
committerMartin Storsjö <martin@martin.st>2017-08-31 14:22:06 +0300
commitabf1c058d1bd0ed1b820ea5e501a4484756f00b0 (patch)
treef2fad10a28333210b238629315577204491576d5 /libavcodec
parente41daa62465036ad36ad0bd14e4936e848d7f07e (diff)
downloadffmpeg-streaming-abf1c058d1bd0ed1b820ea5e501a4484756f00b0.zip
ffmpeg-streaming-abf1c058d1bd0ed1b820ea5e501a4484756f00b0.tar.gz
msvc: Properly specify dllexport for data symbols shared across dll boundaries
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>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/ac3tab.h3
-rw-r--r--libavcodec/dca.h4
-rw-r--r--libavcodec/internal.h10
-rw-r--r--libavcodec/jpegtables.h16
-rw-r--r--libavcodec/mpeg4audio.h3
-rw-r--r--libavcodec/mpegaudiodata.h6
6 files changed, 27 insertions, 15 deletions
diff --git a/libavcodec/ac3tab.h b/libavcodec/ac3tab.h
index 83edec5..4c0122c 100644
--- a/libavcodec/ac3tab.h
+++ b/libavcodec/ac3tab.h
@@ -26,6 +26,7 @@
#include "libavutil/internal.h"
#include "ac3.h"
+#include "internal.h"
#if CONFIG_HARDCODED_TABLES
# define HCONST const
@@ -35,7 +36,7 @@
extern const uint16_t ff_ac3_frame_size_tab[38][3];
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_dec_channel_map[8][2][6];
extern const uint16_t ff_ac3_sample_rate_tab[3];
diff --git a/libavcodec/dca.h b/libavcodec/dca.h
index 787a9c7..b2f5cba 100644
--- a/libavcodec/dca.h
+++ b/libavcodec/dca.h
@@ -28,12 +28,12 @@
#include <stdint.h>
#include "libavutil/float_dsp.h"
-#include "libavutil/internal.h"
#include "avcodec.h"
#include "dcadsp.h"
#include "fmtconvert.h"
#include "get_bits.h"
+#include "internal.h"
#define DCA_PRIM_CHANNELS_MAX (7)
#define DCA_ABITS_MAX (32) /* Should be 28 */
@@ -288,7 +288,7 @@ typedef struct DCAContext {
FmtConvertContext fmt_conv;
} 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
diff --git a/libavcodec/internal.h b/libavcodec/internal.h
index 403fb4a..0efe34f 100644
--- a/libavcodec/internal.h
+++ b/libavcodec/internal.h
@@ -285,4 +285,14 @@ int ff_decode_frame_props(AVCodecContext *avctx, AVFrame *frame);
*/
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 */
diff --git a/libavcodec/jpegtables.h b/libavcodec/jpegtables.h
index 1a909be..44c2aca 100644
--- a/libavcodec/jpegtables.h
+++ b/libavcodec/jpegtables.h
@@ -23,18 +23,18 @@
#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,
const uint8_t *bits_table,
diff --git a/libavcodec/mpeg4audio.h b/libavcodec/mpeg4audio.h
index 01f30c6..0a09058 100644
--- a/libavcodec/mpeg4audio.h
+++ b/libavcodec/mpeg4audio.h
@@ -27,6 +27,7 @@
#include "libavutil/attributes.h"
#include "get_bits.h"
+#include "internal.h"
#include "put_bits.h"
typedef struct MPEG4AudioConfig {
@@ -44,7 +45,7 @@ typedef struct MPEG4AudioConfig {
int frame_length_short;
} 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];
/**
diff --git a/libavcodec/mpegaudiodata.h b/libavcodec/mpegaudiodata.h
index 2b8ff65..1609f48 100644
--- a/libavcodec/mpegaudiodata.h
+++ b/libavcodec/mpegaudiodata.h
@@ -29,13 +29,13 @@
#include <stdint.h>
-#include "libavutil/internal.h"
+#include "internal.h"
#define MODE_EXT_MS_STEREO 2
#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_quant_steps[17];
extern const int ff_mpa_quant_bits[17];
OpenPOWER on IntegriCloud