|
|
|
NAME = avcodec
|
|
|
|
DESC = FFmpeg codec library
|
|
|
|
|
|
|
|
HEADERS = ac3_parser.h \
|
|
|
|
adts_parser.h \
|
|
|
|
avcodec.h \
|
|
|
|
avdct.h \
|
|
|
|
avfft.h \
|
|
|
|
bsf.h \
|
|
|
|
codec.h \
|
|
|
|
codec_desc.h \
|
|
|
|
codec_id.h \
|
|
|
|
codec_par.h \
|
|
|
|
d3d11va.h \
|
|
|
|
defs.h \
|
|
|
|
dirac.h \
|
|
|
|
dv_profile.h \
|
|
|
|
dxva2.h \
|
|
|
|
jni.h \
|
|
|
|
mediacodec.h \
|
|
|
|
packet.h \
|
|
|
|
qsv.h \
|
|
|
|
vdpau.h \
|
|
|
|
version.h \
|
|
|
|
version_major.h \
|
|
|
|
videotoolbox.h \
|
|
|
|
vorbis_parser.h \
|
|
|
|
xvmc.h \
|
|
|
|
|
|
|
|
OBJS = ac3_parser.o \
|
|
|
|
adts_parser.o \
|
|
|
|
allcodecs.o \
|
|
|
|
avcodec.o \
|
|
|
|
avdct.o \
|
|
|
|
avpacket.o \
|
|
|
|
bitstream.o \
|
|
|
|
bitstream_filters.o \
|
|
|
|
bsf.o \
|
|
|
|
codec_desc.o \
|
|
|
|
codec_par.o \
|
|
|
|
d3d11va.o \
|
|
|
|
decode.o \
|
|
|
|
dirac.o \
|
|
|
|
dv_profile.o \
|
|
|
|
encode.o \
|
|
|
|
get_buffer.o \
|
|
|
|
imgconvert.o \
|
|
|
|
jni.o \
|
|
|
|
mathtables.o \
|
|
|
|
mediacodec.o \
|
|
|
|
mpeg12framerate.o \
|
|
|
|
options.o \
|
|
|
|
parser.o \
|
|
|
|
parsers.o \
|
|
|
|
profiles.o \
|
|
|
|
qsv_api.o \
|
|
|
|
raw.o \
|
|
|
|
utils.o \
|
|
|
|
version.o \
|
|
|
|
vlc.o \
|
|
|
|
vorbis_parser.o \
|
|
|
|
xiph.o \
|
|
|
|
|
|
|
|
# subsystems
|
|
|
|
OBJS-$(CONFIG_AANDCTTABLES) += aandcttab.o
|
|
|
|
OBJS-$(CONFIG_AC3DSP) += ac3dsp.o ac3.o ac3tab.o
|
|
|
|
OBJS-$(CONFIG_ADTS_HEADER) += adts_header.o mpeg4audio_sample_rates.o
|
|
|
|
OBJS-$(CONFIG_AMF) += amfenc.o
|
|
|
|
OBJS-$(CONFIG_AUDIO_FRAME_QUEUE) += audio_frame_queue.o
|
|
|
|
OBJS-$(CONFIG_ATSC_A53) += atsc_a53.o
|
|
|
|
OBJS-$(CONFIG_AUDIODSP) += audiodsp.o
|
|
|
|
OBJS-$(CONFIG_BLOCKDSP) += blockdsp.o
|
|
|
|
OBJS-$(CONFIG_BSWAPDSP) += bswapdsp.o
|
|
|
|
OBJS-$(CONFIG_CABAC) += cabac.o
|
|
|
|
OBJS-$(CONFIG_CBS) += cbs.o cbs_bsf.o
|
|
|
|
OBJS-$(CONFIG_CBS_AV1) += cbs_av1.o
|
|
|
|
OBJS-$(CONFIG_CBS_H264) += cbs_h2645.o cbs_sei.o h2645_parse.o
|
|
|
|
OBJS-$(CONFIG_CBS_H265) += cbs_h2645.o cbs_sei.o h2645_parse.o
|
|
|
|
OBJS-$(CONFIG_CBS_JPEG) += cbs_jpeg.o
|
|
|
|
OBJS-$(CONFIG_CBS_MPEG2) += cbs_mpeg2.o
|
|
|
|
OBJS-$(CONFIG_CBS_VP9) += cbs_vp9.o
|
|
|
|
OBJS-$(CONFIG_CRYSTALHD) += crystalhd.o
|
|
|
|
OBJS-$(CONFIG_DCT) += dct.o dct32_fixed.o dct32_float.o
|
|
|
|
OBJS-$(CONFIG_DEFLATE_WRAPPER) += zlib_wrapper.o
|
lavc: Implement Dolby Vision RPU parsing
Based on a mixture of guesswork, partial documentation in patents, and
reverse engineering of real-world samples. Confirmed working for all the
samples I've thrown at it.
Contains some annoying machinery to persist these values in between
frames, which is needed in theory even though I've never actually seen a
sample that relies on it in practice. May or may not work.
Since the distinction matters greatly for parsing the color matrix
values, this includes a small helper function to guess the right profile
from the RPU itself in case the user has forgotten to forward the dovi
configuration record to the decoder. (Which in practice, only ffmpeg.c
and ffplay do..)
Notable omissions / deviations:
- CRC32 verification. This is based on the MPEG2 CRC32 type, which is
similar to IEEE CRC32 but apparently different in subtle enough ways
that I could not get it to pass verification no matter what parameters
I fed to av_crc. It's possible the code needs some changes.
- Linear interpolation support. Nothing documents this (beyond its
existence) and no samples use it, so impossible to implement.
- All of the extension metadata blocks, but these contain values that
seem largely congruent with ST2094, HDR10, or other existing forms of
side data, so I will defer parsing/attaching them to a future commit.
- The patent describes a mechanism for predicting coefficients from
previous RPUs, but the bit for the flag whether to use the
prediction deltas or signal entirely new coefficients does not seem to
be present in actual RPUs, so we ignore this subsystem entirely.
- In the patent's spec, the NLQ subsystem also loops over
num_nlq_pivots, but even in the patent the number is hard-coded to one
iteration rather than signalled. So we only store one set of coefs.
Heavily influenced by https://github.com/quietvoid/dovi_tool
Documentation drawn from US Patent 10,701,399 B2 and ETSI GS CCM 001
Signed-off-by: Niklas Haas <git@haasn.dev>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
3 years ago
|
|
|
OBJS-$(CONFIG_DOVI_RPU) += dovi_rpu.o
|
|
|
|
OBJS-$(CONFIG_ERROR_RESILIENCE) += error_resilience.o
|
|
|
|
OBJS-$(CONFIG_EXIF) += exif.o tiff_common.o
|
|
|
|
OBJS-$(CONFIG_FAANDCT) += faandct.o
|
|
|
|
OBJS-$(CONFIG_FAANIDCT) += faanidct.o
|
|
|
|
OBJS-$(CONFIG_FDCTDSP) += fdctdsp.o jfdctfst.o jfdctint.o
|
|
|
|
FFT-OBJS-$(CONFIG_HARDCODED_TABLES) += cos_tables.o
|
|
|
|
OBJS-$(CONFIG_FFT) += avfft.o fft_float.o fft_fixed_32.o \
|
|
|
|
fft_init_table.o $(FFT-OBJS-yes)
|
|
|
|
OBJS-$(CONFIG_FLACDSP) += flacdsp.o
|
|
|
|
OBJS-$(CONFIG_FMTCONVERT) += fmtconvert.o
|
|
|
|
OBJS-$(CONFIG_GOLOMB) += golomb.o
|
|
|
|
OBJS-$(CONFIG_H263DSP) += h263dsp.o
|
|
|
|
OBJS-$(CONFIG_H264CHROMA) += h264chroma.o
|
|
|
|
OBJS-$(CONFIG_H264DSP) += h264dsp.o h264idct.o
|
|
|
|
OBJS-$(CONFIG_H264PARSE) += h264_parse.o h2645_parse.o h264_ps.o
|
|
|
|
OBJS-$(CONFIG_H264PRED) += h264pred.o
|
|
|
|
OBJS-$(CONFIG_H264QPEL) += h264qpel.o
|
|
|
|
OBJS-$(CONFIG_HEVCPARSE) += hevc_parse.o h2645_parse.o hevc_ps.o hevc_sei.o hevc_data.o \
|
|
|
|
dynamic_hdr10_plus.o dynamic_hdr_vivid.o
|
|
|
|
OBJS-$(CONFIG_HPELDSP) += hpeldsp.o
|
|
|
|
OBJS-$(CONFIG_HUFFMAN) += huffman.o
|
|
|
|
OBJS-$(CONFIG_HUFFYUVDSP) += huffyuvdsp.o
|
|
|
|
OBJS-$(CONFIG_HUFFYUVENCDSP) += huffyuvencdsp.o
|
|
|
|
OBJS-$(CONFIG_IDCTDSP) += idctdsp.o simple_idct.o jrevdct.o
|
|
|
|
OBJS-$(CONFIG_IIRFILTER) += iirfilter.o
|
|
|
|
OBJS-$(CONFIG_MDCT15) += mdct15.o
|
|
|
|
OBJS-$(CONFIG_INFLATE_WRAPPER) += zlib_wrapper.o
|
|
|
|
OBJS-$(CONFIG_INTRAX8) += intrax8.o intrax8dsp.o msmpeg4data.o
|
|
|
|
OBJS-$(CONFIG_IVIDSP) += ivi_dsp.o
|
|
|
|
OBJS-$(CONFIG_JNI) += ffjni.o jni.o
|
|
|
|
OBJS-$(CONFIG_JPEGTABLES) += jpegtables.o
|
|
|
|
OBJS-$(CONFIG_LLAUDDSP) += lossless_audiodsp.o
|
|
|
|
OBJS-$(CONFIG_LLVIDDSP) += lossless_videodsp.o
|
|
|
|
OBJS-$(CONFIG_LLVIDENCDSP) += lossless_videoencdsp.o
|
|
|
|
OBJS-$(CONFIG_LPC) += lpc.o
|
|
|
|
OBJS-$(CONFIG_LSP) += lsp.o
|
|
|
|
OBJS-$(CONFIG_LZF) += lzf.o
|
|
|
|
OBJS-$(CONFIG_MDCT) += mdct_float.o mdct_fixed_32.o
|
|
|
|
OBJS-$(CONFIG_ME_CMP) += me_cmp.o
|
|
|
|
OBJS-$(CONFIG_MEDIACODEC) += mediacodecdec_common.o mediacodec_surface.o mediacodec_wrapper.o mediacodec_sw_buffer.o
|
|
|
|
OBJS-$(CONFIG_MPEG_ER) += mpeg_er.o
|
|
|
|
OBJS-$(CONFIG_MPEGAUDIO) += mpegaudio.o mpegaudiodec_common.o \
|
|
|
|
mpegaudiodata.o
|
|
|
|
OBJS-$(CONFIG_MPEGAUDIODSP) += mpegaudiodsp.o \
|
|
|
|
mpegaudiodsp_data.o \
|
|
|
|
mpegaudiodsp_fixed.o \
|
|
|
|
mpegaudiodsp_float.o
|
|
|
|
OBJS-$(CONFIG_MPEGAUDIOHEADER) += mpegaudiodecheader.o mpegaudiotabs.o
|
|
|
|
OBJS-$(CONFIG_MPEG4AUDIO) += mpeg4audio.o mpeg4audio_sample_rates.o
|
|
|
|
OBJS-$(CONFIG_MPEGVIDEO) += mpegvideo.o mpegvideodsp.o rl.o \
|
|
|
|
mpegvideo_motion.o \
|
|
|
|
mpegvideodata.o mpegpicture.o \
|
|
|
|
to_upper4.o
|
|
|
|
OBJS-$(CONFIG_MPEGVIDEODEC) += mpegvideo_dec.o mpegutils.o
|
|
|
|
OBJS-$(CONFIG_MPEGVIDEOENC) += mpegvideo_enc.o mpeg12data.o \
|
|
|
|
motion_est.o ratecontrol.o \
|
|
|
|
mpegvideoencdsp.o
|
|
|
|
OBJS-$(CONFIG_MSS34DSP) += mss34dsp.o
|
|
|
|
OBJS-$(CONFIG_PIXBLOCKDSP) += pixblockdsp.o
|
|
|
|
OBJS-$(CONFIG_QPELDSP) += qpeldsp.o
|
|
|
|
OBJS-$(CONFIG_QSV) += qsv.o
|
|
|
|
OBJS-$(CONFIG_QSVDEC) += qsvdec.o
|
|
|
|
OBJS-$(CONFIG_QSVENC) += qsvenc.o
|
|
|
|
OBJS-$(CONFIG_RANGECODER) += rangecoder.o
|
|
|
|
OBJS-$(CONFIG_RDFT) += rdft.o
|
|
|
|
OBJS-$(CONFIG_RV34DSP) += rv34dsp.o
|
|
|
|
OBJS-$(CONFIG_SINEWIN) += sinewin.o
|
|
|
|
OBJS-$(CONFIG_SNAPPY) += snappy.o
|
|
|
|
OBJS-$(CONFIG_STARTCODE) += startcode.o
|
|
|
|
OBJS-$(CONFIG_TEXTUREDSP) += texturedsp.o
|
|
|
|
OBJS-$(CONFIG_TEXTUREDSPENC) += texturedspenc.o
|
|
|
|
OBJS-$(CONFIG_TPELDSP) += tpeldsp.o
|
|
|
|
OBJS-$(CONFIG_VAAPI_ENCODE) += vaapi_encode.o
|
|
|
|
OBJS-$(CONFIG_VC1DSP) += vc1dsp.o
|
|
|
|
OBJS-$(CONFIG_VIDEODSP) += videodsp.o
|
|
|
|
OBJS-$(CONFIG_VP3DSP) += vp3dsp.o
|
|
|
|
OBJS-$(CONFIG_VP56DSP) += vp56dsp.o
|
|
|
|
OBJS-$(CONFIG_VP8DSP) += vp8dsp.o
|
|
|
|
OBJS-$(CONFIG_V4L2_M2M) += v4l2_m2m.o v4l2_context.o v4l2_buffers.o v4l2_fmt.o
|
|
|
|
OBJS-$(CONFIG_WMA_FREQS) += wma_freqs.o
|
|
|
|
OBJS-$(CONFIG_WMV2DSP) += wmv2dsp.o
|
|
|
|
|
|
|
|
# decoders/encoders
|
|
|
|
OBJS-$(CONFIG_ZERO12V_DECODER) += 012v.o
|
|
|
|
OBJS-$(CONFIG_A64MULTI_ENCODER) += a64multienc.o elbg.o
|
|
|
|
OBJS-$(CONFIG_A64MULTI5_ENCODER) += a64multienc.o elbg.o
|
|
|
|
OBJS-$(CONFIG_AAC_DECODER) += aacdec.o aactab.o aacsbr.o aacps_common.o aacps_float.o \
|
|
|
|
kbdwin.o \
|
|
|
|
sbrdsp.o aacpsdsp_float.o cbrt_data.o
|
|
|
|
OBJS-$(CONFIG_AAC_FIXED_DECODER) += aacdec_fixed.o aactab.o aacsbr_fixed.o aacps_common.o aacps_fixed.o \
|
|
|
|
kbdwin.o \
|
|
|
|
sbrdsp_fixed.o aacpsdsp_fixed.o cbrt_data_fixed.o
|
|
|
|
OBJS-$(CONFIG_AAC_ENCODER) += aacenc.o aaccoder.o aacenctab.o \
|
|
|
|
aacpsy.o aactab.o \
|
|
|
|
aacenc_is.o \
|
|
|
|
aacenc_tns.o \
|
|
|
|
aacenc_ltp.o \
|
|
|
|
aacenc_pred.o \
|
|
|
|
psymodel.o kbdwin.o \
|
|
|
|
mpeg4audio_sample_rates.o
|
|
|
|
OBJS-$(CONFIG_AAC_MF_ENCODER) += mfenc.o mf_utils.o
|
|
|
|
OBJS-$(CONFIG_AASC_DECODER) += aasc.o msrledec.o
|
|
|
|
OBJS-$(CONFIG_AC3_DECODER) += ac3dec_float.o ac3dec_data.o ac3.o \
|
|
|
|
kbdwin.o ac3tab.o ac3_channel_layout_tab.o
|
|
|
|
OBJS-$(CONFIG_AC3_FIXED_DECODER) += ac3dec_fixed.o ac3dec_data.o ac3.o \
|
|
|
|
kbdwin.o ac3tab.o ac3_channel_layout_tab.o
|
|
|
|
OBJS-$(CONFIG_AC3_ENCODER) += ac3enc_float.o ac3enc.o ac3tab.o \
|
|
|
|
ac3.o kbdwin.o
|
ac3enc_fixed: convert to 32-bit sample format
The AC3 encoder used to be a separate library called "Aften", which
got merged into libavcodec (literally, SVN commits and all).
The merge preserved as much features from the library as possible.
The code had two versions - a fixed point version and a floating
point version. FFmpeg had floating point DSP code used by other
codecs, the AC3 decoder including, so the floating-point DSP was
simply replaced with FFmpeg's own functions.
However, FFmpeg had no fixed-point audio code at that point. So
the encoder brought along its own fixed-point DSP functions,
including a fixed-point MDCT.
The fixed-point MDCT itself is trivially just a float MDCT with a
different type and each multiply being a fixed-point multiply.
So over time, it got refactored, and the FFT used for all other codecs
was templated.
Due to design decisions at the time, the fixed-point version of the
encoder operates at 16-bits of precision. Although convenient, this,
even at the time, was inadequate and inefficient. The encoder is noisy,
does not produce output comparable to the float encoder, and even
rings at higher frequencies due to the badly approximated winow function.
Enter MIPS (owned by Imagination Technologies at the time). They wanted
quick fixed-point decoding on their FPUless cores. So they contributed
patches to template the AC3 decoder so it had both a fixed-point
and a floating-point version. They also did the same for the AAC decoder.
They however, used 32-bit samples. Not 16-bits. And we did not have
32-bit fixed-point DSP functions, including an MDCT. But instead of
templating our MDCT to output 3 versions (float, 32-bit fixed and 16-bit fixed),
they simply copy-pasted their own MDCT into ours, and completely
ifdeffed our own MDCT code out if a 32-bit fixed point MDCT was selected.
This is also the status quo nowadays - 2 separate MDCTs, one which
produces floating point and 16-bit fixed point versions, and one
sort-of integrated which produces 32-bit MDCT.
MIPS weren't all that interested in encoding, so they left the encoder
as-is, and they didn't care much about the ifdeffery, mess or quality - it's
not their problem.
So the MDCT/FFT code has always been a thorn in anyone looking to clean up
code's eye.
Backstory over. Internally AC3 operates on 25-bit fixed-point coefficients.
So for the floating point version, the encoder simply runs the float MDCT,
and converts the resulting coefficients to 25-bit fixed-point, as AC3 is inherently
a fixed-point codec. For the fixed-point version, the input is 16-bit samples,
so to maximize precision the frame samples are analyzed and the highest set
bit is detected via ac3_max_msb_abs_int16(), and the coefficients are then
scaled up via ac3_lshift_int16(), so the input for the FFT is always at least 14 bits,
computed in normalize_samples(). After FFT, the coefficients are scaled up to 25 bits.
This patch simply changes the encoder to accept 32-bit samples, reusing
the already well-optimized 32-bit MDCT code, allowing us to clean up and drop
a large part of a very messy code of ours, as well as prepare for the future lavu/tx
conversion. The coefficients are simply scaled down to 25 bits during windowing,
skipping 2 separate scalings, as the hacks to extend precision are simply no longer
necessary. There's no point in running the MDCT always at 32 bits when you're
going to drop 6 bits off anyway, the headroom is plenty, and the MDCT rounds
properly.
This also makes the encoder even slightly more accurate over the float version,
as there's no coefficient conversion step necessary.
SIZE SAVINGS:
ARM32:
HARDCODED TABLES:
BASE - 10709590
DROP DSP - 10702872 - diff: -6.56KiB
DROP MDCT - 10667932 - diff: -34.12KiB - both: -40.68KiB
DROP FFT - 10336652 - diff: -323.52KiB - all: -364.20KiB
SOFTCODED TABLES:
BASE - 9685096
DROP DSP - 9678378 - diff: -6.56KiB
DROP MDCT - 9643466 - diff: -34.09KiB - both: -40.65KiB
DROP FFT - 9573918 - diff: -67.92KiB - all: -108.57KiB
ARM64:
HARDCODED TABLES:
BASE - 14641112
DROP DSP - 14633806 - diff: -7.13KiB
DROP MDCT - 14604812 - diff: -28.31KiB - both: -35.45KiB
DROP FFT - 14286826 - diff: -310.53KiB - all: -345.98KiB
SOFTCODED TABLES:
BASE - 13636238
DROP DSP - 13628932 - diff: -7.13KiB
DROP MDCT - 13599866 - diff: -28.38KiB - both: -35.52KiB
DROP FFT - 13542080 - diff: -56.43KiB - all: -91.95KiB
x86:
HARDCODED TABLES:
BASE - 12367336
DROP DSP - 12354698 - diff: -12.34KiB
DROP MDCT - 12331024 - diff: -23.12KiB - both: -35.46KiB
DROP FFT - 12029788 - diff: -294.18KiB - all: -329.64KiB
SOFTCODED TABLES:
BASE - 11358094
DROP DSP - 11345456 - diff: -12.34KiB
DROP MDCT - 11321742 - diff: -23.16KiB - both: -35.50KiB
DROP FFT - 11276946 - diff: -43.75KiB - all: -79.25KiB
PERFORMANCE (10min random s32le):
ARM32 - before - 39.9x - 0m15.046s
ARM32 - after - 28.2x - 0m21.525s
Speed: -30%
ARM64 - before - 36.1x - 0m16.637s
ARM64 - after - 36.0x - 0m16.727s
Speed: -0.5%
x86 - before - 184x - 0m3.277s
x86 - after - 190x - 0m3.187s
Speed: +3%
4 years ago
|
|
|
OBJS-$(CONFIG_AC3_FIXED_ENCODER) += ac3enc_fixed.o ac3enc.o ac3tab.o ac3.o kbdwin.o
|
|
|
|
OBJS-$(CONFIG_AC3_MF_ENCODER) += mfenc.o mf_utils.o
|
|
|
|
OBJS-$(CONFIG_ACELP_KELVIN_DECODER) += g729dec.o lsp.o celp_math.o celp_filters.o acelp_filters.o acelp_pitch_delay.o acelp_vectors.o g729postfilter.o
|
|
|
|
OBJS-$(CONFIG_AGM_DECODER) += agm.o
|
|
|
|
OBJS-$(CONFIG_AIC_DECODER) += aic.o
|
|
|
|
OBJS-$(CONFIG_ALAC_DECODER) += alac.o alac_data.o alacdsp.o
|
|
|
|
OBJS-$(CONFIG_ALAC_ENCODER) += alacenc.o alac_data.o
|
|
|
|
OBJS-$(CONFIG_ALIAS_PIX_DECODER) += aliaspixdec.o
|
|
|
|
OBJS-$(CONFIG_ALIAS_PIX_ENCODER) += aliaspixenc.o
|
|
|
|
OBJS-$(CONFIG_ALS_DECODER) += alsdec.o bgmc.o mlz.o
|
|
|
|
OBJS-$(CONFIG_AMRNB_DECODER) += amrnbdec.o celp_filters.o \
|
|
|
|
celp_math.o acelp_filters.o \
|
|
|
|
acelp_vectors.o \
|
|
|
|
acelp_pitch_delay.o
|
|
|
|
OBJS-$(CONFIG_AMRWB_DECODER) += amrwbdec.o celp_filters.o \
|
|
|
|
celp_math.o acelp_filters.o \
|
|
|
|
acelp_vectors.o \
|
|
|
|
acelp_pitch_delay.o
|
|
|
|
OBJS-$(CONFIG_AMV_ENCODER) += mjpegenc.o mjpegenc_common.o
|
|
|
|
OBJS-$(CONFIG_ANM_DECODER) += anm.o
|
|
|
|
OBJS-$(CONFIG_ANSI_DECODER) += ansi.o cga_data.o
|
|
|
|
OBJS-$(CONFIG_APE_DECODER) += apedec.o
|
|
|
|
OBJS-$(CONFIG_APTX_DECODER) += aptxdec.o aptx.o
|
|
|
|
OBJS-$(CONFIG_APTX_ENCODER) += aptxenc.o aptx.o
|
|
|
|
OBJS-$(CONFIG_APTX_HD_DECODER) += aptxdec.o aptx.o
|
|
|
|
OBJS-$(CONFIG_APTX_HD_ENCODER) += aptxenc.o aptx.o
|
|
|
|
OBJS-$(CONFIG_APNG_DECODER) += png.o pngdec.o pngdsp.o
|
|
|
|
OBJS-$(CONFIG_APNG_ENCODER) += png.o pngenc.o
|
|
|
|
OBJS-$(CONFIG_ARBC_DECODER) += arbc.o
|
|
|
|
OBJS-$(CONFIG_ARGO_DECODER) += argo.o
|
|
|
|
OBJS-$(CONFIG_SSA_DECODER) += assdec.o ass.o
|
subtitles: introduce ASS codec id and use it.
Currently, we have a AV_CODEC_ID_SSA, which matches the way the ASS/SSA
markup is muxed in a standalone .ass/.ssa file. This means the AVPacket
data starts with a "Dialogue:" string, followed by a timing information
(start and end of the event as string) and a trailing CRLF after each
line. One packet can contain several lines. We'll refer to this layout
as "SSA" or "SSA lines".
In matroska, this markup is not stored as such: it has no "Dialogue:"
prefix, it contains a ReadOrder field, the timing information is not in
the payload, and it doesn't contain the trailing CRLF. See [1] for more
info. We'll refer to this layout as "ASS".
Since we have only one common codec for both formats, the matroska
demuxer is constructing an AVPacket following the "SSA lines" format.
This causes several problems, so it was decided to change this into
clean ASS packets.
Some insight about what is changed or unchanged in this commit:
CODECS
------
- the decoding process still writes "SSA lines" markup inside the ass
fields of the subtitles rectangles (sub->rects[n]->ass), which is
still the current common way of representing decoded subtitles
markup. It is meant to change later.
- new ASS codec id: AV_CODEC_ID_ASS (which is different from the
legacy AV_CODEC_ID_SSA)
- lavc/assdec: the "ass" decoder is renamed into "ssa" (instead of
"ass") for consistency with the codec id and allows to add a real
ass decoder. This ass decoder receives clean ASS lines (so it starts
with a ReadOrder, is followed by the Layer, etc). We make sure this
is decoded properly in a new ass-line rectangle of the decoded
subtitles (the ssa decoder OTOH is doing a simple straightforward
copy). Using the packet timing instead of data string makes sure the
ass-line now contains the appropriate timing.
- lavc/assenc: just like the ass decoder, the "ssa" encoder is renamed
into "ssa" (instead of "ass") for consistency with the codec id, and
allows to add a real "ass" encoder.
One important thing about this encoder is that it only supports one
ass rectangle: we could have put several dialogue events in the
AVPacket (separated by a \0 for instance) but this would have cause
trouble for the muxer which needs not only the start time, but also
the duration: typically, you have merged events with the same start
time (stored in the AVPacket->pts) but a different duration. At the
moment, only the matroska do the merge with the SSA-line codec.
We will need to make sure all the decoders in the future can't add
more than one rectangle (and only one Dialogue line in it
obviously).
FORMATS
-------
- lavf/assenc: the .ass/.ssa muxer can take both SSA and ASS packets.
In the case of ASS packets as input, it adds the timing based on the
AVPacket pts and duration, and mux it with "Dialogue:", trailing
CRLF, etc.
- lavf/assdec: unchanged; it currently still only outputs SSA-lines
packets.
- lavf/mkv: the demuxer can now output ASS packets without the need of
any "SSA-lines" reconstruction hack. It will become the default at
next libavformat bump, and the SSA support will be dropped from the
demuxer. The muxer can take ASS packets since it's muxed normally,
and still supports the old SSA packets. All the SSA support and
hacks in Matroska code will be dropped at next lavf bump.
[1]: http://www.matroska.org/technical/specs/subtitles/ssa.html
12 years ago
|
|
|
OBJS-$(CONFIG_SSA_ENCODER) += assenc.o ass.o
|
|
|
|
OBJS-$(CONFIG_ASS_DECODER) += assdec.o ass.o
|
|
|
|
OBJS-$(CONFIG_ASS_ENCODER) += assenc.o ass.o
|
|
|
|
OBJS-$(CONFIG_ASV1_DECODER) += asvdec.o asv.o mpeg12data.o
|
|
|
|
OBJS-$(CONFIG_ASV1_ENCODER) += asvenc.o asv.o mpeg12data.o
|
|
|
|
OBJS-$(CONFIG_ASV2_DECODER) += asvdec.o asv.o mpeg12data.o
|
|
|
|
OBJS-$(CONFIG_ASV2_ENCODER) += asvenc.o asv.o mpeg12data.o
|
|
|
|
OBJS-$(CONFIG_ATRAC1_DECODER) += atrac1.o atrac.o
|
|
|
|
OBJS-$(CONFIG_ATRAC3_DECODER) += atrac3.o atrac.o
|
|
|
|
OBJS-$(CONFIG_ATRAC3AL_DECODER) += atrac3.o atrac.o
|
|
|
|
OBJS-$(CONFIG_ATRAC3P_DECODER) += atrac3plusdec.o atrac3plus.o \
|
|
|
|
atrac3plusdsp.o atrac.o
|
|
|
|
OBJS-$(CONFIG_ATRAC3PAL_DECODER) += atrac3plusdec.o atrac3plus.o \
|
|
|
|
atrac3plusdsp.o atrac.o
|
|
|
|
OBJS-$(CONFIG_ATRAC9_DECODER) += atrac9dec.o
|
|
|
|
OBJS-$(CONFIG_AURA_DECODER) += cyuv.o
|
|
|
|
OBJS-$(CONFIG_AURA2_DECODER) += aura.o
|
|
|
|
OBJS-$(CONFIG_AV1_DECODER) += av1dec.o
|
|
|
|
OBJS-$(CONFIG_AV1_CUVID_DECODER) += cuviddec.o
|
|
|
|
OBJS-$(CONFIG_AVRN_DECODER) += avrndec.o
|
|
|
|
OBJS-$(CONFIG_AVRP_DECODER) += r210dec.o
|
|
|
|
OBJS-$(CONFIG_AVRP_ENCODER) += r210enc.o
|
|
|
|
OBJS-$(CONFIG_AVS_DECODER) += avs.o
|
|
|
|
OBJS-$(CONFIG_AVUI_DECODER) += avuidec.o
|
|
|
|
OBJS-$(CONFIG_AVUI_ENCODER) += avuienc.o
|
|
|
|
OBJS-$(CONFIG_AYUV_DECODER) += v408dec.o
|
|
|
|
OBJS-$(CONFIG_AYUV_ENCODER) += v408enc.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
|
|
|
|
OBJS-$(CONFIG_BINKAUDIO_RDFT_DECODER) += binkaudio.o
|
|
|
|
OBJS-$(CONFIG_BINTEXT_DECODER) += bintext.o cga_data.o
|
|
|
|
OBJS-$(CONFIG_BITPACKED_DECODER) += bitpacked_dec.o
|
|
|
|
OBJS-$(CONFIG_BITPACKED_ENCODER) += bitpacked_enc.o
|
|
|
|
OBJS-$(CONFIG_BMP_DECODER) += bmp.o msrledec.o
|
|
|
|
OBJS-$(CONFIG_BMP_ENCODER) += bmpenc.o
|
|
|
|
OBJS-$(CONFIG_BMV_AUDIO_DECODER) += bmvaudio.o
|
|
|
|
OBJS-$(CONFIG_BMV_VIDEO_DECODER) += bmvvideo.o
|
|
|
|
OBJS-$(CONFIG_BRENDER_PIX_DECODER) += brenderpix.o
|
|
|
|
OBJS-$(CONFIG_C93_DECODER) += c93.o
|
|
|
|
OBJS-$(CONFIG_CAVS_DECODER) += cavs.o cavsdec.o cavsdsp.o \
|
|
|
|
cavsdata.o
|
|
|
|
OBJS-$(CONFIG_CCAPTION_DECODER) += ccaption_dec.o ass.o
|
|
|
|
OBJS-$(CONFIG_CDGRAPHICS_DECODER) += cdgraphics.o
|
|
|
|
OBJS-$(CONFIG_CDTOONS_DECODER) += cdtoons.o
|
|
|
|
OBJS-$(CONFIG_CDXL_DECODER) += cdxl.o
|
|
|
|
OBJS-$(CONFIG_CFHD_DECODER) += cfhd.o cfhddata.o cfhddsp.o
|
|
|
|
OBJS-$(CONFIG_CFHD_ENCODER) += cfhdenc.o cfhddata.o cfhdencdsp.o
|
|
|
|
OBJS-$(CONFIG_CINEPAK_DECODER) += cinepak.o
|
|
|
|
OBJS-$(CONFIG_CINEPAK_ENCODER) += cinepakenc.o elbg.o
|
|
|
|
OBJS-$(CONFIG_CLEARVIDEO_DECODER) += clearvideo.o
|
|
|
|
OBJS-$(CONFIG_CLJR_DECODER) += cljrdec.o
|
|
|
|
OBJS-$(CONFIG_CLJR_ENCODER) += cljrenc.o
|
|
|
|
OBJS-$(CONFIG_CLLC_DECODER) += cllc.o canopus.o
|
|
|
|
OBJS-$(CONFIG_COMFORTNOISE_DECODER) += cngdec.o celp_filters.o
|
|
|
|
OBJS-$(CONFIG_COMFORTNOISE_ENCODER) += cngenc.o
|
|
|
|
OBJS-$(CONFIG_COOK_DECODER) += cook.o
|
|
|
|
OBJS-$(CONFIG_CPIA_DECODER) += cpia.o
|
|
|
|
OBJS-$(CONFIG_CRI_DECODER) += cri.o
|
|
|
|
OBJS-$(CONFIG_CSCD_DECODER) += cscd.o
|
|
|
|
OBJS-$(CONFIG_CYUV_DECODER) += cyuv.o
|
|
|
|
OBJS-$(CONFIG_DCA_DECODER) += dcadec.o dca.o dcadata.o dcahuff.o \
|
|
|
|
dca_core.o dca_exss.o dca_xll.o dca_lbr.o \
|
|
|
|
dcadsp.o dcadct.o dca_sample_rate_tab.o \
|
|
|
|
synth_filter.o
|
|
|
|
OBJS-$(CONFIG_DCA_ENCODER) += dcaenc.o dcadata.o dcahuff.o \
|
|
|
|
dcaadpcm.o
|
|
|
|
OBJS-$(CONFIG_DDS_DECODER) += dds.o
|
|
|
|
OBJS-$(CONFIG_DERF_DPCM_DECODER) += dpcm.o
|
|
|
|
OBJS-$(CONFIG_DIRAC_DECODER) += diracdec.o dirac.o diracdsp.o diractab.o \
|
|
|
|
dirac_arith.o dirac_dwt.o dirac_vlc.o
|
|
|
|
OBJS-$(CONFIG_DFA_DECODER) += dfa.o
|
avcodec: add DFPWM1a codec
From the wiki page (https://wiki.vexatos.com/dfpwm):
> DFPWM (Dynamic Filter Pulse Width Modulation) is an audio codec
> created by Ben “GreaseMonkey” Russell in 2012, originally to be used
> as a voice codec for asiekierka's pixmess, a C remake of 64pixels.
> It is a 1-bit-per-sample codec which uses a dynamic-strength one-pole
> low-pass filter as a predictor. Due to the fact that a raw DPFWM decoding
> creates a high-pitched whine, it is often followed by some post-processing
> filters to make the stream more listenable.
It has recently gained popularity through the ComputerCraft mod for
Minecraft, which added support for audio through this codec, as well as
the Computronics expansion which preceeded the official support. These
both implement the slightly adjusted 1a version of the codec, which is
the version I have chosen for this patch.
This patch adds a new codec (with encoding and decoding) for DFPWM1a.
The codec sources are pretty simple: they use the reference codec with
a basic wrapper to connect it to the FFmpeg AVCodec system.
To clarify, the codec does not have a specific sample rate - it is
provided by the container (or user), which is typically 48000, but has
also been known to be 32768. The codec does not specify channel info
either, and it's pretty much always used with one mono channel.
However, since it appears that libavcodec expects both sample rate and
channel count to be handled by either the codec or container, I have
made the decision to allow multiple channels interleaved, which as far
as I know has never been used, but it works fine here nevertheless. The
accompanying raw format has a channels option to set this. (I expect
most users of this will not use multiple channels, but it remains an
option just in case.)
This patch will be highly useful to ComputerCraft developers who are
working with audio, as it is the standard format for audio, and there
are few user-friendly encoders out there, and even fewer decoders. It
will streamline the process for importing and listening to audio,
replacing the need to write code or use tools that require very
specific input formats.
You may use the CraftOS-PC program (https://www.craftos-pc.cc) to test
out DFPWM playback. To use it, run the program and type this command:
"attach left speaker" Then run "speaker play <file.dfpwm>" for each file.
The app runs in a sandbox, so files have to be transferred in first;
the easiest way to do this is to simply drag the file on the window.
(Or copy files to the folder at https://www.craftos-pc.cc/docs/saves.)
Sample DFPWM files can be generated with an online tool at
https://music.madefor.cc. This is the current best way to encode DFPWM
files. Simply drag an audio file onto the page, and it will encode it,
giving a download link on the page.
I've made sure to update all of the docs as per Developer§7, and I've
tested it as per section 8. Test files encoded to DFPWM play correctly
in ComputerCraft, and other files that work in CC are correctly decoded.
I have also verified that corrupt files do not crash the decoder - this
should theoretically not be an issue as the result size is constant with
respect to the input size.
Signed-off-by: Jack Bruienne <jackbruienne@gmail.com>
3 years ago
|
|
|
OBJS-$(CONFIG_DFPWM_DECODER) += dfpwmdec.o
|
|
|
|
OBJS-$(CONFIG_DFPWM_ENCODER) += dfpwmenc.o
|
|
|
|
OBJS-$(CONFIG_DNXHD_DECODER) += dnxhddec.o dnxhddata.o
|
|
|
|
OBJS-$(CONFIG_DNXHD_ENCODER) += dnxhdenc.o dnxhddata.o
|
|
|
|
OBJS-$(CONFIG_DOLBY_E_DECODER) += dolby_e.o dolby_e_parse.o kbdwin.o
|
|
|
|
OBJS-$(CONFIG_DPX_DECODER) += dpx.o
|
|
|
|
OBJS-$(CONFIG_DPX_ENCODER) += dpxenc.o
|
|
|
|
OBJS-$(CONFIG_DSD_LSBF_DECODER) += dsddec.o dsd.o
|
|
|
|
OBJS-$(CONFIG_DSD_MSBF_DECODER) += dsddec.o dsd.o
|
|
|
|
OBJS-$(CONFIG_DSD_LSBF_PLANAR_DECODER) += dsddec.o dsd.o
|
|
|
|
OBJS-$(CONFIG_DSD_MSBF_PLANAR_DECODER) += dsddec.o dsd.o
|
|
|
|
OBJS-$(CONFIG_DSICINAUDIO_DECODER) += dsicinaudio.o
|
|
|
|
OBJS-$(CONFIG_DSICINVIDEO_DECODER) += dsicinvideo.o
|
|
|
|
OBJS-$(CONFIG_DSS_SP_DECODER) += dss_sp.o
|
|
|
|
OBJS-$(CONFIG_DST_DECODER) += dstdec.o dsd.o
|
|
|
|
OBJS-$(CONFIG_DVBSUB_DECODER) += dvbsubdec.o
|
|
|
|
OBJS-$(CONFIG_DVBSUB_ENCODER) += dvbsubenc.o
|
|
|
|
OBJS-$(CONFIG_DVDSUB_DECODER) += dvdsubdec.o dvdsub.o
|
|
|
|
OBJS-$(CONFIG_DVDSUB_ENCODER) += dvdsubenc.o dvdsub.o
|
|
|
|
OBJS-$(CONFIG_DVAUDIO_DECODER) += dvaudiodec.o
|
|
|
|
OBJS-$(CONFIG_DVVIDEO_DECODER) += dvdec.o dv.o dvdata.o
|
|
|
|
OBJS-$(CONFIG_DVVIDEO_ENCODER) += dvenc.o dv.o dvdata.o
|
|
|
|
OBJS-$(CONFIG_DXA_DECODER) += dxa.o
|
|
|
|
OBJS-$(CONFIG_DXTORY_DECODER) += dxtory.o
|
|
|
|
OBJS-$(CONFIG_DXV_DECODER) += dxv.o
|
|
|
|
OBJS-$(CONFIG_EAC3_DECODER) += eac3_data.o
|
|
|
|
OBJS-$(CONFIG_EAC3_ENCODER) += eac3enc.o eac3_data.o
|
|
|
|
OBJS-$(CONFIG_EACMV_DECODER) += eacmv.o
|
|
|
|
OBJS-$(CONFIG_EAMAD_DECODER) += eamad.o eaidct.o mpeg12.o \
|
|
|
|
mpeg12data.o
|
|
|
|
OBJS-$(CONFIG_EATGQ_DECODER) += eatgq.o eaidct.o
|
|
|
|
OBJS-$(CONFIG_EATGV_DECODER) += eatgv.o
|
|
|
|
OBJS-$(CONFIG_EATQI_DECODER) += eatqi.o eaidct.o mpeg12.o \
|
|
|
|
mpeg12data.o mpegvideodata.o
|
|
|
|
OBJS-$(CONFIG_EIGHTBPS_DECODER) += 8bps.o
|
|
|
|
OBJS-$(CONFIG_EIGHTSVX_EXP_DECODER) += 8svx.o
|
|
|
|
OBJS-$(CONFIG_EIGHTSVX_FIB_DECODER) += 8svx.o
|
|
|
|
OBJS-$(CONFIG_ESCAPE124_DECODER) += escape124.o
|
|
|
|
OBJS-$(CONFIG_ESCAPE130_DECODER) += escape130.o
|
|
|
|
OBJS-$(CONFIG_EVRC_DECODER) += evrcdec.o acelp_vectors.o lsp.o
|
|
|
|
OBJS-$(CONFIG_EXR_DECODER) += exr.o exrdsp.o
|
|
|
|
OBJS-$(CONFIG_EXR_ENCODER) += exrenc.o
|
|
|
|
OBJS-$(CONFIG_FASTAUDIO_DECODER) += fastaudio.o
|
|
|
|
OBJS-$(CONFIG_FFV1_DECODER) += ffv1dec.o ffv1.o
|
|
|
|
OBJS-$(CONFIG_FFV1_ENCODER) += ffv1enc.o ffv1.o
|
|
|
|
OBJS-$(CONFIG_FFWAVESYNTH_DECODER) += ffwavesynth.o
|
|
|
|
OBJS-$(CONFIG_FIC_DECODER) += fic.o
|
|
|
|
OBJS-$(CONFIG_FITS_DECODER) += fitsdec.o fits.o
|
|
|
|
OBJS-$(CONFIG_FITS_ENCODER) += fitsenc.o
|
|
|
|
OBJS-$(CONFIG_FLAC_DECODER) += flacdec.o flacdata.o flac.o
|
|
|
|
OBJS-$(CONFIG_FLAC_ENCODER) += flacenc.o flacdata.o flac.o
|
|
|
|
OBJS-$(CONFIG_FLASHSV_DECODER) += flashsv.o
|
|
|
|
OBJS-$(CONFIG_FLASHSV_ENCODER) += flashsvenc.o
|
|
|
|
OBJS-$(CONFIG_FLASHSV2_ENCODER) += flashsv2enc.o
|
|
|
|
OBJS-$(CONFIG_FLASHSV2_DECODER) += flashsv.o
|
|
|
|
OBJS-$(CONFIG_FLIC_DECODER) += flicvideo.o
|
|
|
|
OBJS-$(CONFIG_FLV_DECODER) += flvdec.o
|
|
|
|
OBJS-$(CONFIG_FLV_ENCODER) += flvenc.o
|
|
|
|
OBJS-$(CONFIG_FMVC_DECODER) += fmvc.o
|
|
|
|
OBJS-$(CONFIG_FOURXM_DECODER) += 4xm.o
|
|
|
|
OBJS-$(CONFIG_FRAPS_DECODER) += fraps.o
|
|
|
|
OBJS-$(CONFIG_FRWU_DECODER) += frwu.o
|
|
|
|
OBJS-$(CONFIG_G2M_DECODER) += g2meet.o elsdec.o mjpegdec_common.o
|
|
|
|
OBJS-$(CONFIG_G723_1_DECODER) += g723_1dec.o g723_1.o \
|
|
|
|
acelp_vectors.o celp_filters.o celp_math.o
|
|
|
|
OBJS-$(CONFIG_G723_1_ENCODER) += g723_1enc.o g723_1.o \
|
|
|
|
acelp_vectors.o celp_filters.o celp_math.o
|
|
|
|
OBJS-$(CONFIG_G729_DECODER) += g729dec.o lsp.o celp_math.o celp_filters.o acelp_filters.o acelp_pitch_delay.o acelp_vectors.o g729postfilter.o
|
|
|
|
OBJS-$(CONFIG_GDV_DECODER) += gdv.o
|
|
|
|
OBJS-$(CONFIG_GEM_DECODER) += gemdec.o
|
|
|
|
OBJS-$(CONFIG_GIF_DECODER) += gifdec.o lzw.o
|
|
|
|
OBJS-$(CONFIG_GIF_ENCODER) += gif.o lzwenc.o
|
|
|
|
OBJS-$(CONFIG_GREMLIN_DPCM_DECODER) += dpcm.o
|
|
|
|
OBJS-$(CONFIG_GSM_DECODER) += gsmdec.o gsmdec_data.o msgsmdec.o
|
|
|
|
OBJS-$(CONFIG_GSM_MS_DECODER) += gsmdec.o gsmdec_data.o msgsmdec.o
|
|
|
|
OBJS-$(CONFIG_H261_DECODER) += h261dec.o h261data.o h261.o
|
|
|
|
OBJS-$(CONFIG_H261_ENCODER) += h261enc.o h261data.o h261.o
|
|
|
|
OBJS-$(CONFIG_H263_DECODER) += h263dec.o h263.o ituh263dec.o \
|
|
|
|
mpeg4video.o mpeg4videodec.o \
|
|
|
|
h263data.o
|
|
|
|
OBJS-$(CONFIG_H263I_DECODER) += intelh263dec.o
|
|
|
|
OBJS-$(CONFIG_H263_ENCODER) += mpeg4video.o \
|
|
|
|
h263.o ituh263enc.o h263data.o
|
|
|
|
OBJS-$(CONFIG_H263_V4L2M2M_DECODER) += v4l2_m2m_dec.o
|
|
|
|
OBJS-$(CONFIG_H263_V4L2M2M_ENCODER) += v4l2_m2m_enc.o
|
|
|
|
OBJS-$(CONFIG_H264_DECODER) += h264dec.o h264_cabac.o h264_cavlc.o \
|
|
|
|
h264_direct.o h264_loopfilter.o \
|
|
|
|
h264_mb.o h264_picture.o \
|
|
|
|
h264_refs.o h264_sei.o \
|
avcodec/h274: add film grain synthesis routine
This could arguably also be a vf, but I decided to put it here since
decoders are technically required to apply film grain during the output
step, and I would rather want to avoid requiring users insert the
correct film grain synthesis filter on their own.
The code, while in C, is written in a way that unrolls/vectorizes fairly
well under -O3, and is reasonably cache friendly. On my CPU, a single
thread pushes about 400 FPS at 1080p.
Apart from hand-written assembly, one possible avenue of improvement
would be to change the access order to compute the grain row-by-row
rather than in 8x8 blocks. This requires some redundant PRNG calls, but
would make the algorithm more cache-oblivious.
The implementation has been written to the wording of SMPTE RDD 5-2006
as faithfully as I can manage. However, apart from passing a visual
inspection, no guarantee of correctness can be made due to the lack of
any publicly available reference implementation against which to
compare it.
Signed-off-by: Niklas Haas <git@haasn.dev>
Signed-off-by: James Almer <jamrial@gmail.com>
3 years ago
|
|
|
h264_slice.o h264data.o h274.o
|
|
|
|
OBJS-$(CONFIG_H264_AMF_ENCODER) += amfenc_h264.o
|
|
|
|
OBJS-$(CONFIG_H264_CUVID_DECODER) += cuviddec.o
|
|
|
|
OBJS-$(CONFIG_H264_MEDIACODEC_DECODER) += mediacodecdec.o
|
|
|
|
OBJS-$(CONFIG_H264_MF_ENCODER) += mfenc.o mf_utils.o
|
|
|
|
OBJS-$(CONFIG_H264_MMAL_DECODER) += mmaldec.o
|
|
|
|
OBJS-$(CONFIG_H264_NVENC_ENCODER) += nvenc_h264.o nvenc.o
|
|
|
|
OBJS-$(CONFIG_H264_OMX_ENCODER) += omx.o
|
|
|
|
OBJS-$(CONFIG_H264_QSV_DECODER) += qsvdec.o
|
|
|
|
OBJS-$(CONFIG_H264_QSV_ENCODER) += qsvenc_h264.o
|
|
|
|
OBJS-$(CONFIG_H264_RKMPP_DECODER) += rkmppdec.o
|
|
|
|
OBJS-$(CONFIG_H264_VAAPI_ENCODER) += vaapi_encode_h264.o h264_levels.o
|
|
|
|
OBJS-$(CONFIG_H264_VIDEOTOOLBOX_ENCODER) += videotoolboxenc.o
|
|
|
|
OBJS-$(CONFIG_H264_V4L2M2M_DECODER) += v4l2_m2m_dec.o
|
|
|
|
OBJS-$(CONFIG_H264_V4L2M2M_ENCODER) += v4l2_m2m_enc.o
|
|
|
|
OBJS-$(CONFIG_HAP_DECODER) += hapdec.o hap.o
|
|
|
|
OBJS-$(CONFIG_HAP_ENCODER) += hapenc.o hap.o
|
|
|
|
OBJS-$(CONFIG_HCA_DECODER) += hcadec.o
|
|
|
|
OBJS-$(CONFIG_HCOM_DECODER) += hcom.o
|
|
|
|
OBJS-$(CONFIG_HDR_DECODER) += hdrdec.o
|
|
|
|
OBJS-$(CONFIG_HDR_ENCODER) += hdrenc.o
|
|
|
|
OBJS-$(CONFIG_HEVC_DECODER) += hevcdec.o hevc_mvs.o \
|
|
|
|
hevc_cabac.o hevc_refs.o hevcpred.o \
|
|
|
|
hevcdsp.o hevc_filter.o hevc_data.o \
|
|
|
|
h274.o
|
|
|
|
OBJS-$(CONFIG_HEVC_AMF_ENCODER) += amfenc_hevc.o
|
|
|
|
OBJS-$(CONFIG_HEVC_CUVID_DECODER) += cuviddec.o
|
|
|
|
OBJS-$(CONFIG_HEVC_MEDIACODEC_DECODER) += mediacodecdec.o
|
|
|
|
OBJS-$(CONFIG_HEVC_MF_ENCODER) += mfenc.o mf_utils.o
|
|
|
|
OBJS-$(CONFIG_HEVC_NVENC_ENCODER) += nvenc_hevc.o nvenc.o
|
|
|
|
OBJS-$(CONFIG_HEVC_QSV_DECODER) += qsvdec.o
|
|
|
|
OBJS-$(CONFIG_HEVC_QSV_ENCODER) += qsvenc_hevc.o hevc_ps_enc.o \
|
|
|
|
hevc_data.o
|
|
|
|
OBJS-$(CONFIG_HEVC_RKMPP_DECODER) += rkmppdec.o
|
|
|
|
OBJS-$(CONFIG_HEVC_VAAPI_ENCODER) += vaapi_encode_h265.o h265_profile_level.o
|
|
|
|
OBJS-$(CONFIG_HEVC_V4L2M2M_DECODER) += v4l2_m2m_dec.o
|
|
|
|
OBJS-$(CONFIG_HEVC_V4L2M2M_ENCODER) += v4l2_m2m_enc.o
|
|
|
|
OBJS-$(CONFIG_HEVC_VIDEOTOOLBOX_ENCODER) += videotoolboxenc.o
|
|
|
|
OBJS-$(CONFIG_HNM4_VIDEO_DECODER) += hnm4video.o
|
|
|
|
OBJS-$(CONFIG_HQ_HQA_DECODER) += hq_hqa.o hq_hqadata.o hq_hqadsp.o \
|
|
|
|
canopus.o
|
|
|
|
OBJS-$(CONFIG_HQX_DECODER) += hqx.o hqxvlc.o hqxdsp.o canopus.o
|
|
|
|
OBJS-$(CONFIG_HUFFYUV_DECODER) += huffyuv.o huffyuvdec.o
|
|
|
|
OBJS-$(CONFIG_HUFFYUV_ENCODER) += huffyuv.o huffyuvenc.o
|
|
|
|
OBJS-$(CONFIG_HYMT_DECODER) += huffyuv.o huffyuvdec.o
|
|
|
|
OBJS-$(CONFIG_IDCIN_DECODER) += idcinvideo.o
|
|
|
|
OBJS-$(CONFIG_IDF_DECODER) += bintext.o cga_data.o
|
|
|
|
OBJS-$(CONFIG_IFF_ILBM_DECODER) += iff.o
|
|
|
|
OBJS-$(CONFIG_ILBC_DECODER) += ilbcdec.o
|
|
|
|
OBJS-$(CONFIG_IMC_DECODER) += imc.o
|
|
|
|
OBJS-$(CONFIG_IMM4_DECODER) += imm4.o
|
|
|
|
OBJS-$(CONFIG_IMM5_DECODER) += imm5.o
|
|
|
|
OBJS-$(CONFIG_INDEO2_DECODER) += indeo2.o
|
|
|
|
OBJS-$(CONFIG_INDEO3_DECODER) += indeo3.o
|
|
|
|
OBJS-$(CONFIG_INDEO4_DECODER) += indeo4.o ivi.o
|
|
|
|
OBJS-$(CONFIG_INDEO5_DECODER) += indeo5.o ivi.o
|
|
|
|
OBJS-$(CONFIG_INTERPLAY_ACM_DECODER) += interplayacm.o
|
|
|
|
OBJS-$(CONFIG_INTERPLAY_DPCM_DECODER) += dpcm.o
|
|
|
|
OBJS-$(CONFIG_INTERPLAY_VIDEO_DECODER) += interplayvideo.o
|
|
|
|
OBJS-$(CONFIG_IPU_DECODER) += mpeg12dec.o mpeg12.o mpeg12data.o
|
|
|
|
OBJS-$(CONFIG_JACOSUB_DECODER) += jacosubdec.o ass.o
|
|
|
|
OBJS-$(CONFIG_JPEG2000_ENCODER) += j2kenc.o mqcenc.o mqc.o jpeg2000.o \
|
|
|
|
jpeg2000dwt.o
|
|
|
|
OBJS-$(CONFIG_JPEG2000_DECODER) += jpeg2000dec.o jpeg2000.o jpeg2000dsp.o \
|
|
|
|
jpeg2000dwt.o mqcdec.o mqc.o
|
|
|
|
OBJS-$(CONFIG_JPEGLS_DECODER) += jpeglsdec.o jpegls.o
|
|
|
|
OBJS-$(CONFIG_JPEGLS_ENCODER) += jpeglsenc.o jpegls.o
|
|
|
|
OBJS-$(CONFIG_JV_DECODER) += jvdec.o
|
|
|
|
OBJS-$(CONFIG_KGV1_DECODER) += kgv1dec.o
|
|
|
|
OBJS-$(CONFIG_KMVC_DECODER) += kmvc.o
|
|
|
|
OBJS-$(CONFIG_LAGARITH_DECODER) += lagarith.o lagarithrac.o
|
|
|
|
OBJS-$(CONFIG_LJPEG_ENCODER) += ljpegenc.o mjpegenc_common.o
|
|
|
|
OBJS-$(CONFIG_LOCO_DECODER) += loco.o
|
|
|
|
OBJS-$(CONFIG_LSCR_DECODER) += lscrdec.o png.o pngdec.o pngdsp.o
|
|
|
|
OBJS-$(CONFIG_M101_DECODER) += m101.o
|
|
|
|
OBJS-$(CONFIG_MACE3_DECODER) += mace.o
|
|
|
|
OBJS-$(CONFIG_MACE6_DECODER) += mace.o
|
|
|
|
OBJS-$(CONFIG_MAGICYUV_DECODER) += magicyuv.o
|
|
|
|
OBJS-$(CONFIG_MAGICYUV_ENCODER) += magicyuvenc.o
|
|
|
|
OBJS-$(CONFIG_MDEC_DECODER) += mdec.o mpeg12.o mpeg12data.o
|
|
|
|
OBJS-$(CONFIG_METASOUND_DECODER) += metasound.o metasound_data.o \
|
|
|
|
twinvq.o
|
|
|
|
OBJS-$(CONFIG_MICRODVD_DECODER) += microdvddec.o ass.o
|
|
|
|
OBJS-$(CONFIG_MIMIC_DECODER) += mimic.o
|
|
|
|
OBJS-$(CONFIG_MJPEG_DECODER) += mjpegdec.o mjpegdec_common.o
|
|
|
|
OBJS-$(CONFIG_MJPEG_QSV_DECODER) += qsvdec.o
|
|
|
|
OBJS-$(CONFIG_MJPEG_ENCODER) += mjpegenc.o mjpegenc_common.o \
|
|
|
|
mjpegenc_huffman.o
|
|
|
|
OBJS-$(CONFIG_MJPEGB_DECODER) += mjpegbdec.o
|
|
|
|
OBJS-$(CONFIG_MJPEG_CUVID_DECODER) += cuviddec.o
|
|
|
|
OBJS-$(CONFIG_MJPEG_QSV_ENCODER) += qsvenc_jpeg.o
|
|
|
|
OBJS-$(CONFIG_MJPEG_VAAPI_ENCODER) += vaapi_encode_mjpeg.o
|
|
|
|
OBJS-$(CONFIG_MLP_DECODER) += mlpdec.o mlpdsp.o
|
|
|
|
OBJS-$(CONFIG_MLP_ENCODER) += mlpenc.o mlp.o
|
|
|
|
OBJS-$(CONFIG_MMVIDEO_DECODER) += mmvideo.o
|
|
|
|
OBJS-$(CONFIG_MOBICLIP_DECODER) += mobiclip.o
|
|
|
|
OBJS-$(CONFIG_MOTIONPIXELS_DECODER) += motionpixels.o
|
|
|
|
OBJS-$(CONFIG_MOVTEXT_DECODER) += movtextdec.o ass.o
|
|
|
|
OBJS-$(CONFIG_MOVTEXT_ENCODER) += movtextenc.o ass_split.o
|
|
|
|
OBJS-$(CONFIG_MP1_DECODER) += mpegaudiodec_fixed.o
|
|
|
|
OBJS-$(CONFIG_MP1FLOAT_DECODER) += mpegaudiodec_float.o
|
|
|
|
OBJS-$(CONFIG_MP2_DECODER) += mpegaudiodec_fixed.o
|
|
|
|
OBJS-$(CONFIG_MP2_ENCODER) += mpegaudioenc_float.o mpegaudio.o \
|
|
|
|
mpegaudiodata.o mpegaudiodsp_data.o \
|
|
|
|
mpegaudiotabs.o
|
|
|
|
OBJS-$(CONFIG_MP2FIXED_ENCODER) += mpegaudioenc_fixed.o mpegaudio.o \
|
|
|
|
mpegaudiodata.o mpegaudiodsp_data.o \
|
|
|
|
mpegaudiotabs.o
|
|
|
|
OBJS-$(CONFIG_MP2FLOAT_DECODER) += mpegaudiodec_float.o
|
|
|
|
OBJS-$(CONFIG_MP3_DECODER) += mpegaudiodec_fixed.o
|
|
|
|
OBJS-$(CONFIG_MP3_MF_ENCODER) += mfenc.o mf_utils.o
|
|
|
|
OBJS-$(CONFIG_MP3ADU_DECODER) += mpegaudiodec_fixed.o
|
|
|
|
OBJS-$(CONFIG_MP3ADUFLOAT_DECODER) += mpegaudiodec_float.o
|
|
|
|
OBJS-$(CONFIG_MP3FLOAT_DECODER) += mpegaudiodec_float.o
|
|
|
|
OBJS-$(CONFIG_MP3ON4_DECODER) += mpegaudiodec_fixed.o
|
|
|
|
OBJS-$(CONFIG_MP3ON4FLOAT_DECODER) += mpegaudiodec_float.o
|
|
|
|
OBJS-$(CONFIG_MPC7_DECODER) += mpc7.o mpc.o
|
|
|
|
OBJS-$(CONFIG_MPC8_DECODER) += mpc8.o mpc.o
|
|
|
|
OBJS-$(CONFIG_MPEGVIDEO_DECODER) += mpeg12dec.o mpeg12.o mpeg12data.o
|
|
|
|
OBJS-$(CONFIG_MPEG1VIDEO_DECODER) += mpeg12dec.o mpeg12.o mpeg12data.o
|
|
|
|
OBJS-$(CONFIG_MPEG1VIDEO_ENCODER) += mpeg12enc.o mpeg12.o
|
|
|
|
OBJS-$(CONFIG_MPEG1_CUVID_DECODER) += cuviddec.o
|
|
|
|
OBJS-$(CONFIG_MPEG1_V4L2M2M_DECODER) += v4l2_m2m_dec.o
|
|
|
|
OBJS-$(CONFIG_MPEG2_MMAL_DECODER) += mmaldec.o
|
|
|
|
OBJS-$(CONFIG_MPEG2_QSV_DECODER) += qsvdec.o
|
|
|
|
OBJS-$(CONFIG_MPEG2_QSV_ENCODER) += qsvenc_mpeg2.o
|
|
|
|
OBJS-$(CONFIG_MPEG2VIDEO_DECODER) += mpeg12dec.o mpeg12.o mpeg12data.o
|
|
|
|
OBJS-$(CONFIG_MPEG2VIDEO_ENCODER) += mpeg12enc.o mpeg12.o
|
|
|
|
OBJS-$(CONFIG_MPEG2_CUVID_DECODER) += cuviddec.o
|
|
|
|
OBJS-$(CONFIG_MPEG2_MEDIACODEC_DECODER) += mediacodecdec.o
|
|
|
|
OBJS-$(CONFIG_MPEG2_VAAPI_ENCODER) += vaapi_encode_mpeg2.o
|
|
|
|
OBJS-$(CONFIG_MPEG2_V4L2M2M_DECODER) += v4l2_m2m_dec.o
|
|
|
|
OBJS-$(CONFIG_MPEG4_DECODER) += xvididct.o
|
|
|
|
OBJS-$(CONFIG_MPEG4_ENCODER) += mpeg4videoenc.o
|
|
|
|
OBJS-$(CONFIG_MPEG4_CUVID_DECODER) += cuviddec.o
|
|
|
|
OBJS-$(CONFIG_MPEG4_MEDIACODEC_DECODER) += mediacodecdec.o
|
|
|
|
OBJS-$(CONFIG_MPEG4_OMX_ENCODER) += omx.o
|
|
|
|
OBJS-$(CONFIG_MPEG4_V4L2M2M_DECODER) += v4l2_m2m_dec.o
|
|
|
|
OBJS-$(CONFIG_MPEG4_V4L2M2M_ENCODER) += v4l2_m2m_enc.o
|
|
|
|
OBJS-$(CONFIG_MPL2_DECODER) += mpl2dec.o ass.o
|
|
|
|
OBJS-$(CONFIG_MSA1_DECODER) += mss3.o
|
|
|
|
OBJS-$(CONFIG_MSCC_DECODER) += mscc.o
|
|
|
|
OBJS-$(CONFIG_MSMPEG4V1_DECODER) += msmpeg4dec.o msmpeg4.o msmpeg4data.o
|
|
|
|
OBJS-$(CONFIG_MSMPEG4V2_DECODER) += msmpeg4dec.o msmpeg4.o msmpeg4data.o
|
|
|
|
OBJS-$(CONFIG_MSMPEG4V2_ENCODER) += msmpeg4enc.o msmpeg4.o msmpeg4data.o
|
|
|
|
OBJS-$(CONFIG_MSMPEG4V3_DECODER) += msmpeg4dec.o msmpeg4.o msmpeg4data.o
|
|
|
|
OBJS-$(CONFIG_MSMPEG4V3_ENCODER) += msmpeg4enc.o msmpeg4.o msmpeg4data.o
|
|
|
|
OBJS-$(CONFIG_MSNSIREN_DECODER) += siren.o
|
|
|
|
OBJS-$(CONFIG_MSP2_DECODER) += msp2dec.o
|
|
|
|
OBJS-$(CONFIG_MSRLE_DECODER) += msrle.o msrledec.o
|
|
|
|
OBJS-$(CONFIG_MSS1_DECODER) += mss1.o mss12.o
|
|
|
|
OBJS-$(CONFIG_MSS2_DECODER) += mss2.o mss12.o mss2dsp.o wmv2data.o
|
|
|
|
OBJS-$(CONFIG_MSVIDEO1_DECODER) += msvideo1.o
|
|
|
|
OBJS-$(CONFIG_MSVIDEO1_ENCODER) += msvideo1enc.o elbg.o
|
|
|
|
OBJS-$(CONFIG_MSZH_DECODER) += lcldec.o
|
|
|
|
OBJS-$(CONFIG_MTS2_DECODER) += mss4.o
|
|
|
|
OBJS-$(CONFIG_MV30_DECODER) += mv30.o
|
|
|
|
OBJS-$(CONFIG_MVC1_DECODER) += mvcdec.o
|
|
|
|
OBJS-$(CONFIG_MVC2_DECODER) += mvcdec.o
|
|
|
|
OBJS-$(CONFIG_MVDV_DECODER) += midivid.o
|
|
|
|
OBJS-$(CONFIG_MVHA_DECODER) += mvha.o
|
|
|
|
OBJS-$(CONFIG_MWSC_DECODER) += mwsc.o
|
|
|
|
OBJS-$(CONFIG_MXPEG_DECODER) += mxpegdec.o
|
|
|
|
OBJS-$(CONFIG_NELLYMOSER_DECODER) += nellymoserdec.o nellymoser.o
|
|
|
|
OBJS-$(CONFIG_NELLYMOSER_ENCODER) += nellymoserenc.o nellymoser.o
|
|
|
|
OBJS-$(CONFIG_NOTCHLC_DECODER) += notchlc.o
|
|
|
|
OBJS-$(CONFIG_NUV_DECODER) += nuv.o rtjpeg.o
|
|
|
|
OBJS-$(CONFIG_ON2AVC_DECODER) += on2avc.o on2avcdata.o
|
|
|
|
OBJS-$(CONFIG_OPUS_DECODER) += opusdec.o opus.o opus_celt.o opus_rc.o \
|
|
|
|
opus_pvq.o opus_silk.o opustab.o vorbis_data.o \
|
|
|
|
opusdsp.o
|
|
|
|
OBJS-$(CONFIG_OPUS_ENCODER) += opusenc.o opus.o opus_rc.o opustab.o opus_pvq.o \
|
|
|
|
opusenc_psy.o vorbis_data.o
|
|
|
|
OBJS-$(CONFIG_PAF_AUDIO_DECODER) += pafaudio.o
|
|
|
|
OBJS-$(CONFIG_PAF_VIDEO_DECODER) += pafvideo.o
|
|
|
|
OBJS-$(CONFIG_PAM_DECODER) += pnmdec.o pnm.o
|
|
|
|
OBJS-$(CONFIG_PAM_ENCODER) += pamenc.o
|
|
|
|
OBJS-$(CONFIG_PBM_DECODER) += pnmdec.o pnm.o
|
|
|
|
OBJS-$(CONFIG_PBM_ENCODER) += pnmenc.o
|
|
|
|
OBJS-$(CONFIG_PCX_DECODER) += pcx.o
|
|
|
|
OBJS-$(CONFIG_PCX_ENCODER) += pcxenc.o
|
|
|
|
OBJS-$(CONFIG_PFM_DECODER) += pnmdec.o pnm.o
|
|
|
|
OBJS-$(CONFIG_PFM_ENCODER) += pnmenc.o
|
|
|
|
OBJS-$(CONFIG_PGM_DECODER) += pnmdec.o pnm.o
|
|
|
|
OBJS-$(CONFIG_PGM_ENCODER) += pnmenc.o
|
|
|
|
OBJS-$(CONFIG_PGMYUV_DECODER) += pnmdec.o pnm.o
|
|
|
|
OBJS-$(CONFIG_PGMYUV_ENCODER) += pnmenc.o
|
|
|
|
OBJS-$(CONFIG_PGSSUB_DECODER) += pgssubdec.o
|
|
|
|
OBJS-$(CONFIG_PGX_DECODER) += pgxdec.o
|
|
|
|
OBJS-$(CONFIG_PHM_DECODER) += pnmdec.o pnm.o
|
|
|
|
OBJS-$(CONFIG_PHM_ENCODER) += pnmenc.o
|
|
|
|
OBJS-$(CONFIG_PHOTOCD_DECODER) += photocd.o
|
|
|
|
OBJS-$(CONFIG_PICTOR_DECODER) += pictordec.o cga_data.o
|
|
|
|
OBJS-$(CONFIG_PIXLET_DECODER) += pixlet.o
|
|
|
|
OBJS-$(CONFIG_PJS_DECODER) += textdec.o ass.o
|
|
|
|
OBJS-$(CONFIG_PNG_DECODER) += png.o pngdec.o pngdsp.o
|
|
|
|
OBJS-$(CONFIG_PNG_ENCODER) += png.o pngenc.o
|
|
|
|
OBJS-$(CONFIG_PPM_DECODER) += pnmdec.o pnm.o
|
|
|
|
OBJS-$(CONFIG_PPM_ENCODER) += pnmenc.o
|
|
|
|
OBJS-$(CONFIG_PRORES_DECODER) += proresdec2.o proresdsp.o proresdata.o
|
|
|
|
OBJS-$(CONFIG_PRORES_ENCODER) += proresenc_anatoliy.o proresdata.o
|
|
|
|
OBJS-$(CONFIG_PRORES_AW_ENCODER) += proresenc_anatoliy.o proresdata.o
|
|
|
|
OBJS-$(CONFIG_PRORES_KS_ENCODER) += proresenc_kostya.o proresdata.o
|
|
|
|
OBJS-$(CONFIG_PRORES_VIDEOTOOLBOX_ENCODER) += videotoolboxenc.o
|
|
|
|
OBJS-$(CONFIG_PROSUMER_DECODER) += prosumer.o
|
|
|
|
OBJS-$(CONFIG_PSD_DECODER) += psd.o
|
|
|
|
OBJS-$(CONFIG_PTX_DECODER) += ptx.o
|
|
|
|
OBJS-$(CONFIG_QCELP_DECODER) += qcelpdec.o \
|
|
|
|
celp_filters.o acelp_vectors.o \
|
|
|
|
acelp_filters.o
|
|
|
|
OBJS-$(CONFIG_QDM2_DECODER) += qdm2.o
|
|
|
|
OBJS-$(CONFIG_QDMC_DECODER) += qdmc.o
|
|
|
|
OBJS-$(CONFIG_QDRAW_DECODER) += qdrw.o
|
|
|
|
OBJS-$(CONFIG_QOI_DECODER) += qoidec.o
|
|
|
|
OBJS-$(CONFIG_QOI_ENCODER) += qoienc.o
|
|
|
|
OBJS-$(CONFIG_QPEG_DECODER) += qpeg.o
|
|
|
|
OBJS-$(CONFIG_QTRLE_DECODER) += qtrle.o
|
|
|
|
OBJS-$(CONFIG_QTRLE_ENCODER) += qtrleenc.o
|
|
|
|
OBJS-$(CONFIG_R10K_DECODER) += r210dec.o
|
|
|
|
OBJS-$(CONFIG_R10K_ENCODER) += r210enc.o
|
|
|
|
OBJS-$(CONFIG_R210_DECODER) += r210dec.o
|
|
|
|
OBJS-$(CONFIG_R210_ENCODER) += r210enc.o
|
|
|
|
OBJS-$(CONFIG_RA_144_DECODER) += ra144dec.o ra144.o celp_filters.o
|
|
|
|
OBJS-$(CONFIG_RA_144_ENCODER) += ra144enc.o ra144.o celp_filters.o
|
|
|
|
OBJS-$(CONFIG_RA_288_DECODER) += ra288.o celp_filters.o
|
|
|
|
OBJS-$(CONFIG_RALF_DECODER) += ralf.o
|
|
|
|
OBJS-$(CONFIG_RASC_DECODER) += rasc.o
|
|
|
|
OBJS-$(CONFIG_RAWVIDEO_DECODER) += rawdec.o
|
|
|
|
OBJS-$(CONFIG_RAWVIDEO_ENCODER) += rawenc.o
|
|
|
|
OBJS-$(CONFIG_REALTEXT_DECODER) += realtextdec.o ass.o
|
|
|
|
OBJS-$(CONFIG_RL2_DECODER) += rl2.o
|
|
|
|
OBJS-$(CONFIG_ROQ_DECODER) += roqvideodec.o roqvideo.o
|
|
|
|
OBJS-$(CONFIG_ROQ_ENCODER) += roqvideoenc.o roqvideo.o elbg.o
|
|
|
|
OBJS-$(CONFIG_ROQ_DPCM_DECODER) += dpcm.o
|
|
|
|
OBJS-$(CONFIG_ROQ_DPCM_ENCODER) += roqaudioenc.o
|
|
|
|
OBJS-$(CONFIG_RPZA_DECODER) += rpza.o
|
|
|
|
OBJS-$(CONFIG_RPZA_ENCODER) += rpzaenc.o
|
|
|
|
OBJS-$(CONFIG_RSCC_DECODER) += rscc.o
|
|
|
|
OBJS-$(CONFIG_RV10_DECODER) += rv10.o
|
|
|
|
OBJS-$(CONFIG_RV10_ENCODER) += rv10enc.o
|
|
|
|
OBJS-$(CONFIG_RV20_DECODER) += rv10.o
|
|
|
|
OBJS-$(CONFIG_RV20_ENCODER) += rv20enc.o
|
|
|
|
OBJS-$(CONFIG_RV30_DECODER) += rv30.o rv34.o rv30dsp.o
|
|
|
|
OBJS-$(CONFIG_RV40_DECODER) += rv40.o rv34.o rv40dsp.o
|
|
|
|
OBJS-$(CONFIG_SAMI_DECODER) += samidec.o ass.o htmlsubtitles.o
|
|
|
|
OBJS-$(CONFIG_S302M_DECODER) += s302m.o
|
|
|
|
OBJS-$(CONFIG_S302M_ENCODER) += s302menc.o
|
|
|
|
OBJS-$(CONFIG_SANM_DECODER) += sanm.o
|
|
|
|
OBJS-$(CONFIG_SCPR_DECODER) += scpr.o
|
|
|
|
OBJS-$(CONFIG_SCREENPRESSO_DECODER) += screenpresso.o
|
|
|
|
OBJS-$(CONFIG_SDX2_DPCM_DECODER) += dpcm.o
|
|
|
|
OBJS-$(CONFIG_SGA_DECODER) += sga.o
|
|
|
|
OBJS-$(CONFIG_SGI_DECODER) += sgidec.o
|
|
|
|
OBJS-$(CONFIG_SGI_ENCODER) += sgienc.o rle.o
|
|
|
|
OBJS-$(CONFIG_SGIRLE_DECODER) += sgirledec.o
|
|
|
|
OBJS-$(CONFIG_SHEERVIDEO_DECODER) += sheervideo.o
|
|
|
|
OBJS-$(CONFIG_SHORTEN_DECODER) += shorten.o
|
|
|
|
OBJS-$(CONFIG_SIPR_DECODER) += sipr.o acelp_pitch_delay.o \
|
|
|
|
celp_math.o acelp_vectors.o \
|
|
|
|
acelp_filters.o celp_filters.o \
|
|
|
|
sipr16k.o
|
|
|
|
OBJS-$(CONFIG_SIREN_DECODER) += siren.o
|
|
|
|
OBJS-$(CONFIG_SIMBIOSIS_IMX_DECODER) += imx.o
|
|
|
|
OBJS-$(CONFIG_SMACKAUD_DECODER) += smacker.o
|
|
|
|
OBJS-$(CONFIG_SMACKER_DECODER) += smacker.o
|
|
|
|
OBJS-$(CONFIG_SMC_DECODER) += smc.o
|
|
|
|
OBJS-$(CONFIG_SMC_ENCODER) += smcenc.o
|
|
|
|
OBJS-$(CONFIG_SNOW_DECODER) += snowdec.o snow.o snow_dwt.o
|
|
|
|
OBJS-$(CONFIG_SNOW_ENCODER) += snowenc.o snow.o snow_dwt.o \
|
|
|
|
h263.o h263data.o ituh263enc.o
|
|
|
|
OBJS-$(CONFIG_SOL_DPCM_DECODER) += dpcm.o
|
|
|
|
OBJS-$(CONFIG_SONIC_DECODER) += sonic.o
|
|
|
|
OBJS-$(CONFIG_SONIC_ENCODER) += sonic.o
|
|
|
|
OBJS-$(CONFIG_SONIC_LS_ENCODER) += sonic.o
|
|
|
|
OBJS-$(CONFIG_SPEEDHQ_DECODER) += speedhq.o mpeg12.o mpeg12data.o simple_idct.o
|
|
|
|
OBJS-$(CONFIG_SPEEDHQ_ENCODER) += speedhq.o mpeg12data.o mpeg12enc.o speedhqenc.o
|
|
|
|
OBJS-$(CONFIG_SPEEX_DECODER) += speexdec.o
|
|
|
|
OBJS-$(CONFIG_SP5X_DECODER) += sp5xdec.o
|
|
|
|
OBJS-$(CONFIG_SRGC_DECODER) += mscc.o
|
|
|
|
OBJS-$(CONFIG_SRT_DECODER) += srtdec.o ass.o htmlsubtitles.o
|
|
|
|
OBJS-$(CONFIG_SRT_ENCODER) += srtenc.o ass_split.o
|
|
|
|
OBJS-$(CONFIG_STL_DECODER) += textdec.o ass.o
|
|
|
|
OBJS-$(CONFIG_SUBRIP_DECODER) += srtdec.o ass.o htmlsubtitles.o
|
|
|
|
OBJS-$(CONFIG_SUBRIP_ENCODER) += srtenc.o ass_split.o
|
|
|
|
OBJS-$(CONFIG_SUBVIEWER1_DECODER) += textdec.o ass.o
|
|
|
|
OBJS-$(CONFIG_SUBVIEWER_DECODER) += subviewerdec.o ass.o
|
|
|
|
OBJS-$(CONFIG_SUNRAST_DECODER) += sunrast.o
|
|
|
|
OBJS-$(CONFIG_SUNRAST_ENCODER) += sunrastenc.o
|
|
|
|
OBJS-$(CONFIG_LIBRSVG_DECODER) += librsvgdec.o
|
|
|
|
OBJS-$(CONFIG_SBC_DECODER) += sbcdec.o sbcdec_data.o sbc.o
|
|
|
|
OBJS-$(CONFIG_SBC_ENCODER) += sbcenc.o sbc.o sbcdsp.o sbcdsp_data.o
|
|
|
|
OBJS-$(CONFIG_SVQ1_DECODER) += svq1dec.o svq1.o h263data.o
|
|
|
|
OBJS-$(CONFIG_SVQ1_ENCODER) += svq1enc.o svq1.o h263data.o \
|
|
|
|
h263.o ituh263enc.o
|
|
|
|
OBJS-$(CONFIG_SVQ3_DECODER) += svq3.o mpegutils.o h264data.o
|
|
|
|
OBJS-$(CONFIG_TEXT_DECODER) += textdec.o ass.o
|
|
|
|
OBJS-$(CONFIG_TEXT_ENCODER) += srtenc.o ass_split.o
|
|
|
|
OBJS-$(CONFIG_TAK_DECODER) += takdec.o tak.o takdsp.o
|
|
|
|
OBJS-$(CONFIG_TARGA_DECODER) += targa.o
|
|
|
|
OBJS-$(CONFIG_TARGA_ENCODER) += targaenc.o rle.o
|
|
|
|
OBJS-$(CONFIG_TARGA_Y216_DECODER) += targa_y216dec.o
|
|
|
|
OBJS-$(CONFIG_TDSC_DECODER) += tdsc.o
|
|
|
|
OBJS-$(CONFIG_TIERTEXSEQVIDEO_DECODER) += tiertexseqv.o
|
|
|
|
OBJS-$(CONFIG_TIFF_DECODER) += tiff.o lzw.o faxcompr.o tiff_common.o
|
|
|
|
OBJS-$(CONFIG_TIFF_ENCODER) += tiffenc.o rle.o lzwenc.o
|
|
|
|
OBJS-$(CONFIG_TMV_DECODER) += tmv.o cga_data.o
|
|
|
|
OBJS-$(CONFIG_TRUEHD_DECODER) += mlpdec.o mlpdsp.o
|
|
|
|
OBJS-$(CONFIG_TRUEHD_ENCODER) += mlpenc.o mlp.o
|
|
|
|
OBJS-$(CONFIG_TRUEMOTION1_DECODER) += truemotion1.o
|
|
|
|
OBJS-$(CONFIG_TRUEMOTION2_DECODER) += truemotion2.o
|
|
|
|
OBJS-$(CONFIG_TRUEMOTION2RT_DECODER) += truemotion2rt.o
|
|
|
|
OBJS-$(CONFIG_TRUESPEECH_DECODER) += truespeech.o
|
|
|
|
OBJS-$(CONFIG_TSCC_DECODER) += tscc.o msrledec.o
|
|
|
|
OBJS-$(CONFIG_TSCC2_DECODER) += tscc2.o
|
|
|
|
OBJS-$(CONFIG_TTA_DECODER) += tta.o ttadata.o ttadsp.o
|
|
|
|
OBJS-$(CONFIG_TTA_ENCODER) += ttaenc.o ttaencdsp.o ttadata.o
|
|
|
|
OBJS-$(CONFIG_TTML_ENCODER) += ttmlenc.o ass_split.o
|
|
|
|
OBJS-$(CONFIG_TWINVQ_DECODER) += twinvqdec.o twinvq.o metasound_data.o
|
|
|
|
OBJS-$(CONFIG_TXD_DECODER) += txd.o
|
|
|
|
OBJS-$(CONFIG_ULTI_DECODER) += ulti.o
|
|
|
|
OBJS-$(CONFIG_UTVIDEO_DECODER) += utvideodec.o utvideodsp.o
|
|
|
|
OBJS-$(CONFIG_UTVIDEO_ENCODER) += utvideoenc.o
|
|
|
|
OBJS-$(CONFIG_V210_DECODER) += v210dec.o
|
|
|
|
OBJS-$(CONFIG_V210_ENCODER) += v210enc.o
|
|
|
|
OBJS-$(CONFIG_V210X_DECODER) += v210x.o
|
|
|
|
OBJS-$(CONFIG_V308_DECODER) += v308dec.o
|
|
|
|
OBJS-$(CONFIG_V308_ENCODER) += v308enc.o
|
|
|
|
OBJS-$(CONFIG_V408_DECODER) += v408dec.o
|
|
|
|
OBJS-$(CONFIG_V408_ENCODER) += v408enc.o
|
|
|
|
OBJS-$(CONFIG_V410_DECODER) += v410dec.o
|
|
|
|
OBJS-$(CONFIG_V410_ENCODER) += v410enc.o
|
|
|
|
OBJS-$(CONFIG_VB_DECODER) += vb.o
|
|
|
|
OBJS-$(CONFIG_VBN_DECODER) += vbndec.o
|
|
|
|
OBJS-$(CONFIG_VBN_ENCODER) += vbnenc.o
|
|
|
|
OBJS-$(CONFIG_VBLE_DECODER) += vble.o
|
|
|
|
OBJS-$(CONFIG_VC1_DECODER) += vc1dec.o vc1_block.o vc1_loopfilter.o \
|
|
|
|
vc1_mc.o vc1_pred.o vc1.o vc1data.o \
|
|
|
|
msmpeg4dec.o msmpeg4.o msmpeg4data.o \
|
|
|
|
wmv2dsp.o wmv2data.o
|
|
|
|
OBJS-$(CONFIG_VC1_CUVID_DECODER) += cuviddec.o
|
|
|
|
OBJS-$(CONFIG_VC1_MMAL_DECODER) += mmaldec.o
|
|
|
|
OBJS-$(CONFIG_VC1_QSV_DECODER) += qsvdec.o
|
|
|
|
OBJS-$(CONFIG_VC1_V4L2M2M_DECODER) += v4l2_m2m_dec.o
|
avcodec: add a native SMPTE VC-2 HQ encoder
This commit adds a new encoder capable of creating BBC/SMPTE Dirac/VC-2 HQ
profile files.
Dirac is a wavelet based codec created by the BBC a little more than 10
years ago. Since then, wavelets have mostly gone out of style as they
did not provide adequate encoding gains at lower bitrates. Dirac was a
fully featured video codec equipped with perceptual masking, support for
most popular pixel formats, interlacing, overlapped-block motion
compensation, and other features. It found new life after being stripped
of various features and standardized as the VC-2 codec by the SMPTE with
an extra profile, the HQ profile that this encoder supports, added.
The HQ profile was based off of the Low-Delay profile previously
existing in Dirac. The profile forbids DC prediction and arithmetic
coding to focus on high performance and low delay at higher bitrates.
The standard bitrates for this profile vary but generally 1:4
compression is expected (~525 Mbps vs the 2200 Mbps for uncompressed
1080p50). The codec only supports I-frames, hence the high bitrates.
The structure of this encoder is simple: do a DWT transform on the
entire image, split it into multiple slices (specified by the user) and
encode them in parallel. All of the slices are of the same size, making
rate control and threading very trivial. Although only in C, this encoder
is capable of 30 frames per second on an 4 core 8 threads Ivy Bridge.
A lookup table is used to encode most of the coefficients.
No code was used from the GSoC encoder from 2007 except for the 2
transform functions in diracenc_transforms.c. All other code was written
from scratch.
This encoder outperforms any other encoders in quality, usability and in
features. Other existing implementations do not support 4 level
transforms or 64x64 blocks (slices), which greatly increase compression.
As previously said, the codec is meant for broadcasting, hence support
for non-broadcasting image widths, heights, bit depths, aspect ratios,
etc. are limited by the "level". Although this codec supports a few
chroma subsamplings (420, 422, 444), signalling those is generally
outside the specifications of the level used (3) and the reference
decoder will outright refuse to read any image with such a flag
signalled (it only supports 1920x1080 yuv422p10). However, most
implementations will happily read files with alternate dimensions,
framerates and formats signalled.
Therefore, in order to encode files other than 1080p50 yuv422p10le, you
need to provide an "-strict -2" argument to the command line. The FFmpeg
decoder will happily read any files made with non-standard parameters,
dimensions and subsamplings, and so will other implementations. IMO this
should be "-strict -1", but I'll leave that up for discussion.
There are still plenty of stuff to implement, for instance 5 more
wavelet transforms are still in the specs and supported by the decoder.
The encoder can be lossless, given a high enough bitrate.
Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
9 years ago
|
|
|
OBJS-$(CONFIG_VC2_ENCODER) += vc2enc.o vc2enc_dwt.o diractab.o
|
|
|
|
OBJS-$(CONFIG_VCR1_DECODER) += vcr1.o
|
|
|
|
OBJS-$(CONFIG_VMDAUDIO_DECODER) += vmdaudio.o
|
|
|
|
OBJS-$(CONFIG_VMDVIDEO_DECODER) += vmdvideo.o
|
|
|
|
OBJS-$(CONFIG_VMNC_DECODER) += vmnc.o
|
|
|
|
OBJS-$(CONFIG_VORBIS_DECODER) += vorbisdec.o vorbisdsp.o vorbis.o \
|
|
|
|
vorbis_data.o
|
|
|
|
OBJS-$(CONFIG_VORBIS_ENCODER) += vorbisenc.o vorbis.o \
|
|
|
|
vorbis_data.o
|
|
|
|
OBJS-$(CONFIG_VP3_DECODER) += vp3.o
|
|
|
|
OBJS-$(CONFIG_VP5_DECODER) += vp5.o vp56.o vp56data.o vp56rac.o
|
|
|
|
OBJS-$(CONFIG_VP6_DECODER) += vp6.o vp56.o vp56data.o \
|
|
|
|
vp6dsp.o vp56rac.o
|
|
|
|
OBJS-$(CONFIG_VP7_DECODER) += vp8.o vp56rac.o
|
|
|
|
OBJS-$(CONFIG_VP8_DECODER) += vp8.o vp56rac.o
|
|
|
|
OBJS-$(CONFIG_VP8_CUVID_DECODER) += cuviddec.o
|
|
|
|
OBJS-$(CONFIG_VP8_MEDIACODEC_DECODER) += mediacodecdec.o
|
|
|
|
OBJS-$(CONFIG_VP8_QSV_DECODER) += qsvdec.o
|
|
|
|
OBJS-$(CONFIG_VP8_RKMPP_DECODER) += rkmppdec.o
|
|
|
|
OBJS-$(CONFIG_VP8_VAAPI_ENCODER) += vaapi_encode_vp8.o
|
|
|
|
OBJS-$(CONFIG_VP8_V4L2M2M_DECODER) += v4l2_m2m_dec.o
|
|
|
|
OBJS-$(CONFIG_VP8_V4L2M2M_ENCODER) += v4l2_m2m_enc.o
|
|
|
|
OBJS-$(CONFIG_VP9_DECODER) += vp9.o vp9data.o vp9dsp.o vp9lpf.o vp9recon.o \
|
|
|
|
vp9block.o vp9prob.o vp9mvs.o vp56rac.o \
|
|
|
|
vp9dsp_8bpp.o vp9dsp_10bpp.o vp9dsp_12bpp.o
|
|
|
|
OBJS-$(CONFIG_VP9_CUVID_DECODER) += cuviddec.o
|
|
|
|
OBJS-$(CONFIG_VP9_MEDIACODEC_DECODER) += mediacodecdec.o
|
|
|
|
OBJS-$(CONFIG_VP9_RKMPP_DECODER) += rkmppdec.o
|
|
|
|
OBJS-$(CONFIG_VP9_VAAPI_ENCODER) += vaapi_encode_vp9.o
|
|
|
|
OBJS-$(CONFIG_VP9_QSV_ENCODER) += qsvenc_vp9.o
|
|
|
|
OBJS-$(CONFIG_VPLAYER_DECODER) += textdec.o ass.o
|
|
|
|
OBJS-$(CONFIG_VP9_V4L2M2M_DECODER) += v4l2_m2m_dec.o
|
|
|
|
OBJS-$(CONFIG_VQA_DECODER) += vqavideo.o
|
|
|
|
OBJS-$(CONFIG_WAVPACK_DECODER) += wavpack.o wavpackdata.o dsd.o
|
|
|
|
OBJS-$(CONFIG_WAVPACK_ENCODER) += wavpackdata.o wavpackenc.o
|
|
|
|
OBJS-$(CONFIG_WCMV_DECODER) += wcmv.o
|
|
|
|
OBJS-$(CONFIG_WEBP_DECODER) += webp.o
|
|
|
|
OBJS-$(CONFIG_WEBVTT_DECODER) += webvttdec.o ass.o
|
|
|
|
OBJS-$(CONFIG_WEBVTT_ENCODER) += webvttenc.o ass_split.o
|
|
|
|
OBJS-$(CONFIG_WMALOSSLESS_DECODER) += wmalosslessdec.o wma_common.o
|
|
|
|
OBJS-$(CONFIG_WMAPRO_DECODER) += wmaprodec.o wma.o wma_common.o
|
|
|
|
OBJS-$(CONFIG_WMAV1_DECODER) += wmadec.o wma.o wma_common.o aactab.o
|
|
|
|
OBJS-$(CONFIG_WMAV1_ENCODER) += wmaenc.o wma.o wma_common.o aactab.o
|
|
|
|
OBJS-$(CONFIG_WMAV2_DECODER) += wmadec.o wma.o wma_common.o aactab.o
|
|
|
|
OBJS-$(CONFIG_WMAV2_ENCODER) += wmaenc.o wma.o wma_common.o aactab.o
|
|
|
|
OBJS-$(CONFIG_WMAVOICE_DECODER) += wmavoice.o \
|
|
|
|
celp_filters.o \
|
|
|
|
acelp_vectors.o acelp_filters.o
|
|
|
|
OBJS-$(CONFIG_WMV1_DECODER) += msmpeg4dec.o msmpeg4.o msmpeg4data.o
|
|
|
|
OBJS-$(CONFIG_WMV1_ENCODER) += msmpeg4enc.o msmpeg4.o msmpeg4data.o
|
|
|
|
OBJS-$(CONFIG_WMV2_DECODER) += wmv2dec.o wmv2.o wmv2data.o \
|
|
|
|
msmpeg4dec.o msmpeg4.o msmpeg4data.o
|
|
|
|
OBJS-$(CONFIG_WMV2_ENCODER) += wmv2enc.o wmv2.o wmv2data.o \
|
|
|
|
msmpeg4.o msmpeg4enc.o msmpeg4data.o
|
|
|
|
OBJS-$(CONFIG_WNV1_DECODER) += wnv1.o
|
|
|
|
OBJS-$(CONFIG_WRAPPED_AVFRAME_DECODER) += wrapped_avframe.o
|
|
|
|
OBJS-$(CONFIG_WRAPPED_AVFRAME_ENCODER) += wrapped_avframe.o
|
|
|
|
OBJS-$(CONFIG_WS_SND1_DECODER) += ws-snd1.o
|
|
|
|
OBJS-$(CONFIG_XAN_DPCM_DECODER) += dpcm.o
|
|
|
|
OBJS-$(CONFIG_XAN_WC3_DECODER) += xan.o
|
|
|
|
OBJS-$(CONFIG_XAN_WC4_DECODER) += xxan.o
|
|
|
|
OBJS-$(CONFIG_XBIN_DECODER) += bintext.o cga_data.o
|
|
|
|
OBJS-$(CONFIG_XBM_DECODER) += xbmdec.o
|
|
|
|
OBJS-$(CONFIG_XBM_ENCODER) += xbmenc.o
|
|
|
|
OBJS-$(CONFIG_XFACE_DECODER) += xfacedec.o xface.o
|
|
|
|
OBJS-$(CONFIG_XFACE_ENCODER) += xfaceenc.o xface.o
|
|
|
|
OBJS-$(CONFIG_XL_DECODER) += xl.o
|
|
|
|
OBJS-$(CONFIG_XMA1_DECODER) += wmaprodec.o wma.o wma_common.o
|
|
|
|
OBJS-$(CONFIG_XMA2_DECODER) += wmaprodec.o wma.o wma_common.o
|
|
|
|
OBJS-$(CONFIG_XPM_DECODER) += xpmdec.o
|
|
|
|
OBJS-$(CONFIG_XSUB_DECODER) += xsubdec.o
|
|
|
|
OBJS-$(CONFIG_XSUB_ENCODER) += xsubenc.o
|
|
|
|
OBJS-$(CONFIG_XWD_DECODER) += xwddec.o
|
|
|
|
OBJS-$(CONFIG_XWD_ENCODER) += xwdenc.o
|
|
|
|
OBJS-$(CONFIG_Y41P_DECODER) += y41pdec.o
|
|
|
|
OBJS-$(CONFIG_Y41P_ENCODER) += y41penc.o
|
|
|
|
OBJS-$(CONFIG_YLC_DECODER) += ylc.o
|
|
|
|
OBJS-$(CONFIG_YOP_DECODER) += yop.o
|
|
|
|
OBJS-$(CONFIG_YUV4_DECODER) += yuv4dec.o
|
|
|
|
OBJS-$(CONFIG_YUV4_ENCODER) += yuv4enc.o
|
|
|
|
OBJS-$(CONFIG_ZEROCODEC_DECODER) += zerocodec.o
|
|
|
|
OBJS-$(CONFIG_ZLIB_DECODER) += lcldec.o
|
|
|
|
OBJS-$(CONFIG_ZLIB_ENCODER) += lclenc.o
|
|
|
|
OBJS-$(CONFIG_ZMBV_DECODER) += zmbv.o
|
|
|
|
OBJS-$(CONFIG_ZMBV_ENCODER) += zmbvenc.o
|
|
|
|
|
|
|
|
# (AD)PCM decoders/encoders
|
|
|
|
OBJS-$(CONFIG_PCM_ALAW_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_ALAW_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_BLURAY_ENCODER) += pcm-blurayenc.o
|
|
|
|
OBJS-$(CONFIG_PCM_BLURAY_DECODER) += pcm-bluray.o
|
|
|
|
OBJS-$(CONFIG_PCM_DVD_DECODER) += pcm-dvd.o
|
|
|
|
OBJS-$(CONFIG_PCM_DVD_ENCODER) += pcm-dvdenc.o
|
|
|
|
OBJS-$(CONFIG_PCM_F16LE_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_F24LE_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_F32BE_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_F32BE_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_F32LE_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_F32LE_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_F64BE_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_F64BE_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_F64LE_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_F64LE_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_LXF_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_MULAW_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_MULAW_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S8_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S8_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S8_PLANAR_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S8_PLANAR_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S16BE_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S16BE_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S16BE_PLANAR_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S16BE_PLANAR_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S16LE_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S16LE_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S16LE_PLANAR_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S16LE_PLANAR_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S24BE_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S24BE_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S24DAUD_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S24DAUD_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S24LE_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S24LE_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S24LE_PLANAR_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S24LE_PLANAR_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S32BE_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S32BE_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S32LE_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S32LE_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S32LE_PLANAR_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S32LE_PLANAR_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S64BE_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S64BE_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S64LE_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_S64LE_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_SGA_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_U8_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_U8_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_U16BE_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_U16BE_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_U16LE_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_U16LE_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_U24BE_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_U24BE_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_U24LE_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_U24LE_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_U32BE_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_U32BE_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_U32LE_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_U32LE_ENCODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_VIDC_DECODER) += pcm.o
|
|
|
|
OBJS-$(CONFIG_PCM_VIDC_ENCODER) += pcm.o
|
|
|
|
|
|
|
|
OBJS-$(CONFIG_ADPCM_4XM_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_ADX_DECODER) += adxdec.o adx.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_ADX_ENCODER) += adxenc.o adx.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_AFC_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_AGM_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_AICA_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_ARGO_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_ARGO_ENCODER) += adpcm.o adpcm_data.o adpcmenc.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_CT_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_DTK_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_EA_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_EA_MAXIS_XA_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_EA_R1_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_EA_R2_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_EA_R3_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_EA_XAS_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_G722_DECODER) += g722.o g722dsp.o g722dec.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_G722_ENCODER) += g722.o g722dsp.o g722enc.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_G726_DECODER) += g726.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_G726_ENCODER) += g726.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_G726LE_DECODER) += g726.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_G726LE_ENCODER) += g726.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_ACORN_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_AMV_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_AMV_ENCODER) += adpcmenc.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_ALP_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_ALP_ENCODER) += adpcmenc.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_APC_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_APM_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_APM_ENCODER) += adpcmenc.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_CUNNING_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_DAT4_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_DK3_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_DK4_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_EA_EACS_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_EA_SEAD_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_ISS_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_MOFLEX_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_MTF_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_OKI_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_QT_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_QT_ENCODER) += adpcmenc.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_RAD_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_SSI_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_SSI_ENCODER) += adpcmenc.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_SMJPEG_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_WAV_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_WAV_ENCODER) += adpcmenc.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_WS_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_WS_ENCODER) += adpcmenc.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_MS_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_MS_ENCODER) += adpcmenc.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_MTAF_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_PSX_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_SBPRO_2_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_SBPRO_3_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_SBPRO_4_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_SWF_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_SWF_ENCODER) += adpcmenc.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_THP_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_THP_LE_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_VIMA_DECODER) += vima.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_XA_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_YAMAHA_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_YAMAHA_ENCODER) += adpcmenc.o adpcm_data.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_ZORK_DECODER) += adpcm.o adpcm_data.o
|
|
|
|
|
|
|
|
# hardware accelerators
|
|
|
|
OBJS-$(CONFIG_D3D11VA) += dxva2.o
|
|
|
|
OBJS-$(CONFIG_DXVA2) += dxva2.o
|
|
|
|
OBJS-$(CONFIG_NVDEC) += nvdec.o
|
|
|
|
OBJS-$(CONFIG_VAAPI) += vaapi_decode.o
|
|
|
|
OBJS-$(CONFIG_VIDEOTOOLBOX) += videotoolbox.o
|
|
|
|
OBJS-$(CONFIG_VDPAU) += vdpau.o
|
|
|
|
|
|
|
|
OBJS-$(CONFIG_AV1_D3D11VA_HWACCEL) += dxva2_av1.o
|
|
|
|
OBJS-$(CONFIG_AV1_DXVA2_HWACCEL) += dxva2_av1.o
|
|
|
|
OBJS-$(CONFIG_AV1_NVDEC_HWACCEL) += nvdec_av1.o
|
|
|
|
OBJS-$(CONFIG_AV1_VAAPI_HWACCEL) += vaapi_av1.o
|
|
|
|
OBJS-$(CONFIG_AV1_VDPAU_HWACCEL) += vdpau_av1.o
|
|
|
|
OBJS-$(CONFIG_H263_VAAPI_HWACCEL) += vaapi_mpeg4.o
|
|
|
|
OBJS-$(CONFIG_H263_VIDEOTOOLBOX_HWACCEL) += videotoolbox.o
|
|
|
|
OBJS-$(CONFIG_H264_D3D11VA_HWACCEL) += dxva2_h264.o
|
|
|
|
OBJS-$(CONFIG_H264_DXVA2_HWACCEL) += dxva2_h264.o
|
|
|
|
OBJS-$(CONFIG_H264_NVDEC_HWACCEL) += nvdec_h264.o
|
|
|
|
OBJS-$(CONFIG_H264_QSV_HWACCEL) += qsvdec.o
|
|
|
|
OBJS-$(CONFIG_H264_VAAPI_HWACCEL) += vaapi_h264.o
|
|
|
|
OBJS-$(CONFIG_H264_VDPAU_HWACCEL) += vdpau_h264.o
|
|
|
|
OBJS-$(CONFIG_H264_VIDEOTOOLBOX_HWACCEL) += videotoolbox.o
|
|
|
|
OBJS-$(CONFIG_HEVC_D3D11VA_HWACCEL) += dxva2_hevc.o
|
|
|
|
OBJS-$(CONFIG_HEVC_DXVA2_HWACCEL) += dxva2_hevc.o
|
|
|
|
OBJS-$(CONFIG_HEVC_NVDEC_HWACCEL) += nvdec_hevc.o
|
|
|
|
OBJS-$(CONFIG_HEVC_QSV_HWACCEL) += qsvdec.o
|
|
|
|
OBJS-$(CONFIG_HEVC_VAAPI_HWACCEL) += vaapi_hevc.o h265_profile_level.o
|
|
|
|
OBJS-$(CONFIG_HEVC_VDPAU_HWACCEL) += vdpau_hevc.o h265_profile_level.o
|
|
|
|
OBJS-$(CONFIG_MJPEG_NVDEC_HWACCEL) += nvdec_mjpeg.o
|
|
|
|
OBJS-$(CONFIG_MJPEG_VAAPI_HWACCEL) += vaapi_mjpeg.o
|
|
|
|
OBJS-$(CONFIG_MPEG1_NVDEC_HWACCEL) += nvdec_mpeg12.o
|
|
|
|
OBJS-$(CONFIG_MPEG1_VDPAU_HWACCEL) += vdpau_mpeg12.o
|
|
|
|
OBJS-$(CONFIG_MPEG1_VIDEOTOOLBOX_HWACCEL) += videotoolbox.o
|
|
|
|
OBJS-$(CONFIG_MPEG2_D3D11VA_HWACCEL) += dxva2_mpeg2.o
|
|
|
|
OBJS-$(CONFIG_MPEG2_DXVA2_HWACCEL) += dxva2_mpeg2.o
|
|
|
|
OBJS-$(CONFIG_MPEG2_NVDEC_HWACCEL) += nvdec_mpeg12.o
|
|
|
|
OBJS-$(CONFIG_MPEG2_QSV_HWACCEL) += qsvdec.o
|
|
|
|
OBJS-$(CONFIG_MPEG2_VAAPI_HWACCEL) += vaapi_mpeg2.o
|
|
|
|
OBJS-$(CONFIG_MPEG2_VDPAU_HWACCEL) += vdpau_mpeg12.o
|
|
|
|
OBJS-$(CONFIG_MPEG2_VIDEOTOOLBOX_HWACCEL) += videotoolbox.o
|
|
|
|
OBJS-$(CONFIG_MPEG4_NVDEC_HWACCEL) += nvdec_mpeg4.o
|
|
|
|
OBJS-$(CONFIG_MPEG4_VAAPI_HWACCEL) += vaapi_mpeg4.o
|
|
|
|
OBJS-$(CONFIG_MPEG4_VDPAU_HWACCEL) += vdpau_mpeg4.o
|
|
|
|
OBJS-$(CONFIG_MPEG4_VIDEOTOOLBOX_HWACCEL) += videotoolbox.o
|
|
|
|
OBJS-$(CONFIG_VC1_D3D11VA_HWACCEL) += dxva2_vc1.o
|
|
|
|
OBJS-$(CONFIG_VC1_DXVA2_HWACCEL) += dxva2_vc1.o
|
|
|
|
OBJS-$(CONFIG_VC1_NVDEC_HWACCEL) += nvdec_vc1.o
|
|
|
|
OBJS-$(CONFIG_VC1_QSV_HWACCEL) += qsvdec.o
|
|
|
|
OBJS-$(CONFIG_VC1_VAAPI_HWACCEL) += vaapi_vc1.o
|
|
|
|
OBJS-$(CONFIG_VC1_VDPAU_HWACCEL) += vdpau_vc1.o
|
|
|
|
OBJS-$(CONFIG_VP8_NVDEC_HWACCEL) += nvdec_vp8.o
|
|
|
|
OBJS-$(CONFIG_VP8_VAAPI_HWACCEL) += vaapi_vp8.o
|
|
|
|
OBJS-$(CONFIG_VP9_D3D11VA_HWACCEL) += dxva2_vp9.o
|
|
|
|
OBJS-$(CONFIG_VP9_DXVA2_HWACCEL) += dxva2_vp9.o
|
|
|
|
OBJS-$(CONFIG_VP9_NVDEC_HWACCEL) += nvdec_vp9.o
|
|
|
|
OBJS-$(CONFIG_VP9_VAAPI_HWACCEL) += vaapi_vp9.o
|
|
|
|
OBJS-$(CONFIG_VP9_VDPAU_HWACCEL) += vdpau_vp9.o
|
|
|
|
OBJS-$(CONFIG_VP9_VIDEOTOOLBOX_HWACCEL) += videotoolbox_vp9.o
|
|
|
|
OBJS-$(CONFIG_VP8_QSV_HWACCEL) += qsvdec.o
|
|
|
|
|
|
|
|
# Objects duplicated from other libraries for shared builds
|
|
|
|
SHLIBOBJS += log2_tab.o reverse.o
|
|
|
|
|
|
|
|
# General libavformat dependencies
|
|
|
|
OBJS-$(CONFIG_FITS_DEMUXER) += fits.o
|
|
|
|
OBJS-$(CONFIG_TAK_DEMUXER) += tak.o
|
|
|
|
|
|
|
|
# libavformat dependencies for static builds
|
|
|
|
STLIBOBJS-$(CONFIG_AVFORMAT) += to_upper4.o
|
|
|
|
STLIBOBJS-$(CONFIG_ISO_MEDIA) += mpegaudiotabs.o
|
|
|
|
STLIBOBJS-$(CONFIG_FLV_MUXER) += mpeg4audio_sample_rates.o
|
|
|
|
STLIBOBJS-$(CONFIG_HLS_DEMUXER) += ac3_channel_layout_tab.o
|
|
|
|
STLIBOBJS-$(CONFIG_MATROSKA_DEMUXER) += mpeg4audio_sample_rates.o
|
|
|
|
STLIBOBJS-$(CONFIG_MOV_DEMUXER) += ac3_channel_layout_tab.o
|
|
|
|
STLIBOBJS-$(CONFIG_MXF_MUXER) += golomb.o
|
|
|
|
STLIBOBJS-$(CONFIG_MP3_MUXER) += mpegaudiotabs.o
|
|
|
|
STLIBOBJS-$(CONFIG_NUT_MUXER) += mpegaudiotabs.o
|
|
|
|
STLIBOBJS-$(CONFIG_RTPDEC) += jpegtables.o
|
|
|
|
STLIBOBJS-$(CONFIG_RTP_MUXER) += golomb.o jpegtables.o \
|
|
|
|
mpeg4audio_sample_rates.o
|
|
|
|
STLIBOBJS-$(CONFIG_SPDIF_MUXER) += dca_sample_rate_tab.o
|
|
|
|
|
|
|
|
# libavfilter dependencies
|
|
|
|
OBJS-$(CONFIG_ELBG_FILTER) += elbg.o
|
|
|
|
|
|
|
|
# external codec libraries
|
|
|
|
OBJS-$(CONFIG_AAC_AT_DECODER) += audiotoolboxdec.o
|
|
|
|
OBJS-$(CONFIG_AC3_AT_DECODER) += audiotoolboxdec.o
|
|
|
|
OBJS-$(CONFIG_ADPCM_IMA_QT_AT_DECODER) += audiotoolboxdec.o
|
|
|
|
OBJS-$(CONFIG_ALAC_AT_DECODER) += audiotoolboxdec.o
|
|
|
|
OBJS-$(CONFIG_AMR_NB_AT_DECODER) += audiotoolboxdec.o
|
|
|
|
OBJS-$(CONFIG_EAC3_AT_DECODER) += audiotoolboxdec.o
|
|
|
|
OBJS-$(CONFIG_GSM_MS_AT_DECODER) += audiotoolboxdec.o
|
|
|
|
OBJS-$(CONFIG_ILBC_AT_DECODER) += audiotoolboxdec.o
|
|
|
|
OBJS-$(CONFIG_MP1_AT_DECODER) += audiotoolboxdec.o
|
|
|
|
OBJS-$(CONFIG_MP2_AT_DECODER) += audiotoolboxdec.o
|
|
|
|
OBJS-$(CONFIG_MP3_AT_DECODER) += audiotoolboxdec.o
|
|
|
|
OBJS-$(CONFIG_PCM_MULAW_AT_DECODER) += audiotoolboxdec.o
|
|
|
|
OBJS-$(CONFIG_PCM_ALAW_AT_DECODER) += audiotoolboxdec.o
|
|
|
|
OBJS-$(CONFIG_QDMC_AT_DECODER) += audiotoolboxdec.o
|
|
|
|
OBJS-$(CONFIG_QDM2_AT_DECODER) += audiotoolboxdec.o
|
|
|
|
OBJS-$(CONFIG_AAC_AT_ENCODER) += audiotoolboxenc.o
|
|
|
|
OBJS-$(CONFIG_ALAC_AT_ENCODER) += audiotoolboxenc.o
|
|
|
|
OBJS-$(CONFIG_ILBC_AT_ENCODER) += audiotoolboxenc.o
|
|
|
|
OBJS-$(CONFIG_PCM_ALAW_AT_ENCODER) += audiotoolboxenc.o
|
|
|
|
OBJS-$(CONFIG_PCM_MULAW_AT_ENCODER) += audiotoolboxenc.o
|
|
|
|
OBJS-$(CONFIG_LIBAOM_AV1_DECODER) += libaomdec.o
|
|
|
|
OBJS-$(CONFIG_LIBAOM_AV1_ENCODER) += libaomenc.o
|
|
|
|
OBJS-$(CONFIG_LIBARIBB24_DECODER) += libaribb24.o ass.o
|
|
|
|
OBJS-$(CONFIG_LIBCELT_DECODER) += libcelt_dec.o
|
|
|
|
OBJS-$(CONFIG_LIBCODEC2_DECODER) += libcodec2.o
|
|
|
|
OBJS-$(CONFIG_LIBCODEC2_ENCODER) += libcodec2.o
|
|
|
|
OBJS-$(CONFIG_LIBDAV1D_DECODER) += libdav1d.o
|
|
|
|
OBJS-$(CONFIG_LIBDAVS2_DECODER) += libdavs2.o
|
|
|
|
OBJS-$(CONFIG_LIBFDK_AAC_DECODER) += libfdk-aacdec.o
|
|
|
|
OBJS-$(CONFIG_LIBFDK_AAC_ENCODER) += libfdk-aacenc.o
|
|
|
|
OBJS-$(CONFIG_LIBGSM_DECODER) += libgsmdec.o
|
|
|
|
OBJS-$(CONFIG_LIBGSM_ENCODER) += libgsmenc.o
|
|
|
|
OBJS-$(CONFIG_LIBGSM_MS_DECODER) += libgsmdec.o
|
|
|
|
OBJS-$(CONFIG_LIBGSM_MS_ENCODER) += libgsmenc.o
|
|
|
|
OBJS-$(CONFIG_LIBILBC_DECODER) += libilbc.o
|
|
|
|
OBJS-$(CONFIG_LIBILBC_ENCODER) += libilbc.o
|
|
|
|
OBJS-$(CONFIG_LIBJXL_DECODER) += libjxldec.o libjxl.o
|
|
|
|
OBJS-$(CONFIG_LIBJXL_ENCODER) += libjxlenc.o libjxl.o
|
|
|
|
OBJS-$(CONFIG_LIBKVAZAAR_ENCODER) += libkvazaar.o
|
|
|
|
OBJS-$(CONFIG_LIBMP3LAME_ENCODER) += libmp3lame.o
|
|
|
|
OBJS-$(CONFIG_LIBOPENCORE_AMRNB_DECODER) += libopencore-amr.o
|
|
|
|
OBJS-$(CONFIG_LIBOPENCORE_AMRNB_ENCODER) += libopencore-amr.o
|
|
|
|
OBJS-$(CONFIG_LIBOPENCORE_AMRWB_DECODER) += libopencore-amr.o
|
|
|
|
OBJS-$(CONFIG_LIBOPENH264_DECODER) += libopenh264dec.o libopenh264.o
|
|
|
|
OBJS-$(CONFIG_LIBOPENH264_ENCODER) += libopenh264enc.o libopenh264.o
|
|
|
|
OBJS-$(CONFIG_LIBOPENJPEG_DECODER) += libopenjpegdec.o
|
|
|
|
OBJS-$(CONFIG_LIBOPENJPEG_ENCODER) += libopenjpegenc.o
|
|
|
|
OBJS-$(CONFIG_LIBOPUS_DECODER) += libopusdec.o libopus.o \
|
|
|
|
vorbis_data.o
|
|
|
|
OBJS-$(CONFIG_LIBOPUS_ENCODER) += libopusenc.o libopus.o \
|
|
|
|
vorbis_data.o
|
|
|
|
OBJS-$(CONFIG_LIBRAV1E_ENCODER) += librav1e.o
|
|
|
|
OBJS-$(CONFIG_LIBSHINE_ENCODER) += libshine.o
|
|
|
|
OBJS-$(CONFIG_LIBSPEEX_DECODER) += libspeexdec.o
|
|
|
|
OBJS-$(CONFIG_LIBSPEEX_ENCODER) += libspeexenc.o
|
|
|
|
OBJS-$(CONFIG_LIBSVTAV1_ENCODER) += libsvtav1.o
|
|
|
|
OBJS-$(CONFIG_LIBTHEORA_ENCODER) += libtheoraenc.o
|
|
|
|
OBJS-$(CONFIG_LIBTWOLAME_ENCODER) += libtwolame.o
|
|
|
|
OBJS-$(CONFIG_LIBUAVS3D_DECODER) += libuavs3d.o
|
|
|
|
OBJS-$(CONFIG_LIBVO_AMRWBENC_ENCODER) += libvo-amrwbenc.o
|
|
|
|
OBJS-$(CONFIG_LIBVORBIS_DECODER) += libvorbisdec.o
|
|
|
|
OBJS-$(CONFIG_LIBVORBIS_ENCODER) += libvorbisenc.o \
|
|
|
|
vorbis_data.o
|
|
|
|
OBJS-$(CONFIG_LIBVPX_VP8_DECODER) += libvpxdec.o
|
|
|
|
OBJS-$(CONFIG_LIBVPX_VP8_ENCODER) += libvpxenc.o
|
|
|
|
OBJS-$(CONFIG_LIBVPX_VP9_DECODER) += libvpxdec.o libvpx.o
|
|
|
|
OBJS-$(CONFIG_LIBVPX_VP9_ENCODER) += libvpxenc.o libvpx.o
|
|
|
|
OBJS-$(CONFIG_LIBWEBP_ENCODER) += libwebpenc_common.o libwebpenc.o
|
|
|
|
OBJS-$(CONFIG_LIBWEBP_ANIM_ENCODER) += libwebpenc_common.o libwebpenc_animencoder.o
|
|
|
|
OBJS-$(CONFIG_LIBX262_ENCODER) += libx264.o
|
|
|
|
OBJS-$(CONFIG_LIBX264_ENCODER) += libx264.o
|
|
|
|
OBJS-$(CONFIG_LIBX265_ENCODER) += libx265.o
|
|
|
|
OBJS-$(CONFIG_LIBXAVS_ENCODER) += libxavs.o
|
|
|
|
OBJS-$(CONFIG_LIBXAVS2_ENCODER) += libxavs2.o
|
|
|
|
OBJS-$(CONFIG_LIBXVID_ENCODER) += libxvid.o
|
|
|
|
OBJS-$(CONFIG_LIBZVBI_TELETEXT_DECODER) += libzvbi-teletextdec.o ass.o
|
|
|
|
|
|
|
|
# parsers
|
|
|
|
OBJS-$(CONFIG_AAC_LATM_PARSER) += latm_parser.o
|
|
|
|
OBJS-$(CONFIG_AAC_PARSER) += aac_parser.o aac_ac3_parser.o
|
|
|
|
OBJS-$(CONFIG_AC3_PARSER) += aac_ac3_parser.o ac3tab.o \
|
|
|
|
ac3_channel_layout_tab.o
|
|
|
|
OBJS-$(CONFIG_ADX_PARSER) += adx_parser.o adx.o
|
|
|
|
OBJS-$(CONFIG_AMR_PARSER) += amr_parser.o
|
|
|
|
OBJS-$(CONFIG_AV1_PARSER) += av1_parser.o
|
|
|
|
OBJS-$(CONFIG_AVS2_PARSER) += avs2.o avs2_parser.o
|
|
|
|
OBJS-$(CONFIG_AVS3_PARSER) += avs3_parser.o
|
|
|
|
OBJS-$(CONFIG_BMP_PARSER) += bmp_parser.o
|
|
|
|
OBJS-$(CONFIG_CAVSVIDEO_PARSER) += cavs_parser.o
|
|
|
|
OBJS-$(CONFIG_COOK_PARSER) += cook_parser.o
|
|
|
|
OBJS-$(CONFIG_CRI_PARSER) += cri_parser.o
|
|
|
|
OBJS-$(CONFIG_DCA_PARSER) += dca_parser.o dca_exss.o dca.o \
|
|
|
|
dca_sample_rate_tab.o
|
|
|
|
OBJS-$(CONFIG_DIRAC_PARSER) += dirac_parser.o
|
|
|
|
OBJS-$(CONFIG_DNXHD_PARSER) += dnxhd_parser.o dnxhddata.o
|
|
|
|
OBJS-$(CONFIG_DOLBY_E_PARSER) += dolby_e_parser.o dolby_e_parse.o
|
|
|
|
OBJS-$(CONFIG_DPX_PARSER) += dpx_parser.o
|
|
|
|
OBJS-$(CONFIG_DVAUDIO_PARSER) += dvaudio_parser.o
|
|
|
|
OBJS-$(CONFIG_DVBSUB_PARSER) += dvbsub_parser.o
|
|
|
|
OBJS-$(CONFIG_DVD_NAV_PARSER) += dvd_nav_parser.o
|
|
|
|
OBJS-$(CONFIG_DVDSUB_PARSER) += dvdsub_parser.o
|
|
|
|
OBJS-$(CONFIG_FLAC_PARSER) += flac_parser.o flacdata.o flac.o
|
|
|
|
OBJS-$(CONFIG_G723_1_PARSER) += g723_1_parser.o
|
|
|
|
OBJS-$(CONFIG_G729_PARSER) += g729_parser.o
|
|
|
|
OBJS-$(CONFIG_GIF_PARSER) += gif_parser.o
|
|
|
|
OBJS-$(CONFIG_GSM_PARSER) += gsm_parser.o
|
|
|
|
OBJS-$(CONFIG_H261_PARSER) += h261_parser.o
|
|
|
|
OBJS-$(CONFIG_H263_PARSER) += h263_parser.o
|
|
|
|
OBJS-$(CONFIG_H264_PARSER) += h264_parser.o h264_sei.o h264data.o
|
|
|
|
OBJS-$(CONFIG_HEVC_PARSER) += hevc_parser.o hevc_data.o
|
|
|
|
OBJS-$(CONFIG_HDR_PARSER) += hdr_parser.o
|
|
|
|
OBJS-$(CONFIG_IPU_PARSER) += ipu_parser.o
|
|
|
|
OBJS-$(CONFIG_JPEG2000_PARSER) += jpeg2000_parser.o
|
|
|
|
OBJS-$(CONFIG_MJPEG_PARSER) += mjpeg_parser.o
|
|
|
|
OBJS-$(CONFIG_MLP_PARSER) += mlp_parse.o mlp_parser.o mlp.o
|
|
|
|
OBJS-$(CONFIG_MPEG4VIDEO_PARSER) += mpeg4video_parser.o h263.o \
|
|
|
|
mpeg4videodec.o mpeg4video.o \
|
|
|
|
ituh263dec.o h263dec.o h263data.o
|
|
|
|
OBJS-$(CONFIG_MPEGAUDIO_PARSER) += mpegaudio_parser.o
|
|
|
|
OBJS-$(CONFIG_MPEGVIDEO_PARSER) += mpegvideo_parser.o \
|
|
|
|
mpeg12.o mpeg12data.o
|
|
|
|
OBJS-$(CONFIG_OPUS_PARSER) += opus_parser.o opus.o opustab.o \
|
|
|
|
opus_rc.o vorbis_data.o
|
|
|
|
OBJS-$(CONFIG_PNG_PARSER) += png_parser.o
|
|
|
|
OBJS-$(CONFIG_PNM_PARSER) += pnm_parser.o pnm.o
|
|
|
|
OBJS-$(CONFIG_QOI_PARSER) += qoi_parser.o
|
|
|
|
OBJS-$(CONFIG_RV30_PARSER) += rv34_parser.o
|
|
|
|
OBJS-$(CONFIG_RV40_PARSER) += rv34_parser.o
|
|
|
|
OBJS-$(CONFIG_SBC_PARSER) += sbc_parser.o
|
|
|
|
OBJS-$(CONFIG_SIPR_PARSER) += sipr_parser.o
|
|
|
|
OBJS-$(CONFIG_TAK_PARSER) += tak_parser.o tak.o
|
|
|
|
OBJS-$(CONFIG_VC1_PARSER) += vc1_parser.o vc1.o vc1data.o \
|
|
|
|
simple_idct.o wmv2data.o
|
|
|
|
OBJS-$(CONFIG_VP3_PARSER) += vp3_parser.o
|
|
|
|
OBJS-$(CONFIG_VP8_PARSER) += vp8_parser.o
|
|
|
|
OBJS-$(CONFIG_VP9_PARSER) += vp9_parser.o
|
|
|
|
OBJS-$(CONFIG_WEBP_PARSER) += webp_parser.o
|
|
|
|
OBJS-$(CONFIG_XBM_PARSER) += xbm_parser.o
|
|
|
|
OBJS-$(CONFIG_XMA_PARSER) += xma_parser.o
|
|
|
|
|
|
|
|
# bitstream filters
|
|
|
|
OBJS-$(CONFIG_AAC_ADTSTOASC_BSF) += aac_adtstoasc_bsf.o
|
|
|
|
OBJS-$(CONFIG_AV1_METADATA_BSF) += av1_metadata_bsf.o
|
|
|
|
OBJS-$(CONFIG_AV1_FRAME_MERGE_BSF) += av1_frame_merge_bsf.o
|
|
|
|
OBJS-$(CONFIG_AV1_FRAME_SPLIT_BSF) += av1_frame_split_bsf.o
|
|
|
|
OBJS-$(CONFIG_CHOMP_BSF) += chomp_bsf.o
|
|
|
|
OBJS-$(CONFIG_DUMP_EXTRADATA_BSF) += dump_extradata_bsf.o
|
|
|
|
OBJS-$(CONFIG_DCA_CORE_BSF) += dca_core_bsf.o
|
|
|
|
OBJS-$(CONFIG_DV_ERROR_MARKER_BSF) += dv_error_marker_bsf.o
|
|
|
|
OBJS-$(CONFIG_EAC3_CORE_BSF) += eac3_core_bsf.o
|
|
|
|
OBJS-$(CONFIG_EXTRACT_EXTRADATA_BSF) += extract_extradata_bsf.o \
|
|
|
|
av1_parse.o h2645_parse.o
|
|
|
|
OBJS-$(CONFIG_FILTER_UNITS_BSF) += filter_units_bsf.o
|
|
|
|
OBJS-$(CONFIG_H264_METADATA_BSF) += h264_metadata_bsf.o h264_levels.o
|
|
|
|
OBJS-$(CONFIG_H264_MP4TOANNEXB_BSF) += h264_mp4toannexb_bsf.o
|
|
|
|
OBJS-$(CONFIG_H264_REDUNDANT_PPS_BSF) += h264_redundant_pps_bsf.o
|
|
|
|
OBJS-$(CONFIG_HAPQA_EXTRACT_BSF) += hapqa_extract_bsf.o hap.o
|
|
|
|
OBJS-$(CONFIG_HEVC_METADATA_BSF) += h265_metadata_bsf.o h265_profile_level.o
|
|
|
|
OBJS-$(CONFIG_HEVC_MP4TOANNEXB_BSF) += hevc_mp4toannexb_bsf.o
|
|
|
|
OBJS-$(CONFIG_IMX_DUMP_HEADER_BSF) += imx_dump_header_bsf.o
|
|
|
|
OBJS-$(CONFIG_MJPEG2JPEG_BSF) += mjpeg2jpeg_bsf.o
|
|
|
|
OBJS-$(CONFIG_MJPEGA_DUMP_HEADER_BSF) += mjpega_dump_header_bsf.o
|
|
|
|
OBJS-$(CONFIG_MPEG4_UNPACK_BFRAMES_BSF) += mpeg4_unpack_bframes_bsf.o
|
|
|
|
OBJS-$(CONFIG_MOV2TEXTSUB_BSF) += movsub_bsf.o
|
|
|
|
OBJS-$(CONFIG_MP3_HEADER_DECOMPRESS_BSF) += mp3_header_decompress_bsf.o \
|
|
|
|
mpegaudiotabs.o
|
|
|
|
OBJS-$(CONFIG_MPEG2_METADATA_BSF) += mpeg2_metadata_bsf.o
|
|
|
|
OBJS-$(CONFIG_NOISE_BSF) += noise_bsf.o
|
|
|
|
OBJS-$(CONFIG_NULL_BSF) += null_bsf.o
|
|
|
|
OBJS-$(CONFIG_OPUS_METADATA_BSF) += opus_metadata_bsf.o
|
|
|
|
OBJS-$(CONFIG_PCM_RECHUNK_BSF) += pcm_rechunk_bsf.o
|
|
|
|
OBJS-$(CONFIG_PGS_FRAME_MERGE_BSF) += pgs_frame_merge_bsf.o
|
|
|
|
OBJS-$(CONFIG_PRORES_METADATA_BSF) += prores_metadata_bsf.o
|
|
|
|
OBJS-$(CONFIG_REMOVE_EXTRADATA_BSF) += remove_extradata_bsf.o av1_parse.o
|
|
|
|
OBJS-$(CONFIG_SETTS_BSF) += setts_bsf.o
|
|
|
|
OBJS-$(CONFIG_TEXT2MOVSUB_BSF) += movsub_bsf.o
|
|
|
|
OBJS-$(CONFIG_TRACE_HEADERS_BSF) += trace_headers_bsf.o
|
|
|
|
OBJS-$(CONFIG_TRUEHD_CORE_BSF) += truehd_core_bsf.o mlp_parse.o mlp.o
|
|
|
|
OBJS-$(CONFIG_VP9_METADATA_BSF) += vp9_metadata_bsf.o
|
|
|
|
OBJS-$(CONFIG_VP9_RAW_REORDER_BSF) += vp9_raw_reorder_bsf.o
|
|
|
|
OBJS-$(CONFIG_VP9_SUPERFRAME_BSF) += vp9_superframe_bsf.o
|
|
|
|
OBJS-$(CONFIG_VP9_SUPERFRAME_SPLIT_BSF) += vp9_superframe_split_bsf.o
|
|
|
|
|
|
|
|
# thread libraries
|
|
|
|
OBJS-$(HAVE_LIBC_MSVCRT) += file_open.o
|
|
|
|
OBJS-$(HAVE_THREADS) += pthread.o pthread_slice.o pthread_frame.o
|
|
|
|
|
|
|
|
OBJS-$(CONFIG_FRAME_THREAD_ENCODER) += frame_thread_encoder.o
|
|
|
|
|
|
|
|
# Windows resource file
|
|
|
|
SLIBOBJS-$(HAVE_GNU_WINDRES) += avcodecres.o
|
|
|
|
|
|
|
|
SKIPHEADERS += %_tablegen.h \
|
|
|
|
%_tables.h \
|
|
|
|
tableprint.h \
|
|
|
|
tableprint_vlc.h \
|
|
|
|
aaccoder_twoloop.h \
|
|
|
|
aaccoder_trellis.h \
|
|
|
|
aacenc_quantization.h \
|
|
|
|
aacenc_quantization_misc.h \
|
|
|
|
$(ARCH)/vp56_arith.h \
|
|
|
|
|
|
|
|
SKIPHEADERS-$(CONFIG_AMF) += amfenc.h
|
|
|
|
SKIPHEADERS-$(CONFIG_D3D11VA) += d3d11va.h dxva2_internal.h
|
|
|
|
SKIPHEADERS-$(CONFIG_DXVA2) += dxva2.h dxva2_internal.h
|
|
|
|
SKIPHEADERS-$(CONFIG_JNI) += ffjni.h
|
|
|
|
SKIPHEADERS-$(CONFIG_LIBJXL) += libjxl.h
|
|
|
|
SKIPHEADERS-$(CONFIG_LIBVPX) += libvpx.h
|
|
|
|
SKIPHEADERS-$(CONFIG_LIBWEBP_ENCODER) += libwebpenc_common.h
|
|
|
|
SKIPHEADERS-$(CONFIG_MEDIACODEC) += mediacodecdec_common.h mediacodec_surface.h mediacodec_wrapper.h mediacodec_sw_buffer.h
|
|
|
|
SKIPHEADERS-$(CONFIG_MEDIAFOUNDATION) += mf_utils.h
|
|
|
|
SKIPHEADERS-$(CONFIG_NVDEC) += nvdec.h
|
|
|
|
SKIPHEADERS-$(CONFIG_NVENC) += nvenc.h
|
|
|
|
SKIPHEADERS-$(CONFIG_QSV) += qsv.h qsv_internal.h
|
|
|
|
SKIPHEADERS-$(CONFIG_QSVENC) += qsvenc.h
|
|
|
|
SKIPHEADERS-$(CONFIG_XVMC) += xvmc.h
|
|
|
|
SKIPHEADERS-$(CONFIG_VAAPI) += vaapi_decode.h vaapi_hevc.h vaapi_encode.h
|
|
|
|
SKIPHEADERS-$(CONFIG_VDPAU) += vdpau.h vdpau_internal.h
|
|
|
|
SKIPHEADERS-$(CONFIG_VIDEOTOOLBOX) += videotoolbox.h vt_internal.h
|
|
|
|
SKIPHEADERS-$(CONFIG_V4L2_M2M) += v4l2_buffers.h v4l2_context.h v4l2_m2m.h
|
|
|
|
|
|
|
|
TESTPROGS = avcodec \
|
|
|
|
avpacket \
|
|
|
|
celp_math \
|
|
|
|
codec_desc \
|
|
|
|
htmlsubtitles \
|
|
|
|
jpeg2000dwt \
|
|
|
|
mathops \
|
|
|
|
|
|
|
|
TESTPROGS-$(CONFIG_CABAC) += cabac
|
|
|
|
TESTPROGS-$(CONFIG_DCT) += avfft
|
|
|
|
TESTPROGS-$(CONFIG_FFT) += fft fft-fixed32
|
|
|
|
TESTPROGS-$(CONFIG_GOLOMB) += golomb
|
|
|
|
TESTPROGS-$(CONFIG_IDCTDSP) += dct
|
|
|
|
TESTPROGS-$(CONFIG_IIRFILTER) += iirfilter
|
|
|
|
TESTPROGS-$(CONFIG_MJPEG_ENCODER) += mjpegenc_huffman
|
|
|
|
TESTPROGS-$(HAVE_MMX) += motion
|
|
|
|
TESTPROGS-$(CONFIG_MPEGVIDEO) += mpeg12framerate
|
|
|
|
TESTPROGS-$(CONFIG_H264_METADATA_BSF) += h264_levels
|
|
|
|
TESTPROGS-$(CONFIG_HEVC_METADATA_BSF) += h265_levels
|
|
|
|
TESTPROGS-$(CONFIG_RANGECODER) += rangecoder
|
|
|
|
TESTPROGS-$(CONFIG_SNOW_ENCODER) += snowenc
|
|
|
|
|
|
|
|
TESTOBJS = dctref.o
|
|
|
|
|
|
|
|
TOOLS = fourcc2pixfmt
|
|
|
|
|
|
|
|
HOSTPROGS = aacps_tablegen \
|
|
|
|
aacps_fixed_tablegen \
|
|
|
|
cbrt_tablegen \
|
|
|
|
cbrt_fixed_tablegen \
|
|
|
|
cos_tablegen \
|
|
|
|
dv_tablegen \
|
|
|
|
motionpixels_tablegen \
|
|
|
|
mpegaudio_tablegen \
|
|
|
|
mpegaudiodec_common_tablegen \
|
|
|
|
pcm_tablegen \
|
|
|
|
qdm2_tablegen \
|
|
|
|
sinewin_tablegen \
|
|
|
|
sinewin_fixed_tablegen \
|
|
|
|
|
|
|
|
CLEANFILES = *_tables.c *_tables.h *_tablegen$(HOSTEXESUF)
|
|
|
|
|
|
|
|
$(SUBDIR)tests/dct$(EXESUF): $(SUBDIR)dctref.o $(SUBDIR)aandcttab.o
|
|
|
|
$(SUBDIR)dv_tablegen$(HOSTEXESUF): $(SUBDIR)dvdata_host.o
|
|
|
|
|
|
|
|
TRIG_TABLES = cos cos_fixed sin
|
|
|
|
TRIG_TABLES := $(TRIG_TABLES:%=$(SUBDIR)%_tables.c)
|
|
|
|
|
|
|
|
$(TRIG_TABLES): $(SUBDIR)%_tables.c: $(SUBDIR)cos_tablegen$(HOSTEXESUF)
|
|
|
|
$(M)./$< $* > $@
|
|
|
|
|
|
|
|
ifdef CONFIG_SMALL
|
|
|
|
$(SUBDIR)%_tablegen$(HOSTEXESUF): HOSTCFLAGS += -DCONFIG_SMALL=1
|
|
|
|
else
|
|
|
|
$(SUBDIR)%_tablegen$(HOSTEXESUF): HOSTCFLAGS += -DCONFIG_SMALL=0
|
|
|
|
endif
|
|
|
|
|
avcodec/aacsbr_tablegen: always initialize tables at runtime
This gets rid of virtually useless hardcoded tables hackery. The reason
it is useless is that a 320 element lut is anyway placed regardless of
--enable-hardcoded-tables, from which all necessary tables are trivially
derived at runtime at very low cost:
sample benchmark (x86-64, Haswell, GNU/Linux, single run is really
what is relevant here since looping drastically changes the bench). Fluctuations
are on the order of 10% for the single run test:
39400 decicycles in aacsbr_tableinit, 1 runs, 0 skips
25325 decicycles in aacsbr_tableinit, 2 runs, 0 skips
18475 decicycles in aacsbr_tableinit, 4 runs, 0 skips
15008 decicycles in aacsbr_tableinit, 8 runs, 0 skips
13016 decicycles in aacsbr_tableinit, 16 runs, 0 skips
12005 decicycles in aacsbr_tableinit, 32 runs, 0 skips
11546 decicycles in aacsbr_tableinit, 64 runs, 0 skips
11506 decicycles in aacsbr_tableinit, 128 runs, 0 skips
11500 decicycles in aacsbr_tableinit, 256 runs, 0 skips
11183 decicycles in aacsbr_tableinit, 509 runs, 3 skips
Tested with FATE with/without --enable-hardcoded-tables.
Reviewed-by: Rostislav Pehlivanov <atomnuker@gmail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
9 years ago
|
|
|
GEN_HEADERS = cbrt_tables.h cbrt_fixed_tables.h aacps_tables.h aacps_fixed_tables.h \
|
|
|
|
dv_tables.h \
|
|
|
|
sinewin_tables.h sinewin_fixed_tables.h mpegaudio_tables.h \
|
|
|
|
mpegaudiodec_common_tables.h motionpixels_tables.h \
|
|
|
|
pcm_tables.h qdm2_tables.h
|
|
|
|
GEN_HEADERS := $(addprefix $(SUBDIR), $(GEN_HEADERS))
|
|
|
|
|
|
|
|
$(GEN_HEADERS): $(SUBDIR)%_tables.h: $(SUBDIR)%_tablegen$(HOSTEXESUF)
|
|
|
|
$(M)./$< > $@
|
|
|
|
|
|
|
|
ifdef CONFIG_HARDCODED_TABLES
|
|
|
|
$(SUBDIR)cbrt_data.o: $(SUBDIR)cbrt_tables.h
|
|
|
|
$(SUBDIR)cbrt_data_fixed.o: $(SUBDIR)cbrt_fixed_tables.h
|
|
|
|
$(SUBDIR)aacdec_fixed.o: $(SUBDIR)sinewin_fixed_tables.h
|
|
|
|
$(SUBDIR)aacps_float.o: $(SUBDIR)aacps_tables.h
|
|
|
|
$(SUBDIR)aacps_fixed.o: $(SUBDIR)aacps_fixed_tables.h
|
|
|
|
$(SUBDIR)dvenc.o: $(SUBDIR)dv_tables.h
|
|
|
|
$(SUBDIR)motionpixels.o: $(SUBDIR)motionpixels_tables.h
|
|
|
|
$(SUBDIR)mpegaudiodec_common.o: $(SUBDIR)mpegaudiodec_common_tables.h
|
|
|
|
$(SUBDIR)mpegaudiodec_fixed.o: $(SUBDIR)mpegaudio_tables.h
|
|
|
|
$(SUBDIR)mpegaudiodec_float.o: $(SUBDIR)mpegaudio_tables.h
|
|
|
|
$(SUBDIR)pcm.o: $(SUBDIR)pcm_tables.h
|
|
|
|
$(SUBDIR)qdm2.o: $(SUBDIR)qdm2_tables.h
|
|
|
|
$(SUBDIR)sinewin.o: $(SUBDIR)sinewin_tables.h
|
|
|
|
endif
|