aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-02-09 21:16:18 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-01-04 13:16:49 +0100
commit3afb41655e2afa8f4284f7fc19153cccf62afaa3 (patch)
tree6acbc799ea0a474023b53ca589f9b3454e6742a9 /libavformat
parentd7a75d21635eab4f4a1efea22945933059c2e36f (diff)
downloadffmpeg-3afb41655e2afa8f4284f7fc19153cccf62afaa3.tar.gz
avcodec/dca: Unavpriv dca_sample_rates
Said table is 64 bytes long and exported so that it can be used both in libavcodec and libavformat. This commit stops doing so and instead duplicates it for shared builds, because the overhead of exporting the symbol is bigger than 64 bytes. It consists of the length of the name of the symbol (2x24 bytes), two entries in .dynsym (2x24 bytes), two entries for symbol version (2x2 bytes), one hash value in the exporting library (4 bytes) in addition to one entry in the importing library's .got and .rela.dyn (8 + 24 bytes). (The above numbers are for a Linux/GNU/Elf system; the numbers for other platforms may be different.) Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/Makefile1
-rw-r--r--libavformat/dca_sample_rate_tab.c25
-rw-r--r--libavformat/spdifenc.c2
3 files changed, 27 insertions, 1 deletions
diff --git a/libavformat/Makefile b/libavformat/Makefile
index df95c34046..82e7fd3dc7 100644
--- a/libavformat/Makefile
+++ b/libavformat/Makefile
@@ -685,6 +685,7 @@ SHLIBOBJS-$(CONFIG_HLS_DEMUXER) += ac3_channel_layout_tab.o
SHLIBOBJS-$(CONFIG_MOV_DEMUXER) += ac3_channel_layout_tab.o
SHLIBOBJS-$(CONFIG_MXF_MUXER) += golomb_tab.o
SHLIBOBJS-$(CONFIG_RTP_MUXER) += golomb_tab.o
+SHLIBOBJS-$(CONFIG_SPDIF_MUXER) += dca_sample_rate_tab.o
# libavdevice dependencies
OBJS-$(CONFIG_IEC61883_INDEV) += dv.o
diff --git a/libavformat/dca_sample_rate_tab.c b/libavformat/dca_sample_rate_tab.c
new file mode 100644
index 0000000000..ed2380b0cd
--- /dev/null
+++ b/libavformat/dca_sample_rate_tab.c
@@ -0,0 +1,25 @@
+/*
+ * DCA sample rates
+ * Copyright (C) 2004 Gildas Bazin
+ * Copyright (C) 2004 Benjamin Zores
+ * Copyright (C) 2006 Benjamin Larsson
+ * Copyright (C) 2007 Konstantin Shishkov
+ *
+ * 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
+ */
+
+#include "libavcodec/dca_sample_rate_tab.h"
diff --git a/libavformat/spdifenc.c b/libavformat/spdifenc.c
index e8f54bff4b..3be89328df 100644
--- a/libavformat/spdifenc.c
+++ b/libavformat/spdifenc.c
@@ -263,7 +263,7 @@ static int spdif_header_dts(AVFormatContext *s, AVPacket *pkt)
case DCA_SYNCWORD_CORE_BE:
blocks = (AV_RB16(pkt->data + 4) >> 2) & 0x7f;
core_size = ((AV_RB24(pkt->data + 5) >> 4) & 0x3fff) + 1;
- sample_rate = avpriv_dca_sample_rates[(pkt->data[8] >> 2) & 0x0f];
+ sample_rate = ff_dca_sample_rates[(pkt->data[8] >> 2) & 0x0f];
break;
case DCA_SYNCWORD_CORE_LE:
blocks = (AV_RL16(pkt->data + 4) >> 2) & 0x7f;