From f20518568a77a6138fc74021ce56013ab72907ba Mon Sep 17 00:00:00 2001 From: Diego Biurrun Date: Wed, 3 Sep 2014 03:27:27 -0700 Subject: [PATCH] build: Split WMA frequencies into a separate object file These are the only WMA bits shared with binkaudio. Splitting them off reduces the binnkaudio dependency on general WMA code. --- configure | 15 ++++++++------- libavcodec/Makefile | 5 +++-- libavcodec/binkaudio.c | 2 +- libavcodec/wma.c | 1 + libavcodec/wma.h | 1 - libavcodec/wma_freqs.c | 28 ++++++++++++++++++++++++++++ libavcodec/wma_freqs.h | 26 ++++++++++++++++++++++++++ libavcodec/wmadata.h | 7 ------- 8 files changed, 67 insertions(+), 18 deletions(-) create mode 100644 libavcodec/wma_freqs.c create mode 100644 libavcodec/wma_freqs.h diff --git a/configure b/configure index af0128a2417..ba9d7a654df 100755 --- a/configure +++ b/configure @@ -1584,6 +1584,7 @@ CONFIG_EXTRA=" tpeldsp videodsp vp3dsp + wma_freqs " CMDLINE_SELECT=" @@ -1756,8 +1757,8 @@ atrac1_decoder_select="mdct sinewin" atrac3_decoder_select="mdct" atrac3p_decoder_select="mdct sinewin" bink_decoder_select="blockdsp hpeldsp" -binkaudio_dct_decoder_select="mdct rdft dct sinewin" -binkaudio_rdft_decoder_select="mdct rdft sinewin" +binkaudio_dct_decoder_select="mdct rdft dct sinewin wma_freqs" +binkaudio_rdft_decoder_select="mdct rdft sinewin wma_freqs" cavs_decoder_select="blockdsp golomb h264chroma idctdsp qpeldsp videodsp" cllc_decoder_select="bswapdsp" comfortnoise_encoder_select="lpc" @@ -1901,11 +1902,11 @@ vp7_decoder_select="h264pred videodsp" vp8_decoder_select="h264pred videodsp" vp9_decoder_select="videodsp" webp_decoder_select="vp8_decoder" -wmapro_decoder_select="mdct sinewin" -wmav1_decoder_select="mdct sinewin" -wmav1_encoder_select="mdct sinewin" -wmav2_decoder_select="mdct sinewin" -wmav2_encoder_select="mdct sinewin" +wmapro_decoder_select="mdct sinewin wma_freqs" +wmav1_decoder_select="mdct sinewin wma_freqs" +wmav1_encoder_select="mdct sinewin wma_freqs" +wmav2_decoder_select="mdct sinewin wma_freqs" +wmav2_encoder_select="mdct sinewin wma_freqs" wmavoice_decoder_select="lsp rdft dct mdct sinewin" wmv1_decoder_select="h263_decoder" wmv1_encoder_select="h263_encoder" diff --git a/libavcodec/Makefile b/libavcodec/Makefile index fd194f40bff..c8d820bf7a3 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -82,6 +82,7 @@ OBJS-$(CONFIG_STARTCODE) += startcode.o OBJS-$(CONFIG_TPELDSP) += tpeldsp.o OBJS-$(CONFIG_VIDEODSP) += videodsp.o OBJS-$(CONFIG_VP3DSP) += vp3dsp.o +OBJS-$(CONFIG_WMA_FREQS) += wma_freqs.o # decoders/encoders OBJS-$(CONFIG_A64MULTI_ENCODER) += a64multienc.o elbg.o @@ -130,8 +131,8 @@ OBJS-$(CONFIG_AVS_DECODER) += avs.o OBJS-$(CONFIG_BETHSOFTVID_DECODER) += bethsoftvideo.o OBJS-$(CONFIG_BFI_DECODER) += bfi.o OBJS-$(CONFIG_BINK_DECODER) += bink.o binkdsp.o -OBJS-$(CONFIG_BINKAUDIO_DCT_DECODER) += binkaudio.o wma.o wma_common.o -OBJS-$(CONFIG_BINKAUDIO_RDFT_DECODER) += binkaudio.o wma.o wma_common.o +OBJS-$(CONFIG_BINKAUDIO_DCT_DECODER) += binkaudio.o +OBJS-$(CONFIG_BINKAUDIO_RDFT_DECODER) += binkaudio.o OBJS-$(CONFIG_BMP_DECODER) += bmp.o msrledec.o OBJS-$(CONFIG_BMP_ENCODER) += bmpenc.o OBJS-$(CONFIG_BMV_AUDIO_DECODER) += bmvaudio.o diff --git a/libavcodec/binkaudio.c b/libavcodec/binkaudio.c index ddaa613ae45..eb9cd0ab62c 100644 --- a/libavcodec/binkaudio.c +++ b/libavcodec/binkaudio.c @@ -36,7 +36,7 @@ #include "rdft.h" #include "fmtconvert.h" #include "internal.h" -#include "wma.h" +#include "wma_freqs.h" #include "libavutil/intfloat.h" static float quant_table[96]; diff --git a/libavcodec/wma.c b/libavcodec/wma.c index 447aba82661..cb7a16d3937 100644 --- a/libavcodec/wma.c +++ b/libavcodec/wma.c @@ -25,6 +25,7 @@ #include "sinewin.h" #include "wma.h" #include "wma_common.h" +#include "wma_freqs.h" #include "wmadata.h" #undef NDEBUG diff --git a/libavcodec/wma.h b/libavcodec/wma.h index e8c990fa8db..3a9de40407c 100644 --- a/libavcodec/wma.h +++ b/libavcodec/wma.h @@ -139,7 +139,6 @@ typedef struct WMACodecContext { #endif /* TRACE */ } WMACodecContext; -extern const uint16_t ff_wma_critical_freqs[25]; extern const uint16_t ff_wma_hgain_huffcodes[37]; extern const uint8_t ff_wma_hgain_huffbits[37]; extern const float ff_wma_lsp_codebook[NB_LSP_COEFS][16]; diff --git a/libavcodec/wma_freqs.c b/libavcodec/wma_freqs.c new file mode 100644 index 00000000000..82cef3bfc3f --- /dev/null +++ b/libavcodec/wma_freqs.c @@ -0,0 +1,28 @@ +/* + * This file is part of Libav. + * + * Libav 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. + * + * Libav 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 Libav; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +#include "wma_freqs.h" + +const uint16_t ff_wma_critical_freqs[25] = { + 100, 200, 300, 400, 510, 630, 770, 920, + 1080, 1270, 1480, 1720, 2000, 2320, 2700, 3150, + 3700, 4400, 5300, 6400, 7700, 9500, 12000, 15500, + 24500, +}; diff --git a/libavcodec/wma_freqs.h b/libavcodec/wma_freqs.h new file mode 100644 index 00000000000..415c83b6c5b --- /dev/null +++ b/libavcodec/wma_freqs.h @@ -0,0 +1,26 @@ +/* + * This file is part of Libav. + * + * Libav 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. + * + * Libav 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 Libav; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_WMA_FREQS_H +#define AVCODEC_WMA_FREQS_H + +#include + +extern const uint16_t ff_wma_critical_freqs[25]; + +#endif /* AVCODEC_WMA_FREQS */ diff --git a/libavcodec/wmadata.h b/libavcodec/wmadata.h index 9a99776baa1..58bffedd6e6 100644 --- a/libavcodec/wmadata.h +++ b/libavcodec/wmadata.h @@ -31,13 +31,6 @@ #include "wma.h" -const uint16_t ff_wma_critical_freqs[25] = { - 100, 200, 300, 400, 510, 630, 770, 920, - 1080, 1270, 1480, 1720, 2000, 2320, 2700, 3150, - 3700, 4400, 5300, 6400, 7700, 9500, 12000, 15500, - 24500, -}; - /* first value is number of bands */ static const uint8_t exponent_band_22050[3][25] = { { 10, 4, 8, 4, 8, 8, 12, 20, 24, 24, 16, }, -- 2.39.2