[FFmpeg-cvslog] Merge commit 'abf1c058d1bd0ed1b820ea5e501a4484756f00b0'
James Almer
git at videolan.org
Sat Nov 11 16:29:37 EET 2017
ffmpeg | branch: master | James Almer <jamrial at gmail.com> | Sat Nov 11 10:32:09 2017 -0300| [87865bf6c7001e6fd8c536a247f71a9a426c3bd0] | committer: James Almer
Merge commit 'abf1c058d1bd0ed1b820ea5e501a4484756f00b0'
* commit 'abf1c058d1bd0ed1b820ea5e501a4484756f00b0':
msvc: Properly specify dllexport for data symbols shared across dll boundaries
Merged-by: James Almer <jamrial at gmail.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=87865bf6c7001e6fd8c536a247f71a9a426c3bd0
---
ffbuild/library.mak | 2 ++
libavcodec/ac3tab.h | 3 ++-
libavcodec/dca.h | 4 ++--
libavcodec/internal.h | 10 ++++++++++
libavcodec/jpegtables.h | 16 ++++++++--------
libavcodec/mpeg4audio.h | 3 ++-
libavcodec/mpegaudiodata.h | 6 +++---
libavcodec/raw.h | 5 +++--
libavutil/internal.h | 8 ++++++--
libavutil/xga_font_data.h | 4 ++--
10 files changed, 40 insertions(+), 21 deletions(-)
diff --git a/ffbuild/library.mak b/ffbuild/library.mak
index ed269fdab6..f85ee1ebbf 100644
--- a/ffbuild/library.mak
+++ b/ffbuild/library.mak
@@ -31,6 +31,8 @@ define RULES
$(TOOLS): THISLIB = $(FULLNAME:%=$(LD_LIB))
$(TESTPROGS): THISLIB = $(SUBDIR)$(LIBNAME)
+$(LIBOBJS): CPPFLAGS += -DBUILDING_$(NAME)
+
$(TESTPROGS) $(TOOLS): %$(EXESUF): %.o
$$(LD) $(LDFLAGS) $(LDEXEFLAGS) $$(LD_O) $$(filter %.o,$$^) $$(THISLIB) $(FFEXTRALIBS) $$(EXTRALIBS-$$(*F)) $$(ELIBS)
diff --git a/libavcodec/ac3tab.h b/libavcodec/ac3tab.h
index f529fc8077..ade6fb15e7 100644
--- a/libavcodec/ac3tab.h
+++ b/libavcodec/ac3tab.h
@@ -26,10 +26,11 @@
#include "libavutil/internal.h"
#include "ac3.h"
+#include "internal.h"
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 dcc7c7b395..e96c589c02 100644
--- a/libavcodec/dca.h
+++ b/libavcodec/dca.h
@@ -29,10 +29,10 @@
#include <stdint.h>
#include "libavutil/common.h"
-#include "libavutil/internal.h"
#include "libavutil/intreadwrite.h"
#include "get_bits.h"
+#include "internal.h"
#define DCA_CORE_FRAME_HEADER_SIZE 18
@@ -195,7 +195,7 @@ enum DCADownMixType {
DCA_DMIX_TYPE_COUNT
};
-extern av_export const uint32_t avpriv_dca_sample_rates[16];
+extern av_export_avcodec const uint32_t avpriv_dca_sample_rates[16];
extern const uint32_t ff_dca_sampling_freqs[16];
extern const uint8_t ff_dca_freq_ranges[16];
diff --git a/libavcodec/internal.h b/libavcodec/internal.h
index 948d5461c1..522032b108 100644
--- a/libavcodec/internal.h
+++ b/libavcodec/internal.h
@@ -414,4 +414,14 @@ int ff_alloc_a53_sei(const AVFrame *frame, size_t prefix_len,
*/
int64_t ff_guess_coded_bitrate(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 6833b4b166..aa38df4033 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 34471782ab..b9cea8af17 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 29a26588b2..a188150cbf 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];
diff --git a/libavcodec/raw.h b/libavcodec/raw.h
index 24bf4cc55a..28a27b1f9e 100644
--- a/libavcodec/raw.h
+++ b/libavcodec/raw.h
@@ -28,6 +28,7 @@
#define AVCODEC_RAW_H
#include "avcodec.h"
+#include "internal.h"
#include "libavutil/internal.h"
typedef struct PixelFormatTag {
@@ -41,7 +42,7 @@ const struct PixelFormatTag *avpriv_get_raw_pix_fmt_tags(void);
enum AVPixelFormat avpriv_find_pix_fmt(const PixelFormatTag *tags, unsigned int fourcc);
-extern av_export const PixelFormatTag avpriv_pix_fmt_bps_avi[];
-extern av_export const PixelFormatTag avpriv_pix_fmt_bps_mov[];
+extern av_export_avcodec const PixelFormatTag avpriv_pix_fmt_bps_avi[];
+extern av_export_avcodec const PixelFormatTag avpriv_pix_fmt_bps_mov[];
#endif /* AVCODEC_RAW_H */
diff --git a/libavutil/internal.h b/libavutil/internal.h
index 6f92f71e8e..c4bf1466ef 100644
--- a/libavutil/internal.h
+++ b/libavutil/internal.h
@@ -64,9 +64,13 @@
#endif
#if defined(_MSC_VER) && CONFIG_SHARED
-# define av_export __declspec(dllimport)
+#ifdef BUILDING_avutil
+# define av_export_avutil __declspec(dllexport)
#else
-# define av_export
+# define av_export_avutil __declspec(dllimport)
+#endif
+#else
+# define av_export_avutil
#endif
#if HAVE_PRAGMA_DEPRECATED
diff --git a/libavutil/xga_font_data.h b/libavutil/xga_font_data.h
index 5e40f542e4..69dc337120 100644
--- a/libavutil/xga_font_data.h
+++ b/libavutil/xga_font_data.h
@@ -29,7 +29,7 @@
#include <stdint.h>
#include "internal.h"
-extern av_export const uint8_t avpriv_cga_font[2048];
-extern av_export const uint8_t avpriv_vga16_font[4096];
+extern av_export_avutil const uint8_t avpriv_cga_font[2048];
+extern av_export_avutil const uint8_t avpriv_vga16_font[4096];
#endif /* AVUTIL_XGA_FONT_DATA_H */
======================================================================
diff --cc ffbuild/library.mak
index ed269fdab6,0000000000..f85ee1ebbf
mode 100644,000000..100644
--- a/ffbuild/library.mak
+++ b/ffbuild/library.mak
@@@ -1,107 -1,0 +1,109 @@@
+include $(SRC_PATH)/ffbuild/common.mak
+
+ifeq (,$(filter %clean config,$(MAKECMDGOALS)))
+-include $(SUBDIR)lib$(NAME).version
+endif
+
+LIBVERSION := $(lib$(NAME)_VERSION)
+LIBMAJOR := $(lib$(NAME)_VERSION_MAJOR)
+LIBMINOR := $(lib$(NAME)_VERSION_MINOR)
+INCINSTDIR := $(INCDIR)/lib$(NAME)
+
+INSTHEADERS := $(INSTHEADERS) $(HEADERS:%=$(SUBDIR)%)
+
+all-$(CONFIG_STATIC): $(SUBDIR)$(LIBNAME) $(SUBDIR)lib$(FULLNAME).pc
+all-$(CONFIG_SHARED): $(SUBDIR)$(SLIBNAME) $(SUBDIR)lib$(FULLNAME).pc
+
+LIBOBJS := $(OBJS) $(SUBDIR)%.h.o $(TESTOBJS)
+$(LIBOBJS) $(LIBOBJS:.o=.s) $(LIBOBJS:.o=.i): CPPFLAGS += -DHAVE_AV_CONFIG_H
+
+$(SUBDIR)$(LIBNAME): $(OBJS)
+ $(RM) $@
+ $(AR) $(ARFLAGS) $(AR_O) $^
+ $(RANLIB) $@
+
+install-headers: install-lib$(NAME)-headers install-lib$(NAME)-pkgconfig
+
+install-libs-$(CONFIG_STATIC): install-lib$(NAME)-static
+install-libs-$(CONFIG_SHARED): install-lib$(NAME)-shared
+
+define RULES
+$(TOOLS): THISLIB = $(FULLNAME:%=$(LD_LIB))
+$(TESTPROGS): THISLIB = $(SUBDIR)$(LIBNAME)
+
++$(LIBOBJS): CPPFLAGS += -DBUILDING_$(NAME)
++
+$(TESTPROGS) $(TOOLS): %$(EXESUF): %.o
+ $$(LD) $(LDFLAGS) $(LDEXEFLAGS) $$(LD_O) $$(filter %.o,$$^) $$(THISLIB) $(FFEXTRALIBS) $$(EXTRALIBS-$$(*F)) $$(ELIBS)
+
+$(SUBDIR)lib$(NAME).version: $(SUBDIR)version.h | $(SUBDIR)
+ $$(M) $$(SRC_PATH)/ffbuild/libversion.sh $(NAME) $$< > $$@
+
+$(SUBDIR)lib$(FULLNAME).pc: $(SUBDIR)version.h | $(SUBDIR)
+ $$(M) $$(SRC_PATH)/ffbuild/pkgconfig_generate.sh $(NAME) "$(DESC)"
+
+$(SUBDIR)lib$(NAME).ver: $(SUBDIR)lib$(NAME).v $(OBJS)
+ $$(M)sed 's/MAJOR/$(lib$(NAME)_VERSION_MAJOR)/' $$< | $(VERSION_SCRIPT_POSTPROCESS_CMD) > $$@
+
+$(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR)
+ $(Q)cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME)
+
+$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SLIBOBJS) $(SUBDIR)lib$(NAME).ver
+ $(SLIB_CREATE_DEF_CMD)
+ $$(LD) $(SHFLAGS) $(LDFLAGS) $(LDSOFLAGS) $$(LD_O) $$(filter %.o,$$^) $(FFEXTRALIBS)
+ $(SLIB_EXTRA_CMD)
+
+ifdef SUBDIR
+$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(DEP_LIBS)
+endif
+
+clean::
+ $(RM) $(addprefix $(SUBDIR),$(CLEANFILES) $(CLEANSUFFIXES) $(LIBSUFFIXES)) \
+ $(CLEANSUFFIXES:%=$(SUBDIR)$(ARCH)/%) $(CLEANSUFFIXES:%=$(SUBDIR)tests/%)
+
+distclean:: clean
+ $(RM) $(DISTCLEANSUFFIXES:%=$(SUBDIR)%) $(DISTCLEANSUFFIXES:%=$(SUBDIR)$(ARCH)/%) \
+ $(DISTCLEANSUFFIXES:%=$(SUBDIR)tests/%)
+
+install-lib$(NAME)-shared: $(SUBDIR)$(SLIBNAME)
+ $(Q)mkdir -p "$(SHLIBDIR)"
+ $$(INSTALL) -m 755 $$< "$(SHLIBDIR)/$(SLIB_INSTALL_NAME)"
+ $$(STRIP) "$(SHLIBDIR)/$(SLIB_INSTALL_NAME)"
+ $(Q)$(foreach F,$(SLIB_INSTALL_LINKS),(cd "$(SHLIBDIR)" && $(LN_S) $(SLIB_INSTALL_NAME) $(F));)
+ $(if $(SLIB_INSTALL_EXTRA_SHLIB),$$(INSTALL) -m 644 $(SLIB_INSTALL_EXTRA_SHLIB:%=$(SUBDIR)%) "$(SHLIBDIR)")
+ $(if $(SLIB_INSTALL_EXTRA_LIB),$(Q)mkdir -p "$(LIBDIR)")
+ $(if $(SLIB_INSTALL_EXTRA_LIB),$$(INSTALL) -m 644 $(SLIB_INSTALL_EXTRA_LIB:%=$(SUBDIR)%) "$(LIBDIR)")
+
+install-lib$(NAME)-static: $(SUBDIR)$(LIBNAME)
+ $(Q)mkdir -p "$(LIBDIR)"
+ $$(INSTALL) -m 644 $$< "$(LIBDIR)"
+ $(LIB_INSTALL_EXTRA_CMD)
+
+install-lib$(NAME)-headers: $(addprefix $(SUBDIR),$(HEADERS) $(BUILT_HEADERS))
+ $(Q)mkdir -p "$(INCINSTDIR)"
+ $$(INSTALL) -m 644 $$^ "$(INCINSTDIR)"
+
+install-lib$(NAME)-pkgconfig: $(SUBDIR)lib$(FULLNAME).pc
+ $(Q)mkdir -p "$(PKGCONFIGDIR)"
+ $$(INSTALL) -m 644 $$^ "$(PKGCONFIGDIR)"
+
+uninstall-libs::
+ -$(RM) "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR)" \
+ "$(SHLIBDIR)/$(SLIBNAME)" \
+ "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)"
+ -$(RM) $(SLIB_INSTALL_EXTRA_SHLIB:%="$(SHLIBDIR)/%")
+ -$(RM) $(SLIB_INSTALL_EXTRA_LIB:%="$(LIBDIR)/%")
+ -$(RM) "$(LIBDIR)/$(LIBNAME)"
+
+uninstall-headers::
+ $(RM) $(addprefix "$(INCINSTDIR)/",$(HEADERS) $(BUILT_HEADERS))
+ $(RM) "$(PKGCONFIGDIR)/lib$(FULLNAME).pc"
+ -rmdir "$(INCINSTDIR)"
+endef
+
+$(eval $(RULES))
+
+$(TOOLS): $(DEP_LIBS) $(SUBDIR)$($(CONFIG_SHARED:yes=S)LIBNAME)
+$(TESTPROGS): $(DEP_LIBS) $(SUBDIR)$(LIBNAME)
+
+testprogs: $(TESTPROGS)
diff --cc libavcodec/ac3tab.h
index f529fc8077,4c0122c39d..ade6fb15e7
--- a/libavcodec/ac3tab.h
+++ b/libavcodec/ac3tab.h
@@@ -26,10 -26,17 +26,11 @@@
#include "libavutil/internal.h"
#include "ac3.h"
+ #include "internal.h"
-#if CONFIG_HARDCODED_TABLES
-# define HCONST const
-#else
-# define HCONST
-#endif
-
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 --cc libavcodec/dca.h
index dcc7c7b395,b2f5cbacf4..e96c589c02
--- a/libavcodec/dca.h
+++ b/libavcodec/dca.h
@@@ -28,179 -27,268 +28,179 @@@
#include <stdint.h>
-#include "libavutil/float_dsp.h"
+#include "libavutil/common.h"
- #include "libavutil/internal.h"
+#include "libavutil/intreadwrite.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 */
-#define DCA_SUBSUBFRAMES_MAX (4)
-#define DCA_SUBFRAMES_MAX (16)
-#define DCA_BLOCKS_MAX (16)
-#define DCA_LFE_MAX (3)
+#define DCA_CORE_FRAME_HEADER_SIZE 18
+
+enum DCAParseError {
+ DCA_PARSE_ERROR_SYNC_WORD = -1,
+ DCA_PARSE_ERROR_DEFICIT_SAMPLES = -2,
+ DCA_PARSE_ERROR_PCM_BLOCKS = -3,
+ DCA_PARSE_ERROR_FRAME_SIZE = -4,
+ DCA_PARSE_ERROR_AMODE = -5,
+ DCA_PARSE_ERROR_SAMPLE_RATE = -6,
+ DCA_PARSE_ERROR_RESERVED_BIT = -7,
+ DCA_PARSE_ERROR_LFE_FLAG = -8,
+ DCA_PARSE_ERROR_PCM_RES = -9,
+};
-#define DCA_PRIM_CHANNELS_MAX (7)
-#define DCA_ABITS_MAX (32) /* Should be 28 */
-#define DCA_SUBSUBFRAMES_MAX (4)
-#define DCA_SUBFRAMES_MAX (16)
-#define DCA_BLOCKS_MAX (16)
-#define DCA_LFE_MAX (3)
-#define DCA_XLL_FBANDS_MAX (4)
-#define DCA_XLL_SEGMENTS_MAX (16)
-#define DCA_XLL_CHSETS_MAX (16)
-#define DCA_XLL_CHANNELS_MAX (16)
-#define DCA_XLL_AORDER_MAX (15)
+typedef struct DCACoreFrameHeader {
+ uint8_t normal_frame; ///< Frame type
+ uint8_t deficit_samples; ///< Deficit sample count
+ uint8_t crc_present; ///< CRC present flag
+ uint8_t npcmblocks; ///< Number of PCM sample blocks
+ uint16_t frame_size; ///< Primary frame byte size
+ uint8_t audio_mode; ///< Audio channel arrangement
+ uint8_t sr_code; ///< Core audio sampling frequency
+ uint8_t br_code; ///< Transmission bit rate
+ uint8_t drc_present; ///< Embedded dynamic range flag
+ uint8_t ts_present; ///< Embedded time stamp flag
+ uint8_t aux_present; ///< Auxiliary data flag
+ uint8_t hdcd_master; ///< HDCD mastering flag
+ uint8_t ext_audio_type; ///< Extension audio descriptor flag
+ uint8_t ext_audio_present; ///< Extended coding flag
+ uint8_t sync_ssf; ///< Audio sync word insertion flag
+ uint8_t lfe_present; ///< Low frequency effects flag
+ uint8_t predictor_history; ///< Predictor history flag switch
+ uint8_t filter_perfect; ///< Multirate interpolator switch
+ uint8_t encoder_rev; ///< Encoder software revision
+ uint8_t copy_hist; ///< Copy history
+ uint8_t pcmr_code; ///< Source PCM resolution
+ uint8_t sumdiff_front; ///< Front sum/difference flag
+ uint8_t sumdiff_surround; ///< Surround sum/difference flag
+ uint8_t dn_code; ///< Dialog normalization / unspecified
+} DCACoreFrameHeader;
+
+enum DCASpeaker {
+ DCA_SPEAKER_C, DCA_SPEAKER_L, DCA_SPEAKER_R, DCA_SPEAKER_Ls,
+ DCA_SPEAKER_Rs, DCA_SPEAKER_LFE1, DCA_SPEAKER_Cs, DCA_SPEAKER_Lsr,
+ DCA_SPEAKER_Rsr, DCA_SPEAKER_Lss, DCA_SPEAKER_Rss, DCA_SPEAKER_Lc,
+ DCA_SPEAKER_Rc, DCA_SPEAKER_Lh, DCA_SPEAKER_Ch, DCA_SPEAKER_Rh,
+ DCA_SPEAKER_LFE2, DCA_SPEAKER_Lw, DCA_SPEAKER_Rw, DCA_SPEAKER_Oh,
+ DCA_SPEAKER_Lhs, DCA_SPEAKER_Rhs, DCA_SPEAKER_Chr, DCA_SPEAKER_Lhr,
+ DCA_SPEAKER_Rhr, DCA_SPEAKER_Cl, DCA_SPEAKER_Ll, DCA_SPEAKER_Rl,
+ DCA_SPEAKER_RSV1, DCA_SPEAKER_RSV2, DCA_SPEAKER_RSV3, DCA_SPEAKER_RSV4,
+
+ DCA_SPEAKER_COUNT
+};
-/* Arbitrary limit; not sure what the maximum really is, but much larger. */
-#define DCA_XLL_DMIX_NCOEFFS_MAX (18)
+enum DCASpeakerMask {
+ DCA_SPEAKER_MASK_C = 0x00000001,
+ DCA_SPEAKER_MASK_L = 0x00000002,
+ DCA_SPEAKER_MASK_R = 0x00000004,
+ DCA_SPEAKER_MASK_Ls = 0x00000008,
+ DCA_SPEAKER_MASK_Rs = 0x00000010,
+ DCA_SPEAKER_MASK_LFE1 = 0x00000020,
+ DCA_SPEAKER_MASK_Cs = 0x00000040,
+ DCA_SPEAKER_MASK_Lsr = 0x00000080,
+ DCA_SPEAKER_MASK_Rsr = 0x00000100,
+ DCA_SPEAKER_MASK_Lss = 0x00000200,
+ DCA_SPEAKER_MASK_Rss = 0x00000400,
+ DCA_SPEAKER_MASK_Lc = 0x00000800,
+ DCA_SPEAKER_MASK_Rc = 0x00001000,
+ DCA_SPEAKER_MASK_Lh = 0x00002000,
+ DCA_SPEAKER_MASK_Ch = 0x00004000,
+ DCA_SPEAKER_MASK_Rh = 0x00008000,
+ DCA_SPEAKER_MASK_LFE2 = 0x00010000,
+ DCA_SPEAKER_MASK_Lw = 0x00020000,
+ DCA_SPEAKER_MASK_Rw = 0x00040000,
+ DCA_SPEAKER_MASK_Oh = 0x00080000,
+ DCA_SPEAKER_MASK_Lhs = 0x00100000,
+ DCA_SPEAKER_MASK_Rhs = 0x00200000,
+ DCA_SPEAKER_MASK_Chr = 0x00400000,
+ DCA_SPEAKER_MASK_Lhr = 0x00800000,
+ DCA_SPEAKER_MASK_Rhr = 0x01000000,
+ DCA_SPEAKER_MASK_Cl = 0x02000000,
+ DCA_SPEAKER_MASK_Ll = 0x04000000,
+ DCA_SPEAKER_MASK_Rl = 0x08000000,
+};
-#define DCA_MAX_FRAME_SIZE 16384
-#define DCA_MAX_EXSS_HEADER_SIZE 4096
+#define DCA_SPEAKER_LAYOUT_MONO (DCA_SPEAKER_MASK_C)
+#define DCA_SPEAKER_LAYOUT_STEREO (DCA_SPEAKER_MASK_L | DCA_SPEAKER_MASK_R)
+#define DCA_SPEAKER_LAYOUT_2POINT1 (DCA_SPEAKER_LAYOUT_STEREO | DCA_SPEAKER_MASK_LFE1)
+#define DCA_SPEAKER_LAYOUT_3_0 (DCA_SPEAKER_LAYOUT_STEREO | DCA_SPEAKER_MASK_C)
+#define DCA_SPEAKER_LAYOUT_2_1 (DCA_SPEAKER_LAYOUT_STEREO | DCA_SPEAKER_MASK_Cs)
+#define DCA_SPEAKER_LAYOUT_3_1 (DCA_SPEAKER_LAYOUT_3_0 | DCA_SPEAKER_MASK_Cs)
+#define DCA_SPEAKER_LAYOUT_2_2 (DCA_SPEAKER_LAYOUT_STEREO | DCA_SPEAKER_MASK_Ls | DCA_SPEAKER_MASK_Rs)
+#define DCA_SPEAKER_LAYOUT_5POINT0 (DCA_SPEAKER_LAYOUT_3_0 | DCA_SPEAKER_MASK_Ls | DCA_SPEAKER_MASK_Rs)
+#define DCA_SPEAKER_LAYOUT_5POINT1 (DCA_SPEAKER_LAYOUT_5POINT0 | DCA_SPEAKER_MASK_LFE1)
+#define DCA_SPEAKER_LAYOUT_7POINT0_WIDE (DCA_SPEAKER_LAYOUT_5POINT0 | DCA_SPEAKER_MASK_Lw | DCA_SPEAKER_MASK_Rw)
+#define DCA_SPEAKER_LAYOUT_7POINT1_WIDE (DCA_SPEAKER_LAYOUT_7POINT0_WIDE | DCA_SPEAKER_MASK_LFE1)
+
+#define DCA_HAS_STEREO(mask) \
+ ((mask & DCA_SPEAKER_LAYOUT_STEREO) == DCA_SPEAKER_LAYOUT_STEREO)
+
+enum DCASpeakerPair {
+ DCA_SPEAKER_PAIR_C = 0x0001,
+ DCA_SPEAKER_PAIR_LR = 0x0002,
+ DCA_SPEAKER_PAIR_LsRs = 0x0004,
+ DCA_SPEAKER_PAIR_LFE1 = 0x0008,
+ DCA_SPEAKER_PAIR_Cs = 0x0010,
+ DCA_SPEAKER_PAIR_LhRh = 0x0020,
+ DCA_SPEAKER_PAIR_LsrRsr = 0x0040,
+ DCA_SPEAKER_PAIR_Ch = 0x0080,
+ DCA_SPEAKER_PAIR_Oh = 0x0100,
+ DCA_SPEAKER_PAIR_LcRc = 0x0200,
+ DCA_SPEAKER_PAIR_LwRw = 0x0400,
+ DCA_SPEAKER_PAIR_LssRss = 0x0800,
+ DCA_SPEAKER_PAIR_LFE2 = 0x1000,
+ DCA_SPEAKER_PAIR_LhsRhs = 0x2000,
+ DCA_SPEAKER_PAIR_Chr = 0x4000,
+ DCA_SPEAKER_PAIR_LhrRhr = 0x8000
+};
-#define DCA_BUFFER_PADDING_SIZE 1024
+/**
+ * Return number of individual channels in DCASpeakerPair mask
+ */
+static inline int ff_dca_count_chs_for_mask(unsigned int mask)
+{
+ return av_popcount((mask & 0xffff) | ((mask & 0xae66) << 16));
+}
+
+enum DCARepresentationType {
+ DCA_REPR_TYPE_LtRt = 2,
+ DCA_REPR_TYPE_LhRh = 3
+};
enum DCAExtensionMask {
- DCA_EXT_CORE = 0x001, ///< core in core substream
- DCA_EXT_XXCH = 0x002, ///< XXCh channels extension in core substream
- DCA_EXT_X96 = 0x004, ///< 96/24 extension in core substream
- DCA_EXT_XCH = 0x008, ///< XCh channel extension in core substream
- DCA_EXT_EXSS_CORE = 0x010, ///< core in ExSS (extension substream)
- DCA_EXT_EXSS_XBR = 0x020, ///< extended bitrate extension in ExSS
- DCA_EXT_EXSS_XXCH = 0x040, ///< XXCh channels extension in ExSS
- DCA_EXT_EXSS_X96 = 0x080, ///< 96/24 extension in ExSS
- DCA_EXT_EXSS_LBR = 0x100, ///< low bitrate component in ExSS
- DCA_EXT_EXSS_XLL = 0x200, ///< lossless extension in ExSS
+ DCA_CSS_CORE = 0x001,
+ DCA_CSS_XXCH = 0x002,
+ DCA_CSS_X96 = 0x004,
+ DCA_CSS_XCH = 0x008,
+ DCA_CSS_MASK = 0x00f,
+ DCA_EXSS_CORE = 0x010,
+ DCA_EXSS_XBR = 0x020,
+ DCA_EXSS_XXCH = 0x040,
+ DCA_EXSS_X96 = 0x080,
+ DCA_EXSS_LBR = 0x100,
+ DCA_EXSS_XLL = 0x200,
+ DCA_EXSS_RSV1 = 0x400,
+ DCA_EXSS_RSV2 = 0x800,
+ DCA_EXSS_MASK = 0xff0,
};
-typedef struct XllChSetSubHeader {
- int channels; ///< number of channels in channel set, at most 16
- int residual_encode; ///< residual channel encoding
- int bit_resolution; ///< input sample bit-width
- int bit_width; ///< original input sample bit-width
- int sampling_frequency; ///< sampling frequency
- int samp_freq_interp; ///< sampling frequency interpolation multiplier
- int replacement_set; ///< replacement channel set group
- int active_replace_set; ///< current channel set is active channel set
- int primary_ch_set;
- int downmix_coeff_code_embedded;
- int downmix_embedded;
- int downmix_type;
- int hier_chset; ///< hierarchical channel set
- int downmix_ncoeffs;
- int downmix_coeffs[DCA_XLL_DMIX_NCOEFFS_MAX];
- int ch_mask_enabled;
- int ch_mask;
- int mapping_coeffs_present;
- int num_freq_bands;
-
- /* m_nOrigChanOrder */
- uint8_t orig_chan_order[DCA_XLL_FBANDS_MAX][DCA_XLL_CHANNELS_MAX];
- uint8_t orig_chan_order_inv[DCA_XLL_FBANDS_MAX][DCA_XLL_CHANNELS_MAX];
- /* Coefficients for channel pairs (at most 8), m_anPWChPairsCoeffs */
- int8_t pw_ch_pairs_coeffs[DCA_XLL_FBANDS_MAX][DCA_XLL_CHANNELS_MAX/2];
- /* m_nCurrHighestLPCOrder */
- uint8_t adapt_order_max[DCA_XLL_FBANDS_MAX];
- /* m_pnAdaptPredOrder */
- uint8_t adapt_order[DCA_XLL_FBANDS_MAX][DCA_XLL_CHANNELS_MAX];
- /* m_pnFixedPredOrder */
- uint8_t fixed_order[DCA_XLL_FBANDS_MAX][DCA_XLL_CHANNELS_MAX];
- /* m_pnLPCReflCoeffsQInd, unsigned version */
- uint8_t lpc_refl_coeffs_q_ind[DCA_XLL_FBANDS_MAX]
- [DCA_XLL_CHANNELS_MAX][DCA_XLL_AORDER_MAX];
-
- int lsb_fsize[DCA_XLL_FBANDS_MAX];
- int8_t scalable_lsbs[DCA_XLL_FBANDS_MAX][DCA_XLL_CHANNELS_MAX];
- int8_t bit_width_adj_per_ch[DCA_XLL_FBANDS_MAX][DCA_XLL_CHANNELS_MAX];
-} XllChSetSubHeader;
-
-typedef struct XllNavi {
- GetBitContext gb; // Context for parsing the data segments
- unsigned band_size[DCA_XLL_FBANDS_MAX];
- unsigned segment_size[DCA_XLL_FBANDS_MAX][DCA_XLL_SEGMENTS_MAX];
- unsigned chset_size[DCA_XLL_FBANDS_MAX][DCA_XLL_SEGMENTS_MAX][DCA_XLL_CHSETS_MAX];
-} XllNavi;
-
-typedef struct QMF64_table {
- float dct4_coeff[32][32];
- float dct2_coeff[32][32];
- float rcos[32];
- float rsin[32];
-} QMF64_table;
-
-/* Primary audio coding header */
-typedef struct DCAAudioHeader {
- int subband_activity[DCA_PRIM_CHANNELS_MAX]; ///< subband activity count
- int vq_start_subband[DCA_PRIM_CHANNELS_MAX]; ///< high frequency vq start subband
- int joint_intensity[DCA_PRIM_CHANNELS_MAX]; ///< joint intensity coding index
- int transient_huffman[DCA_PRIM_CHANNELS_MAX]; ///< transient mode code book
- int scalefactor_huffman[DCA_PRIM_CHANNELS_MAX]; ///< scale factor code book
- int bitalloc_huffman[DCA_PRIM_CHANNELS_MAX]; ///< bit allocation quantizer select
- int quant_index_huffman[DCA_PRIM_CHANNELS_MAX][DCA_ABITS_MAX]; ///< quantization index codebook select
- uint32_t scalefactor_adj[DCA_PRIM_CHANNELS_MAX][DCA_ABITS_MAX]; ///< scale factor adjustment
-
- int subframes; ///< number of subframes
- int total_channels; ///< number of channels including extensions
- int prim_channels; ///< number of primary audio channels
-} DCAAudioHeader;
-
-typedef struct DCAChan {
- DECLARE_ALIGNED(32, int32_t, subband_samples)[DCA_BLOCKS_MAX][DCA_SUBBANDS][SAMPLES_PER_SUBBAND];
-
- /* Subband samples history (for ADPCM) */
- DECLARE_ALIGNED(32, int32_t, subband_samples_hist)[DCA_SUBBANDS][4];
- int hist_index;
-
- /* Half size is sufficient for core decoding, but for 96 kHz data
- * we need QMF with 64 subbands and 1024 samples. */
- DECLARE_ALIGNED(32, float, subband_fir_hist)[1024];
- DECLARE_ALIGNED(32, float, subband_fir_noidea)[64];
-
- /* Primary audio coding side information */
- int prediction_mode[DCA_SUBBANDS]; ///< prediction mode (ADPCM used or not)
- int prediction_vq[DCA_SUBBANDS]; ///< prediction VQ coefs
- int bitalloc[DCA_SUBBANDS]; ///< bit allocation index
- int transition_mode[DCA_SUBBANDS]; ///< transition mode (transients)
- int32_t scale_factor[DCA_SUBBANDS][2];///< scale factors (2 if transient)
- int joint_huff; ///< joint subband scale factors codebook
- int joint_scale_factor[DCA_SUBBANDS]; ///< joint subband scale factors
-
- int32_t high_freq_vq[DCA_SUBBANDS]; ///< VQ encoded high frequency subbands
-} DCAChan;
-
-
-typedef struct DCAContext {
- AVClass *class; ///< class for AVOptions
- AVCodecContext *avctx;
- /* Frame header */
- int frame_type; ///< type of the current frame
- int samples_deficit; ///< deficit sample count
- int crc_present; ///< crc is present in the bitstream
- int sample_blocks; ///< number of PCM sample blocks
- int frame_size; ///< primary frame byte size
- int amode; ///< audio channels arrangement
- int sample_rate; ///< audio sampling rate
- int bit_rate; ///< transmission bit rate
- int bit_rate_index; ///< transmission bit rate index
-
- int dynrange; ///< embedded dynamic range flag
- int timestamp; ///< embedded time stamp flag
- int aux_data; ///< auxiliary data flag
- int hdcd; ///< source material is mastered in HDCD
- int ext_descr; ///< extension audio descriptor flag
- int ext_coding; ///< extended coding flag
- int aspf; ///< audio sync word insertion flag
- int lfe; ///< low frequency effects flag
- int predictor_history; ///< predictor history flag
- int header_crc; ///< header crc check bytes
- int multirate_inter; ///< multirate interpolator switch
- int version; ///< encoder software revision
- int copy_history; ///< copy history
- int source_pcm_res; ///< source pcm resolution
- int front_sum; ///< front sum/difference flag
- int surround_sum; ///< surround sum/difference flag
- int dialog_norm; ///< dialog normalisation parameter
+enum DCADownMixType {
+ DCA_DMIX_TYPE_1_0,
+ DCA_DMIX_TYPE_LoRo,
+ DCA_DMIX_TYPE_LtRt,
+ DCA_DMIX_TYPE_3_0,
+ DCA_DMIX_TYPE_2_1,
+ DCA_DMIX_TYPE_2_2,
+ DCA_DMIX_TYPE_3_1,
- /* Primary audio coding header */
- DCAAudioHeader audio_header;
-
- /* Primary audio coding side information */
- int subsubframes[DCA_SUBFRAMES_MAX]; ///< number of subsubframes
- int partial_samples[DCA_SUBFRAMES_MAX]; ///< partial subsubframe samples count
- float downmix_coef[DCA_PRIM_CHANNELS_MAX + 1][2]; ///< stereo downmix coefficients
- int dynrange_coef; ///< dynamic range coefficient
-
- /* Core substream's embedded downmix coefficients (cf. ETSI TS 102 114 V1.4.1)
- * Input: primary audio channels (incl. LFE if present)
- * Output: downmix audio channels (up to 4, no LFE) */
- uint8_t core_downmix; ///< embedded downmix coefficients available
- uint8_t core_downmix_amode; ///< audio channel arrangement of embedded downmix
- uint16_t core_downmix_codes[DCA_PRIM_CHANNELS_MAX + 1][4]; ///< embedded downmix coefficients (9-bit codes)
-
-
- float lfe_data[2 * DCA_LFE_MAX * (DCA_BLOCKS_MAX + 4)]; ///< Low frequency effect data
- int lfe_scale_factor;
-
- /* Subband samples history (for ADPCM) */
- DECLARE_ALIGNED(32, float, raXin)[32];
-
- DCAChan dca_chan[DCA_PRIM_CHANNELS_MAX];
-
- int output; ///< type of output
-
- float *samples_chanptr[DCA_PRIM_CHANNELS_MAX + 1];
- float *extra_channels[DCA_PRIM_CHANNELS_MAX + 1];
- uint8_t *extra_channels_buffer;
- unsigned int extra_channels_buffer_size;
-
- uint8_t dca_buffer[DCA_MAX_FRAME_SIZE + DCA_MAX_EXSS_HEADER_SIZE + DCA_BUFFER_PADDING_SIZE];
- int dca_buffer_size; ///< how much data is in the dca_buffer
-
- const int8_t *channel_order_tab; ///< channel reordering table, lfe and non lfe
- GetBitContext gb;
- /* Current position in DCA frame */
- int current_subframe;
- int current_subsubframe;
-
- int core_ext_mask; ///< present extensions in the core substream
- int exss_ext_mask; ///< Non-core extensions
-
- /* XCh extension information */
- int xch_present; ///< XCh extension present and valid
- int xch_base_channel; ///< index of first (only) channel containing XCH data
- int xch_disable; ///< whether the XCh extension should be decoded or not
-
- /* XLL extension information */
- int xll_disable;
- int xll_nch_sets; ///< number of channel sets per frame
- int xll_channels; ///< total number of channels (in all channel sets)
- int xll_residual_channels; ///< number of residual channels
- int xll_segments; ///< number of segments per frame
- int xll_log_smpl_in_seg; ///< supposedly this is "nBits4SamplLoci"
- int xll_smpl_in_seg; ///< samples in segment per one frequency band for the first channel set
- int xll_bits4seg_size; ///< number of bits used to read segment size
- int xll_banddata_crc; ///< presence of CRC16 within each frequency band
- int xll_scalable_lsb;
- int xll_bits4ch_mask; ///< channel position mask
- int xll_fixed_lsb_width;
- XllChSetSubHeader xll_chsets[DCA_XLL_CHSETS_MAX];
- XllNavi xll_navi;
- int *xll_sample_buf;
- unsigned int xll_sample_buf_size;
-
- /* ExSS header parser */
- int static_fields; ///< static fields present
- int mix_metadata; ///< mixing metadata present
- int num_mix_configs; ///< number of mix out configurations
- int mix_config_num_ch[4]; ///< number of channels in each mix out configuration
+ DCA_DMIX_TYPE_COUNT
+};
- extern av_export const uint32_t avpriv_dca_sample_rates[16];
- int profile;
- int one2one_map_chtospkr;
++extern av_export_avcodec const uint32_t avpriv_dca_sample_rates[16];
- int debug_flag; ///< used for suppressing repeated error messages output
- AVFloatDSPContext fdsp;
- FFTContext imdct;
- SynthFilterContext synth;
- DCADSPContext dcadsp;
- QMF64_table *qmf64_table;
- FmtConvertContext fmt_conv;
-} DCAContext;
+extern const uint32_t ff_dca_sampling_freqs[16];
+extern const uint8_t ff_dca_freq_ranges[16];
+extern const uint8_t ff_dca_bits_per_sample[8];
-extern av_export_avcodec const uint32_t avpriv_dca_sample_rates[16];
/**
* Convert bitstream to one representation based on sync marker
diff --cc libavcodec/internal.h
index 948d5461c1,0efe34f667..522032b108
--- a/libavcodec/internal.h
+++ b/libavcodec/internal.h
@@@ -391,27 -285,14 +391,37 @@@ int ff_decode_frame_props(AVCodecContex
*/
AVCPBProperties *ff_add_cpb_side_data(AVCodecContext *avctx);
+int ff_side_data_set_encoder_stats(AVPacket *pkt, int quality, int64_t *error, int error_count, int pict_type);
+
+/**
+ * Check AVFrame for A53 side data and allocate and fill SEI message with A53 info
+ *
+ * @param frame Raw frame to get A53 side data from
+ * @param prefix_len Number of bytes to allocate before SEI message
+ * @param data Pointer to a variable to store allocated memory
+ * Upon return the variable will hold NULL on error or if frame has no A53 info.
+ * Otherwise it will point to prefix_len uninitialized bytes followed by
+ * *sei_size SEI message
+ * @param sei_size Pointer to a variable to store generated SEI message length
+ * @return Zero on success, negative error code on failure
+ */
+int ff_alloc_a53_sei(const AVFrame *frame, size_t prefix_len,
+ void **data, size_t *sei_size);
+
+/**
+ * Get an estimated video bitrate based on frame size, frame rate and coded
+ * bits per pixel.
+ */
+int64_t ff_guess_coded_bitrate(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 --cc libavcodec/raw.h
index 24bf4cc55a,bf66671d16..28a27b1f9e
--- a/libavcodec/raw.h
+++ b/libavcodec/raw.h
@@@ -28,20 -28,12 +28,21 @@@
#define AVCODEC_RAW_H
#include "avcodec.h"
++#include "internal.h"
+#include "libavutil/internal.h"
typedef struct PixelFormatTag {
enum AVPixelFormat pix_fmt;
unsigned int fourcc;
} PixelFormatTag;
-extern const PixelFormatTag ff_raw_pix_fmt_tags[];
+extern const PixelFormatTag ff_raw_pix_fmt_tags[]; // exposed through avpriv_get_raw_pix_fmt_tags()
+
+const struct PixelFormatTag *avpriv_get_raw_pix_fmt_tags(void);
+
+enum AVPixelFormat avpriv_find_pix_fmt(const PixelFormatTag *tags, unsigned int fourcc);
+
- extern av_export const PixelFormatTag avpriv_pix_fmt_bps_avi[];
- extern av_export const PixelFormatTag avpriv_pix_fmt_bps_mov[];
++extern av_export_avcodec const PixelFormatTag avpriv_pix_fmt_bps_avi[];
++extern av_export_avcodec const PixelFormatTag avpriv_pix_fmt_bps_mov[];
#endif /* AVCODEC_RAW_H */
diff --cc libavutil/internal.h
index 6f92f71e8e,7071d2a587..c4bf1466ef
--- a/libavutil/internal.h
+++ b/libavutil/internal.h
@@@ -63,14 -57,8 +63,18 @@@
#endif
#endif
+#if defined(_MSC_VER) && CONFIG_SHARED
- # define av_export __declspec(dllimport)
++#ifdef BUILDING_avutil
++# define av_export_avutil __declspec(dllexport)
+#else
- # define av_export
++# define av_export_avutil __declspec(dllimport)
++#endif
++#else
++# define av_export_avutil
+#endif
+
#if HAVE_PRAGMA_DEPRECATED
-# if defined(__ICL)
+# if defined(__ICL) || defined (__INTEL_COMPILER)
# define FF_DISABLE_DEPRECATION_WARNINGS __pragma(warning(push)) __pragma(warning(disable:1478))
# define FF_ENABLE_DEPRECATION_WARNINGS __pragma(warning(pop))
# elif defined(_MSC_VER)
diff --cc libavutil/xga_font_data.h
index 5e40f542e4,0000000000..69dc337120
mode 100644,000000..100644
--- a/libavutil/xga_font_data.h
+++ b/libavutil/xga_font_data.h
@@@ -1,35 -1,0 +1,35 @@@
+/*
+ * CGA/EGA/VGA ROM font data
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/**
+ * @file
+ * CGA/EGA/VGA ROM font data
+ */
+
+#ifndef AVUTIL_XGA_FONT_DATA_H
+#define AVUTIL_XGA_FONT_DATA_H
+
+#include <stdint.h>
+#include "internal.h"
+
- extern av_export const uint8_t avpriv_cga_font[2048];
- extern av_export const uint8_t avpriv_vga16_font[4096];
++extern av_export_avutil const uint8_t avpriv_cga_font[2048];
++extern av_export_avutil const uint8_t avpriv_vga16_font[4096];
+
+#endif /* AVUTIL_XGA_FONT_DATA_H */
More information about the ffmpeg-cvslog
mailing list