Bug 1295886 - P10. Add a FLAC only option to ffvpx. r?gerald
Remove the VP8 and VP9 decoder and the subsequently unused functions.
This drops the size to libmozavcodec to around 1MB down from 4MB.
MozReview-Commit-ID: Ge57fauG35L
--- a/media/ffvpx/libavcodec/moz.build
+++ b/media/ffvpx/libavcodec/moz.build
@@ -7,69 +7,73 @@
# Due to duplicate file names, we compile libavutil/x86 in its own
# moz.build file.
if CONFIG['FFVPX_ASFLAGS']:
DIRS += ['x86']
SharedLibrary('mozavcodec')
SOURCES += [
'allcodecs.c',
- 'audioconvert.c',
'avpacket.c',
- 'avpicture.c',
- 'bitstream.c',
- 'bitstream_filter.c',
'bitstream_filters.c',
'bsf.c',
'codec_desc.c',
'decode.c',
'dummy_funcs.c',
'flac.c',
'flacdata.c',
'flacdec.c',
'flacdsp.c',
- 'golomb.c',
- 'h264pred.c',
- 'imgconvert.c',
- 'log2_tab.c',
- 'mathtables.c',
'null_bsf.c',
'options.c',
'parser.c',
'profiles.c',
'pthread.c',
'pthread_frame.c',
'pthread_slice.c',
- 'qsv_api.c',
- 'raw.c',
- 'resample.c',
- 'resample2.c',
- 'reverse.c',
'utils.c',
- 'videodsp.c',
'vorbis_parser.c',
- 'vp56rac.c',
- 'vp8.c',
- 'vp8_parser.c',
- 'vp8dsp.c',
- 'vp9.c',
- 'vp9_parser.c',
- 'vp9block.c',
- 'vp9data.c',
- 'vp9dsp.c',
- 'vp9dsp_10bpp.c',
- 'vp9dsp_12bpp.c',
- 'vp9dsp_8bpp.c',
- 'vp9lpf.c',
- 'vp9mvs.c',
- 'vp9prob.c',
- 'vp9recon.c',
'xiph.c'
]
+if not CONFIG['MOZ_FFVPX_FLACONLY']:
+ SOURCES += [
+ 'audioconvert.c',
+ 'avpicture.c',
+ 'bitstream.c',
+ 'bitstream_filter.c',
+ 'golomb.c',
+ 'h264pred.c',
+ 'imgconvert.c',
+ 'log2_tab.c',
+ 'mathtables.c',
+ 'qsv_api.c',
+ 'raw.c',
+ 'resample.c',
+ 'resample2.c',
+ 'reverse.c',
+ 'videodsp.c',
+ 'vp56rac.c',
+ 'vp8.c',
+ 'vp8_parser.c',
+ 'vp8dsp.c',
+ 'vp9.c',
+ 'vp9_parser.c',
+ 'vp9block.c',
+ 'vp9data.c',
+ 'vp9dsp.c',
+ 'vp9dsp_10bpp.c',
+ 'vp9dsp_12bpp.c',
+ 'vp9dsp_8bpp.c',
+ 'vp9lpf.c',
+ 'vp9mvs.c',
+ 'vp9prob.c',
+ 'vp9recon.c'
+ ]
+
SYMBOLS_FILE = 'avcodec.symbols'
NoVisibilityFlags()
USE_LIBS += [
'mozavutil'
]
if CONFIG['OS_TARGET'] != 'WINNT':
--- a/media/ffvpx/libavutil/moz.build
+++ b/media/ffvpx/libavutil/moz.build
@@ -6,56 +6,59 @@
# Due to duplicate file names, we compile libavutil/x86 in its own
# moz.build file.
if CONFIG['FFVPX_ASFLAGS']:
DIRS += ['x86']
SharedLibrary('mozavutil')
SOURCES += [
- 'adler32.c',
'atomic.c',
'avstring.c',
- 'base64.c',
'bprint.c',
'buffer.c',
'channel_layout.c',
- 'color_utils.c',
'cpu.c',
'crc.c',
'dict.c',
'dummy_funcs.c',
'error.c',
'eval.c',
'fifo.c',
'fixed_dsp.c',
'float_dsp.c',
'frame.c',
'imgutils.c',
- 'integer.c',
- 'intmath.c',
- 'lls.c',
'log.c',
- 'log2_tab.c',
'mathematics.c',
'mem.c',
'opt.c',
'parseutils.c',
'pixdesc.c',
- 'pixelutils.c',
'rational.c',
'reverse.c',
'samplefmt.c',
'slicethread.c',
- 'threadmessage.c',
'time.c',
- 'timecode.c',
- 'utils.c',
+ 'utils.c'
]
+if not CONFIG['MOZ_FFVPX_FLACONLY']:
+ SOURCES += [
+ 'adler32.c',
+ 'base64.c',
+ 'color_utils.c',
+ 'integer.c',
+ 'intmath.c',
+ 'lls.c',
+ 'pixelutils.c',
+ 'threadmessage.c',
+ 'timecode.c'
+ ]
+
SYMBOLS_FILE = 'avutil.symbols'
NoVisibilityFlags()
OS_LIBS += CONFIG['REALTIME_LIBS']
if CONFIG['OS_TARGET'] != 'WINNT':
OS_LIBS += ['m']
include("../ffvpxcommon.mozbuild")
--- a/old-configure.in
+++ b/old-configure.in
@@ -3209,35 +3209,40 @@ elif test -n "$MOZ_LIBAV_FFT" -a "${CPU_
AC_MSG_WARN([No assembler or assembly support for libav-fft. Using unoptimized C routines.])
fi
dnl ========================================================
dnl = FFmpeg's ffvpx configuration
dnl ========================================================
MOZ_FFVPX=
+MOZ_FFVPX_FLACONLY=
case "$CPU_ARCH" in
x86)
MOZ_FFVPX=1
;;
x86_64)
MOZ_FFVPX=1
;;
arm*)
MOZ_FFVPX=1
+ MOZ_FFVPX_FLACONLY=1
;;
esac
dnl Use same conditional as MOZ_LIBAV_FFT to enable FFmpeg's ffvpx assembly decoder.
if test -n "$MOZ_LIBAV_FFT"; then
FFVPX_ASFLAGS=$LIBAV_FFT_ASFLAGS
fi
if test -n "$MOZ_FFVPX"; then
AC_DEFINE(MOZ_FFVPX)
fi
+if test -n "$MOZ_FFVPX_FLACONLY"; then
+ AC_DEFINE(MOZ_FFVPX_FLACONLY)
+fi
dnl ========================================================
dnl = Enable compilation of specific extension modules
dnl ========================================================
MOZ_ARG_ENABLE_STRING(extensions,
[ --enable-extensions Enable extensions],
[ for option in `echo $enableval | sed 's/,/ /g'`; do
@@ -4803,16 +4808,17 @@ AC_SUBST(USE_N32)
AC_SUBST(CC_VERSION)
AC_SUBST(NS_ENABLE_TSF)
AC_SUBST(WIN32_CONSOLE_EXE_LDFLAGS)
AC_SUBST(WIN32_GUI_EXE_LDFLAGS)
AC_SUBST(MOZ_VORBIS)
AC_SUBST(MOZ_TREMOR)
AC_SUBST(MOZ_FFVPX)
+AC_SUBST(MOZ_FFVPX_FLACONLY)
AC_SUBST_LIST(FFVPX_ASFLAGS)
AC_SUBST(VPX_USE_YASM)
AC_SUBST_LIST(VPX_ASFLAGS)
AC_SUBST(VPX_AS_CONVERSION)
AC_SUBST(VPX_X86_ASM)
AC_SUBST(VPX_ARM_ASM)
AC_SUBST(LIBJPEG_TURBO_USE_YASM)
AC_SUBST_LIST(LIBJPEG_TURBO_ASFLAGS)