[FFmpeg-devel] [PATCH 000/279] New channel layout API
James Almer
jamrial at gmail.com
Wed Dec 8 03:06:16 EET 2021
This is an updated and rebased version of the API that was sent to this mailing
list about two years ago. It expands it with some new helpers, implements some
changes that allows further extensibility for new features down the line, and
finishes porting all missing modules and those introduced since 2019.
I'm sending a reduced amount of patches to not spam the ML too much. In total
it's 279 patches, the bulk being one per module ported, which it's what i'm
skipping.
This reduced set will obviously not apply as is, so you can find the entire set
in https://github.com/jamrial/FFmpeg/commits/channel_layout
Anton Khirnov (136):
Add a new channel layout API
lavu: support AVChannelLayout AVOptions
lavc: deprecate channel count/layout changing side data
avframe: switch to the new channel layout API
lavf: add a temporary compat layer for the channel layout API change
lavf: convert the generic layer to the new channel layout
3dostr: convert to new channel layout API
aa: convert to new channel layout API
acm: convert to new channel layout API
act: convert to new channel layout API
adp: convert to new channel layout API
ads: convert to new channel layout API
afc: convert to new channel layout API
aixdec: convert to new channel layout API
aptxdec: convert to new channel layout API
argo: convert to new channel layout API
ast: convert to new channel layout API
avr: convert to new channel layout API
bit: convert to new channel layout API
boa: convert to new channel layout API
brstm: convert to new channel layout API
codec2: convert to new channel layout API
dcstr: convert to new channel layout API
dhav: convert to new channel layout API
dtshddec: convert to new channel layout API
dsfdec: convert to new channel layout API
epafdec: convert to new channel layout API
framehash: convert to new channel layout API
fsb: convert to new channel layout API
g726: convert to new channel layout API
gdv: convert to new channel layout API
genh: convert to new channel layout API
hcom: convert to new channel layout API
ifv: convert to new channel layout API
ircam: convert to new channel layout API
jack: port to new channel layout API
libcdio: port to new channel layout API
lvf: convert to new channel layout API
mpeg: convert to new channel layout API
mpegtsenc: convert to new channel layout API
msf: convert to new channel layout API
mtaf: convert to new channel layout API
musx: convert to new channel layout API
nistspheredec: convert to new channel layout API
nspdec: convert to new channel layout API
oss: port to new channel layout API
pvf: convert to new channel layout API
rawenc: convert to new channel layout API
redspark: convert to new channel layout API
rsd: convert to new channel layout API
sbg: convert to new channel layout API
sdr2: convert to new channel layout API
sds: convert to new channel layout API
sdx: convert to new channel layout API
svag: convert to new channel layout API
vag: convert to new channel layout API
vividas: convert to new channel layout API
vivo: convert to new channel layout API
vpk: convert to new channel layout API
lavf: drop the channel layout compat layer for old-style (de)muxers
8svx: convert to new channel layout API
aac: convert to new channel layout API
adpcm: convert to new channel layout API
alac: convert to new channel layout API
amr: convert to new channel layout API
aptx: convert to new channel layout API
atrac9: convert to new channel layout API
apedec: convert to new channel layout API
audiotoolbox: convert to new channel layout API
binkaudio: convert to new channel layout API
bmvaudio: convert to new channel layout API
cng: convert to new channel layout API
cook: convert to new channel layout API
dca: convert to new channel layout API
dolby_e: convert to new channel layout API
dsd: convert to new channel layout API
dsicinav: convert to new channel layout API
dst: convert to new channel layout API
dvaudio: convert to new channel layout API
evrc: convert to new channel layout API
ffwavesynth: convert to new channel layout API
flac: convert to new channel layout API
g722: convert to new channel layout API
g723_1: convert to new channel layout API
g726: convert to new channel layout API
g729: convert to new channel layout API
gsmdec: convert to new channel layout API
hcom: convert to new channel layout API
ilbc: convert to new channel layout API
imc: convert to new channel layout API
interplayacm: convert to new channel layout API
libcelt: convert to new channel layout API
libcodec2: convert to new channel layout API
libilbc: convert to new channel layout API
libgsm: convert to new channel layout API
libmp3lame: convert to new channel layout API
libopencore-amr: convert to new channel layout API
libopus: convert to new channel layout API
libshine: convert to new channel layout API
libspeexdec: convert to new channel layout API
libtwolame: convert to new channel layout API
libvo-amrwbenc: convert to new channel layout API
libvorbis: convert to new channel layout API
mace: convert to new channel layout API
metasound: convert to new channel layout API
mlp: convert to new channel layout API
mpc7: convert to new channel layout API
mpc8: convert to new channel layout API
mpegaudio: convert to new channel layout API
nellymoser: convert to new channel layout API
on2avc: convert to new channel layout API
opus: convert to new channel layout API
pcm: convert to new channel layout API
qcelpdec: convert to new channel layout API
qdmc: convert to new channel layout API
qdm2: convert to new channel layout API
ra144: convert to new channel layout API
ra288: convert to new channel layout API
ralf: convert to new channel layout API
roqaudioenc: convert to new channel layout API
s302m: convert to new channel layout API
sbc: convert to new channel layout API
shorten: convert to new channel layout API
sipr: convert to new channel layout API
smacker: convert to new channel layout API
sonic: convert to new channel layout API
tak: convert to new channel layout API
truespeech: convert to new channel layout API
tta: convert to new channel layout API
vmdaudio: convert to new channel layout API
vorbis: convert to new channel layout API
wavpack: convert to new channel layout API
wma: convert to new channel layout API
ws-snd1: convert to new channel layout API
lavc: drop temporary compat wrappers for channel layout API change
opus: export mapping family 2 (Ambisonic) as Ambisonic layout
James Almer (30):
fate: add a channel_layout API test
aax: convert to new channel layout API
ace: convert to new channel layout API
alsa: convert to new channel layout API
alp: convert to new channel layout API
amv: convert to new channel layout API
apm: convert to new channel layout API
derf: convert to new channel layout API
dshow: convert to new channel layout API
fwse: convert to new channel layout API
hca: convert to new channel layout API
hls_sample_encryption: convert to new channel layout API
imx: convert to new channel layout API
kvag: convert to new channel layout API
avdevice/lavfi: convert to new channel layout API
mca: convert to new channel layout API
moflex: convert to new channel layout API
pp_bnk: convert to new channel layout API
scd: convert to new channel layout API
sga: convert to new channel layout API
svs: convert to new channel layout API
fastaudio: convert to new channel layout API
hca: convert to new channel layout API
mf: convert to new channel layout API
siren: convert to new channel layout API
speex: convert to new channel layout API
swresample: convert to new channel layout API
avfilter: convert to new channel layout API
ffmpeg: convert to new channel layout-API
ffprobe: convert to new channel layout-API
Vittorio Giovara (113):
avcodecpar: switch to the new channel layout API
4xm: convert to new channel layout API
adxdec: convert to new channel layout API
aea: convert to new channel layout API
aiff: convert to new channel layout API
amr: convert to new channel layout API
apc: convert to new channel layout API
ape: convert to new channel layout API
au: convert to new channel layout API
bethsoftvid: convert to new channel layout API
bfi: convert to new channel layout API
bink: convert to new channel layout API
bmv: convert to new channel layout API
caf: convert to new channel layout API
cdxl: convert to new channel layout API
dash: convert to new channel layout API
dsicin: convert to new channel layout API
dss: convert to new channel layout API
dv: convert to new channel layout API
eac: convert to new channel layout API
electronicarts: convert to new channel layout API
flac: convert to new channel layout API
flic: convert to new channel layout API
flv: convert to new channel layout API
g722: convert to new channel layout API
g723_1: convert to new channel layout API
g729: convert to new channel layout API
gsm: convert to new channel layout API
gxf: convert to new channel layout API
idcin: convert to new channel layout API
idroq: convert to new channel layout API
iff: convert to new channel layout API
ilbc: convert to new channel layout API
ipmovie: convert to new channel layout API
iss: convert to new channel layout API
jvdec: convert to new channel layout API
lxfdec: convert to new channel layout API
matroska: convert to new channel layout API
mm: convert to new channel layout API
mmf: convert to new channel layout API
mov: convert to new channel layout API
movenc-test: convert to new channel layout API
mp3: convert to new channel layout API
mpc: convert to new channel layout API
mpc8: convert to new channel layout API
mpegenc: convert to new channel layout API
mvdec: convert to new channel layout API
mvi: convert to new channel layout API
mxf: convert to new channel layout API
mxg: convert to new channel layout API
nsvdec: convert to new channel layout API
nutdec: convert to new channel layout API
nuv: convert to new channel layout API
ogg: convert to new channel layout API
oma: convert to new channel layout API
paf: convert to new channel layout API
pcm: convert to new channel layout API
pmp: convert to new channel layout API
psxstr: convert to new channel layout API
qcp: convert to new channel layout API
r3d: convert to new channel layout API
riff: convert to new channel layout API
rl2: convert to new channel layout API
rm: convert to new channel layout API
rpl: convert to new channel layout API
rso: convert to new channel layout API
rtp: convert to new channel layout API
sdp: convert to new channel layout API
segafilm: convert to new channel layout API
sierravmd: convert to new channel layout API
siff: convert to new channel layout API
smacker: convert to new channel layout API
smjpegenc: convert to new channel layout API
smoothstreaming: convert to new channel layout API
smush: convert to new channel layout API
sol: convert to new channel layout API
sox: convert to new channel layout API
swf: convert to new channel layout API
tak: convert to new channel layout API
thp: convert to new channel layout API
tiertexseq: convert to new channel layout API
tmv: convert to new channel layout API
tta: convert to new channel layout API
voc: convert to new channel layout API
vqf: convert to new channel layout API
wav: convert to new channel layout API
wc3movie: convert to new channel layout API
westwood: convert to new channel layout API
wtv: convert to new channel layout API
wv: convert to new channel layout API
xa: convert to new channel layout API
xmv: convert to new channel layout API
xwma: convert to new channel layout API
yop: convert to new channel layout API
wsd: convert to new channel layout API
wve: convert to new channel layout API
xvag: convert to new channel layout API
lavc: switch to the new channel layout API
ac3: convert to new channel layout API
adx: convert to new channel layout API
als: convert to new channel layout API
atrac1: convert to new channel layout API
atrac3: convert to new channel layout API
atrac3plus: convert to new channel layout API
dpcm: convert to new channel layout API
dss_sp: convert to new channel layout API
libfdk-aac: convert to new channel layout API
pafaudio: convert to new channel layout API
twinvq: convert to new channel layout API
vima: convert to new channel layout API
lavf: Add non diegetic stream disposition flag
channel_layout: add support for Ambisonic
mov: Implement spatial audio support
fftools/cmdutils.c | 42 +-
fftools/cmdutils.h | 8 -
fftools/ffmpeg.c | 47 +-
fftools/ffmpeg.h | 7 +-
fftools/ffmpeg_filter.c | 43 +-
fftools/ffmpeg_opt.c | 62 +-
fftools/ffprobe.c | 19 +-
libavcodec/8svx.c | 19 +-
libavcodec/aac.h | 11 +-
libavcodec/aac_ac3_parser.c | 13 +-
libavcodec/aaccoder.c | 10 +-
libavcodec/aaccoder_twoloop.h | 4 +-
libavcodec/aacdec_template.c | 52 +-
libavcodec/aacenc.c | 13 +-
libavcodec/aacenc.h | 64 +-
libavcodec/aacenctab.h | 16 +-
libavcodec/aacpsy.c | 8 +-
libavcodec/ac3dec.c | 57 +-
libavcodec/ac3dec.h | 2 +
libavcodec/ac3dec_fixed.c | 1 +
libavcodec/ac3dec_float.c | 2 +
libavcodec/ac3enc.c | 78 ++-
libavcodec/ac3enc.h | 4 +-
libavcodec/ac3enc_fixed.c | 5 +
libavcodec/ac3enc_float.c | 5 +
libavcodec/adpcm.c | 151 +++--
libavcodec/adpcmenc.c | 122 ++--
libavcodec/adx.c | 16 +-
libavcodec/adxdec.c | 6 +-
libavcodec/adxenc.c | 11 +-
libavcodec/alac.c | 16 +-
libavcodec/alac_data.c | 20 +-
libavcodec/alac_data.h | 6 +
libavcodec/alacenc.c | 37 +-
libavcodec/alsdec.c | 90 +--
libavcodec/amr_parser.c | 10 +-
libavcodec/amrnbdec.c | 12 +-
libavcodec/amrwbdec.c | 12 +-
libavcodec/apedec.c | 9 +-
libavcodec/aptx.c | 2 +-
libavcodec/atrac1.c | 10 +-
libavcodec/atrac3.c | 41 +-
libavcodec/atrac3plusdec.c | 25 +-
libavcodec/atrac9dec.c | 4 +-
libavcodec/atrac9tab.h | 14 +-
libavcodec/audiotoolboxdec.c | 27 +-
libavcodec/audiotoolboxenc.c | 95 ++-
libavcodec/avcodec.c | 51 +-
libavcodec/avcodec.h | 23 +-
libavcodec/binkaudio.c | 19 +-
libavcodec/bmvaudio.c | 4 +-
libavcodec/cngdec.c | 3 +-
libavcodec/cngenc.c | 6 +-
libavcodec/codec.h | 11 +
libavcodec/codec_par.c | 65 +-
libavcodec/codec_par.h | 12 +
libavcodec/cook.c | 25 +-
libavcodec/cook_parser.c | 4 +-
libavcodec/dca_core.c | 6 +-
libavcodec/dca_lbr.c | 13 +-
libavcodec/dca_xll.c | 2 +-
libavcodec/dcadec.c | 63 +-
libavcodec/dcadec.h | 7 +
libavcodec/dcaenc.c | 39 +-
libavcodec/decode.c | 73 +-
libavcodec/dolby_e.c | 52 +-
libavcodec/dolby_e.h | 2 +
libavcodec/dolby_e_parser.c | 11 +-
libavcodec/dpcm.c | 16 +-
libavcodec/dsddec.c | 14 +-
libavcodec/dsicinaudio.c | 4 +-
libavcodec/dss_sp.c | 4 +-
libavcodec/dstdec.c | 8 +-
libavcodec/dvaudiodec.c | 8 +-
libavcodec/eac3enc.c | 5 +
libavcodec/encode.c | 43 +-
libavcodec/evrcdec.c | 4 +-
libavcodec/fastaudio.c | 6 +-
libavcodec/ffwavesynth.c | 6 +-
libavcodec/flac.c | 39 +-
libavcodec/flac.h | 2 +-
libavcodec/flac_parser.c | 7 +-
libavcodec/flacdec.c | 9 +-
libavcodec/flacenc.c | 26 +-
libavcodec/g722dec.c | 4 +-
libavcodec/g722enc.c | 5 +
libavcodec/g723_1_parser.c | 2 +-
libavcodec/g723_1dec.c | 19 +-
libavcodec/g723_1enc.c | 8 +-
libavcodec/g726.c | 8 +-
libavcodec/g729_parser.c | 2 +-
libavcodec/g729dec.c | 20 +-
libavcodec/gsmdec.c | 4 +-
libavcodec/hcadec.c | 16 +-
libavcodec/hcom.c | 2 +-
libavcodec/ilbcdec.c | 4 +-
libavcodec/imc.c | 22 +-
libavcodec/interplayacm.c | 10 +-
libavcodec/libcelt_dec.c | 10 +-
libavcodec/libcodec2.c | 4 +-
libavcodec/libfdk-aacdec.c | 34 +-
libavcodec/libfdk-aacenc.c | 37 +-
libavcodec/libgsmdec.c | 4 +-
libavcodec/libgsmenc.c | 4 +-
libavcodec/libilbc.c | 6 +-
libavcodec/libmp3lame.c | 9 +-
libavcodec/libopencore-amr.c | 8 +-
libavcodec/libopusdec.c | 39 +-
libavcodec/libopusenc.c | 65 +-
libavcodec/libshine.c | 6 +-
libavcodec/libspeexdec.c | 19 +-
libavcodec/libspeexenc.c | 17 +-
libavcodec/libtwolame.c | 2 +-
libavcodec/libvo-amrwbenc.c | 2 +-
libavcodec/libvorbisdec.c | 4 +-
libavcodec/libvorbisenc.c | 42 +-
libavcodec/mace.c | 15 +-
libavcodec/metasound.c | 31 +-
libavcodec/mfenc.c | 8 +-
libavcodec/mlp_parser.c | 12 +-
libavcodec/mlpdec.c | 112 ++-
libavcodec/mlpenc.c | 98 ++-
libavcodec/mp3_header_decompress_bsf.c | 2 +-
libavcodec/mpc7.c | 7 +-
libavcodec/mpc8.c | 6 +-
libavcodec/mpegaudio_parser.c | 4 +-
libavcodec/mpegaudiodec_template.c | 22 +-
libavcodec/mpegaudioenc_template.c | 2 +-
libavcodec/nellymoserdec.c | 4 +-
libavcodec/nellymoserenc.c | 6 +-
libavcodec/on2avc.c | 20 +-
libavcodec/options_table.h | 3 +
libavcodec/opus.c | 73 +-
libavcodec/opusdec.c | 4 +-
libavcodec/opusenc.c | 11 +-
libavcodec/opusenc_psy.c | 20 +-
libavcodec/packet.h | 5 +
libavcodec/pafaudio.c | 5 +-
libavcodec/pcm-bluray.c | 36 +-
libavcodec/pcm-dvd.c | 28 +-
libavcodec/pcm-dvdenc.c | 20 +-
libavcodec/pcm.c | 39 +-
libavcodec/pcm_rechunk_bsf.c | 5 +-
libavcodec/psymodel.c | 8 +-
libavcodec/psymodel.h | 2 +-
libavcodec/pthread_frame.c | 10 +-
libavcodec/qcelpdec.c | 4 +-
libavcodec/qdm2.c | 6 +-
libavcodec/qdmc.c | 9 +-
libavcodec/ra144dec.c | 4 +-
libavcodec/ra144enc.c | 8 +-
libavcodec/ra288.c | 4 +-
libavcodec/ralf.c | 18 +-
libavcodec/roqaudioenc.c | 20 +-
libavcodec/s302m.c | 31 +-
libavcodec/s302menc.c | 18 +-
libavcodec/sbc_parser.c | 8 +-
libavcodec/sbcdec.c | 4 +-
libavcodec/sbcenc.c | 10 +-
libavcodec/shorten.c | 6 +-
libavcodec/sipr.c | 4 +-
libavcodec/siren.c | 4 +-
libavcodec/smacker.c | 12 +-
libavcodec/sonic.c | 14 +-
libavcodec/speexdec.c | 8 +-
libavcodec/takdec.c | 41 +-
libavcodec/truespeech.c | 7 +-
libavcodec/tta.c | 18 +-
libavcodec/ttaenc.c | 14 +-
libavcodec/twinvq.c | 20 +-
libavcodec/twinvqdec.c | 18 +-
libavcodec/utils.c | 24 +-
libavcodec/vima.c | 5 +-
libavcodec/vmdaudio.c | 26 +-
libavcodec/vorbisdec.c | 24 +-
libavcodec/vorbisenc.c | 7 +-
libavcodec/wavpack.c | 51 +-
libavcodec/wavpackenc.c | 29 +-
libavcodec/wma.c | 11 +-
libavcodec/wmadec.c | 29 +-
libavcodec/wmaenc.c | 27 +-
libavcodec/wmalosslessdec.c | 13 +-
libavcodec/wmaprodec.c | 28 +-
libavcodec/wmavoice.c | 4 +-
libavcodec/ws-snd1.c | 4 +-
libavdevice/alsa.c | 19 +-
libavdevice/alsa_dec.c | 3 +-
libavdevice/alsa_enc.c | 2 +-
libavdevice/dshow.c | 3 +-
libavdevice/jack.c | 3 +-
libavdevice/lavfi.c | 7 +-
libavdevice/libcdio.c | 5 +-
libavdevice/oss_dec.c | 3 +-
libavdevice/oss_enc.c | 2 +-
libavfilter/aeval.c | 19 +-
libavfilter/af_afir.c | 9 +-
libavfilter/af_aformat.c | 32 +-
libavfilter/af_amerge.c | 38 +-
libavfilter/af_amix.c | 2 +-
libavfilter/af_apulsator.c | 2 +-
libavfilter/af_aresample.c | 41 +-
libavfilter/af_ashowinfo.c | 13 +-
libavfilter/af_asr.c | 2 +-
libavfilter/af_biquads.c | 42 +-
libavfilter/af_bs2b.c | 2 +-
libavfilter/af_channelmap.c | 86 ++-
libavfilter/af_channelsplit.c | 42 +-
libavfilter/af_compand.c | 6 +
libavfilter/af_compensationdelay.c | 7 +
libavfilter/af_crossfeed.c | 2 +-
libavfilter/af_earwax.c | 2 +-
libavfilter/af_extrastereo.c | 2 +-
libavfilter/af_firequalizer.c | 5 +-
libavfilter/af_haas.c | 2 +-
libavfilter/af_hdcd.c | 4 +-
libavfilter/af_headphone.c | 22 +-
libavfilter/af_join.c | 268 +++++---
libavfilter/af_ladspa.c | 16 +-
libavfilter/af_lv2.c | 17 +-
libavfilter/af_pan.c | 62 +-
libavfilter/af_replaygain.c | 2 +-
libavfilter/af_sofalizer.c | 86 ++-
libavfilter/af_speechnorm.c | 12 +-
libavfilter/af_stereotools.c | 2 +-
libavfilter/af_stereowiden.c | 2 +-
libavfilter/af_surround.c | 72 +-
libavfilter/asrc_afirsrc.c | 2 +-
libavfilter/asrc_anoisesrc.c | 2 +-
libavfilter/asrc_anullsrc.c | 13 +-
libavfilter/asrc_flite.c | 6 +-
libavfilter/asrc_hilbert.c | 2 +-
libavfilter/asrc_sinc.c | 2 +-
libavfilter/asrc_sine.c | 2 +-
libavfilter/audio.c | 11 +-
libavfilter/avf_aphasemeter.c | 2 +-
libavfilter/avf_avectorscope.c | 2 +-
libavfilter/avf_showcqt.c | 3 +-
libavfilter/avf_showspatial.c | 2 +-
libavfilter/avf_showspectrum.c | 3 +-
libavfilter/avf_showvolume.c | 9 +-
libavfilter/avfilter.c | 15 +-
libavfilter/avfilter.h | 10 +-
libavfilter/avfiltergraph.c | 84 ++-
libavfilter/buffersink.c | 29 +-
libavfilter/buffersink.h | 7 +-
libavfilter/buffersrc.c | 92 ++-
libavfilter/buffersrc.h | 9 +
libavfilter/f_ebur128.c | 10 +-
libavfilter/f_streamselect.c | 4 +
libavfilter/formats.c | 131 ++--
libavfilter/formats.h | 16 +-
libavfilter/graphdump.c | 4 +-
libavfilter/internal.h | 2 +-
libavfilter/src_movie.c | 19 +-
libavfilter/tests/filtfmts.c | 3 +-
libavfilter/tests/formats.c | 8 +-
libavfilter/vaf_spectrumsynth.c | 2 +-
libavformat/3dostr.c | 13 +-
libavformat/4xm.c | 7 +-
libavformat/aadec.c | 6 +-
libavformat/aaxdec.c | 7 +-
libavformat/acedec.c | 5 +-
libavformat/acm.c | 7 +-
libavformat/act.c | 3 +-
libavformat/adp.c | 3 +-
libavformat/ads.c | 11 +-
libavformat/adxdec.c | 22 +-
libavformat/aea.c | 11 +-
libavformat/afc.c | 5 +-
libavformat/aiffdec.c | 13 +-
libavformat/aiffenc.c | 8 +-
libavformat/aixdec.c | 3 +-
libavformat/alp.c | 16 +-
libavformat/amr.c | 20 +-
libavformat/amvenc.c | 4 +-
libavformat/apc.c | 12 +-
libavformat/ape.c | 3 +-
libavformat/apm.c | 22 +-
libavformat/aptxdec.c | 3 +-
libavformat/argo_asf.c | 18 +-
libavformat/argo_cvg.c | 5 +-
libavformat/astdec.c | 18 +-
libavformat/astenc.c | 4 +-
libavformat/au.c | 9 +-
libavformat/avformat.h | 7 +
libavformat/avr.c | 7 +-
libavformat/bethsoftvid.c | 3 +-
libavformat/bfi.c | 3 +-
libavformat/bink.c | 8 +-
libavformat/binka.c | 3 +-
libavformat/bit.c | 7 +-
libavformat/bmv.c | 3 +-
libavformat/boadec.c | 8 +-
libavformat/brstm.c | 44 +-
libavformat/cafdec.c | 7 +-
libavformat/cafenc.c | 12 +-
libavformat/cdxl.c | 4 +-
libavformat/codec2.c | 3 +-
libavformat/dashenc.c | 2 +-
libavformat/dauddec.c | 3 +-
libavformat/daudenc.c | 2 +-
libavformat/dcstr.c | 15 +-
libavformat/demux.c | 18 +-
libavformat/derf.c | 12 +-
libavformat/dhav.c | 3 +-
libavformat/dsfdec.c | 60 +-
libavformat/dsicin.c | 7 +-
libavformat/dss.c | 3 +-
libavformat/dtshddec.c | 3 +-
libavformat/dump.c | 11 +-
libavformat/dv.c | 3 +-
libavformat/dvenc.c | 2 +-
libavformat/eacdata.c | 22 +-
libavformat/electronicarts.c | 7 +-
libavformat/epafdec.c | 6 +-
libavformat/flacdec.c | 3 +-
libavformat/flacenc.c | 7 +-
libavformat/flic.c | 4 +-
libavformat/flvdec.c | 15 +-
libavformat/flvenc.c | 10 +-
libavformat/framehash.c | 8 +-
libavformat/fsb.c | 36 +-
libavformat/fwse.c | 10 +-
libavformat/g722.c | 2 +-
libavformat/g723_1.c | 3 +-
libavformat/g726.c | 3 +-
libavformat/g729dec.c | 2 +-
libavformat/gdv.c | 6 +-
libavformat/genh.c | 38 +-
libavformat/gsmdec.c | 3 +-
libavformat/gxf.c | 9 +-
libavformat/gxfenc.c | 2 +-
libavformat/hca.c | 3 +-
libavformat/hcom.c | 3 +-
libavformat/hls_sample_encryption.c | 12 +-
libavformat/idcin.c | 4 +-
libavformat/idroqdec.c | 12 +-
libavformat/iff.c | 63 +-
libavformat/ifv.c | 3 +-
libavformat/ilbc.c | 2 +-
libavformat/imx.c | 3 +-
libavformat/ipmovie.c | 8 +-
libavformat/ircamdec.c | 8 +-
libavformat/ircamenc.c | 2 +-
libavformat/isom.c | 5 +-
libavformat/iss.c | 17 +-
libavformat/jvdec.c | 3 +-
libavformat/kvag.c | 19 +-
libavformat/lvfdec.c | 3 +-
libavformat/lxfdec.c | 3 +-
libavformat/matroskadec.c | 8 +-
libavformat/matroskaenc.c | 10 +-
libavformat/mca.c | 25 +-
libavformat/mm.c | 3 +-
libavformat/mmf.c | 5 +-
libavformat/moflex.c | 3 +-
libavformat/mov.c | 172 ++++-
libavformat/mov_chan.c | 21 +-
libavformat/mov_chan.h | 3 +-
libavformat/movenc.c | 25 +-
libavformat/mp3enc.c | 2 +-
libavformat/mpc.c | 3 +-
libavformat/mpc8.c | 5 +-
libavformat/mpeg.c | 3 +-
libavformat/mpegenc.c | 10 +-
libavformat/mpegtsenc.c | 30 +-
libavformat/msf.c | 16 +-
libavformat/mtaf.c | 5 +-
libavformat/musx.c | 49 +-
libavformat/mux.c | 19 +-
libavformat/mvdec.c | 10 +-
libavformat/mvi.c | 3 +-
libavformat/mxfdec.c | 23 +-
libavformat/mxfenc.c | 20 +-
libavformat/mxg.c | 3 +-
libavformat/nistspheredec.c | 8 +-
libavformat/nspdec.c | 3 +-
libavformat/nsvdec.c | 2 +-
libavformat/nutdec.c | 3 +-
libavformat/nutenc.c | 4 +-
libavformat/nuv.c | 11 +-
libavformat/oggparsecelt.c | 3 +-
libavformat/oggparseogm.c | 6 +-
libavformat/oggparseopus.c | 3 +-
libavformat/oggparsespeex.c | 8 +-
libavformat/oggparsevorbis.c | 6 +-
libavformat/oma.h | 2 +
libavformat/omadec.c | 35 +-
libavformat/omaenc.c | 4 +-
libavformat/paf.c | 3 +-
libavformat/pcm.c | 2 +-
libavformat/pcmdec.c | 7 +-
libavformat/pmpdec.c | 3 +-
libavformat/pp_bnk.c | 12 +-
libavformat/psxstr.c | 10 +-
libavformat/pvfdec.c | 5 +-
libavformat/qcp.c | 3 +-
libavformat/r3d.c | 3 +-
libavformat/rawenc.c | 2 +-
libavformat/redspark.c | 15 +-
libavformat/riffdec.c | 20 +-
libavformat/riffenc.c | 18 +-
libavformat/rl2.c | 7 +-
libavformat/rmdec.c | 6 +-
libavformat/rmenc.c | 2 +-
libavformat/rpl.c | 7 +-
libavformat/rsd.c | 27 +-
libavformat/rsodec.c | 3 +-
libavformat/rsoenc.c | 2 +-
libavformat/rtp.c | 10 +-
libavformat/rtpdec.c | 4 +-
libavformat/rtpdec_amr.c | 3 +-
libavformat/rtpenc.c | 14 +-
libavformat/rtsp.c | 6 +-
libavformat/rtsp.h | 1 -
libavformat/sbgdec.c | 3 +-
libavformat/scd.c | 9 +-
libavformat/sdp.c | 36 +-
libavformat/sdr2.c | 3 +-
libavformat/sdsdec.c | 3 +-
libavformat/sdxdec.c | 3 +-
libavformat/segafilm.c | 9 +-
libavformat/segafilmenc.c | 2 +-
libavformat/sga.c | 3 +-
libavformat/sierravmd.c | 15 +-
libavformat/siff.c | 3 +-
libavformat/smacker.c | 11 +-
libavformat/smjpegdec.c | 3 +-
libavformat/smjpegenc.c | 2 +-
libavformat/smoothstreamingenc.c | 4 +-
libavformat/smush.c | 4 +-
libavformat/sol.c | 4 +-
libavformat/soxdec.c | 14 +-
libavformat/soxenc.c | 4 +-
libavformat/svag.c | 12 +-
libavformat/svs.c | 3 +-
libavformat/swfdec.c | 8 +-
libavformat/swfenc.c | 2 +-
libavformat/takdec.c | 7 +-
libavformat/tests/movenc.c | 2 +-
libavformat/thp.c | 3 +-
libavformat/tiertexseq.c | 7 +-
libavformat/tmv.c | 10 +-
libavformat/tta.c | 3 +-
libavformat/ttaenc.c | 2 +-
libavformat/utils.c | 13 +-
libavformat/vag.c | 11 +-
libavformat/vividas.c | 8 +-
libavformat/vivo.c | 3 +-
libavformat/voc_packet.c | 9 +-
libavformat/vocenc.c | 9 +-
libavformat/vpk.c | 15 +-
libavformat/vqf.c | 13 +-
libavformat/wavdec.c | 32 +-
libavformat/wavenc.c | 14 +-
libavformat/wc3movie.c | 8 +-
libavformat/westwood_aud.c | 10 +-
libavformat/westwood_audenc.c | 2 +-
libavformat/westwood_vqa.c | 2 +-
libavformat/wsddec.c | 12 +-
libavformat/wtvdec.c | 6 +-
libavformat/wvdec.c | 3 +-
libavformat/wvedec.c | 6 +-
libavformat/xa.c | 9 +-
libavformat/xmv.c | 3 +-
libavformat/xvag.c | 10 +-
libavformat/xwma.c | 10 +-
libavformat/yop.c | 3 +-
libavutil/Makefile | 1 +
libavutil/channel_layout.c | 641 ++++++++++++++++--
libavutil/channel_layout.h | 559 ++++++++++++++-
libavutil/frame.c | 112 ++-
libavutil/frame.h | 12 +-
libavutil/opt.c | 126 +++-
libavutil/opt.h | 12 +
libavutil/tests/channel_layout.c | 231 +++++++
libavutil/tests/opt.c | 8 +-
libavutil/version.h | 1 +
libswresample/options.c | 33 +-
libswresample/rematrix.c | 227 ++++---
libswresample/rematrix_template.c | 7 +-
libswresample/swresample.c | 158 ++++-
libswresample/swresample.h | 63 ++
libswresample/swresample_frame.c | 65 +-
libswresample/swresample_internal.h | 10 +-
tests/fate/aac.mak | 2 +-
tests/fate/ac3.mak | 16 +-
tests/fate/cover-art.mak | 2 +-
tests/fate/lavf-container.mak | 2 +-
tests/fate/libavutil.mak | 4 +
tests/ref/fate/8bps | 1 -
tests/ref/fate/aa-demux | 1 -
tests/ref/fate/aac-autobsf-adtstoasc | 1 -
tests/ref/fate/adpcm-4xm | 1 -
tests/ref/fate/adpcm-afc | 1 -
tests/ref/fate/adpcm-dtk | 1 -
tests/ref/fate/adpcm-ea-1 | 1 -
tests/ref/fate/adpcm-ea-2 | 1 -
tests/ref/fate/adpcm-ea-maxis-xa | 1 -
tests/ref/fate/adpcm-ea-r1 | 1 -
tests/ref/fate/adpcm-ima-amv | 1 -
tests/ref/fate/adpcm-ima-ea-eacs | 1 -
tests/ref/fate/adpcm-ima-ea-sead | 1 -
tests/ref/fate/adpcm-ima-smjpeg | 1 -
tests/ref/fate/adpcm-ima-ws | 1 -
tests/ref/fate/adpcm-ima-ws-vqa3 | 1 -
tests/ref/fate/adpcm-ms-mono | 1 -
tests/ref/fate/adpcm-thp | 1 -
tests/ref/fate/adpcm-vima | 1 -
tests/ref/fate/adpcm-xa | 1 -
tests/ref/fate/adts-id3v1-demux | 1 -
tests/ref/fate/adts-id3v2-demux | 1 -
tests/ref/fate/adts-id3v2-two-tags-demux | 1 -
tests/ref/fate/adtstoasc_ticket3715 | 1 -
tests/ref/fate/armovie-escape124 | 1 -
tests/ref/fate/bethsoft-vid | 1 -
tests/ref/fate/bfi | 1 -
tests/ref/fate/bmv-audio | 1 -
tests/ref/fate/caf-alac-remux | 1 -
tests/ref/fate/caf-amr_nb-remux | 1 -
tests/ref/fate/caf-mace6-remux | 1 -
tests/ref/fate/caf-pcm_s24-remux | 1 -
tests/ref/fate/caf-pcm_s24le-remux | 1 -
tests/ref/fate/caf-qdm2-remux | 1 -
tests/ref/fate/cdxl-demux | 1 -
tests/ref/fate/channel_layout | 94 +++
tests/ref/fate/copy-psp | 1 -
tests/ref/fate/copy-shortest1 | 1 -
tests/ref/fate/copy-shortest2 | 1 -
tests/ref/fate/copy-trac236 | 1 -
tests/ref/fate/copy-trac3074 | 1 -
tests/ref/fate/copy-trac4914 | 1 -
tests/ref/fate/copy-trac4914-avi | 1 -
tests/ref/fate/corepng | 1 -
tests/ref/fate/cover-art-aiff-id3v2-remux | 1 -
tests/ref/fate/cover-art-flac-remux | 6 +-
tests/ref/fate/cover-art-mp3-id3v2-remux | 1 -
tests/ref/fate/creatureshock-avs | 1 -
tests/ref/fate/cyberia-c93 | 1 -
tests/ref/fate/d-cinema-demux | 1 -
tests/ref/fate/dca-xll_51_16_192_768_0 | 1 -
tests/ref/fate/dca-xll_51_16_192_768_0-dmix_2 | 1 -
tests/ref/fate/dca-xll_51_16_192_768_0-dmix_6 | 1 -
tests/ref/fate/dca-xll_51_16_192_768_1 | 1 -
tests/ref/fate/dca-xll_51_16_192_768_1-dmix_2 | 1 -
tests/ref/fate/dca-xll_51_16_192_768_1-dmix_6 | 1 -
tests/ref/fate/dca-xll_51_24_48_768 | 1 -
tests/ref/fate/dca-xll_51_24_48_768-dmix_2 | 1 -
tests/ref/fate/dca-xll_51_24_48_768-dmix_6 | 1 -
tests/ref/fate/dca-xll_51_24_48_none | 1 -
tests/ref/fate/dca-xll_51_24_48_none-dmix_2 | 1 -
tests/ref/fate/dca-xll_51_24_48_none-dmix_6 | 1 -
tests/ref/fate/dca-xll_71_24_48_768_0 | 1 -
tests/ref/fate/dca-xll_71_24_48_768_0-dmix_2 | 1 -
tests/ref/fate/dca-xll_71_24_48_768_0-dmix_6 | 1 -
tests/ref/fate/dca-xll_71_24_48_768_1 | 1 -
tests/ref/fate/dca-xll_71_24_48_768_1-dmix_2 | 1 -
tests/ref/fate/dca-xll_71_24_48_768_1-dmix_6 | 1 -
tests/ref/fate/dca-xll_71_24_96_768 | 1 -
tests/ref/fate/dca-xll_71_24_96_768-dmix_2 | 1 -
tests/ref/fate/dca-xll_71_24_96_768-dmix_6 | 1 -
tests/ref/fate/dca-xll_x96_51_24_96_1509 | 1 -
.../ref/fate/dca-xll_x96_51_24_96_1509-dmix_2 | 1 -
.../ref/fate/dca-xll_x96_51_24_96_1509-dmix_6 | 1 -
tests/ref/fate/dca-xll_xch_61_24_48_768 | 1 -
.../ref/fate/dca-xll_xch_61_24_48_768-dmix_2 | 1 -
.../ref/fate/dca-xll_xch_61_24_48_768-dmix_6 | 1 -
tests/ref/fate/dcinema-encode | 1 -
tests/ref/fate/delphine-cin-audio | 1 -
tests/ref/fate/dpcm-idroq | 1 -
tests/ref/fate/dpcm-interplay | 1 -
tests/ref/fate/dss-lp | 1 -
tests/ref/fate/dss-sp | 1 -
tests/ref/fate/ffmpeg-attached_pics | 1 -
tests/ref/fate/ffmpeg-filter_complex_audio | 1 -
tests/ref/fate/filter-acrossfade | 1 -
tests/ref/fate/filter-adelay | 1 -
tests/ref/fate/filter-aecho | 1 -
tests/ref/fate/filter-aemphasis | 2 -
tests/ref/fate/filter-aemphasis-50fm | 1 -
tests/ref/fate/filter-aemphasis-75kf | 1 -
tests/ref/fate/filter-afade-esin | 1 -
tests/ref/fate/filter-afade-exp | 1 -
tests/ref/fate/filter-afade-hsin | 1 -
tests/ref/fate/filter-afade-iqsin | 1 -
tests/ref/fate/filter-afade-log | 1 -
tests/ref/fate/filter-afade-qsin | 1 -
tests/ref/fate/filter-agate | 1 -
tests/ref/fate/filter-alimiter | 1 -
tests/ref/fate/filter-amerge | 1 -
tests/ref/fate/filter-anequalizer | 1 -
tests/ref/fate/filter-apad | 1 -
tests/ref/fate/filter-asetnsamples-nopad | 1 -
tests/ref/fate/filter-asetnsamples-pad | 1 -
tests/ref/fate/filter-asetrate | 1 -
tests/ref/fate/filter-atrim-duration | 1 -
tests/ref/fate/filter-atrim-mixed | 1 -
tests/ref/fate/filter-atrim-samples | 1 -
tests/ref/fate/filter-atrim-time | 1 -
tests/ref/fate/filter-chorus | 1 -
tests/ref/fate/filter-compand | 1 -
tests/ref/fate/filter-concat | 1 -
tests/ref/fate/filter-concat-vfr | 1 -
tests/ref/fate/filter-dcshift | 1 -
tests/ref/fate/filter-earwax | 1 -
tests/ref/fate/filter-extrastereo | 1 -
tests/ref/fate/filter-formats | 20 +-
tests/ref/fate/filter-hls | 1 -
tests/ref/fate/filter-hls-append | 1 -
tests/ref/fate/filter-meta-4560-rotate0 | 1 -
tests/ref/fate/filter-overlay-dvdsub-2397 | 1 -
tests/ref/fate/filter-pan-downmix1 | 1 -
tests/ref/fate/filter-pan-downmix2 | 1 -
tests/ref/fate/filter-pan-mono1 | 1 -
tests/ref/fate/filter-pan-mono2 | 1 -
tests/ref/fate/filter-pan-stereo1 | 1 -
tests/ref/fate/filter-pan-stereo2 | 1 -
tests/ref/fate/filter-pan-stereo3 | 1 -
tests/ref/fate/filter-pan-stereo4 | 1 -
tests/ref/fate/filter-pan-upmix1 | 1 -
tests/ref/fate/filter-pan-upmix2 | 1 -
tests/ref/fate/filter-silenceremove | 1 -
tests/ref/fate/filter-stereotools | 1 -
tests/ref/fate/g722-encode | 1 -
tests/ref/fate/g722dec-1 | 1 -
tests/ref/fate/g723_1-dec-1 | 1 -
tests/ref/fate/g723_1-dec-2 | 1 -
tests/ref/fate/g723_1-dec-3 | 1 -
tests/ref/fate/g723_1-dec-4 | 1 -
tests/ref/fate/g723_1-dec-5 | 1 -
tests/ref/fate/g723_1-dec-6 | 1 -
tests/ref/fate/g723_1-dec-7 | 1 -
tests/ref/fate/g723_1-dec-8 | 1 -
tests/ref/fate/g726-encode-2bit | 1 -
tests/ref/fate/g726-encode-3bit | 1 -
tests/ref/fate/g726-encode-4bit | 1 -
tests/ref/fate/g726-encode-5bit | 1 -
tests/ref/fate/gapless-mp3 | 6 +-
tests/ref/fate/gsm-ms | 1 -
tests/ref/fate/gsm-toast | 1 -
tests/ref/fate/h264-skip-nointra | 1 -
tests/ref/fate/h264-skip-nokey | 1 -
tests/ref/fate/h264-xavc-4389 | 1 -
tests/ref/fate/hls-fmp4 | 1 -
tests/ref/fate/hls-init-time | 1 -
tests/ref/fate/hls-list-size | 1 -
tests/ref/fate/hls-segment-single | 1 -
tests/ref/fate/hls-segment-size | 1 -
tests/ref/fate/id-cin-video | 1 -
tests/ref/fate/id3v2-chapters | 1 -
tests/ref/fate/id3v2-priv-remux | 1 -
tests/ref/fate/jv-demux | 1 -
tests/ref/fate/lmlm4-demux | 1 -
tests/ref/fate/matroska-flac-channel-mapping | 2 -
tests/ref/fate/matroska-flac-extradata-update | 3 -
tests/ref/fate/matroska-lzo-decompression | 1 -
.../fate/matroska-mastering-display-metadata | 2 -
tests/ref/fate/matroska-mpegts-remux | 2 -
.../matroska-wavpack-missing-codecprivate | 1 -
tests/ref/fate/matroska-xiph-lacing | 1 -
tests/ref/fate/maxis-xa | 1 -
tests/ref/fate/mkv | 1 -
tests/ref/fate/mkv-1242 | 1 -
tests/ref/fate/mov-440hz-10ms | 1 -
tests/ref/fate/mov-bbi-elst-starts-b | 1 -
tests/ref/fate/mov-cover-image | 1 -
tests/ref/fate/mov-mp3-demux | 1 -
.../ref/fate/mov-mp4-disposition-mpegts-remux | 2 -
tests/ref/fate/mpegps-remuxed-pcm-demux | 1 -
tests/ref/fate/mtv | 1 -
tests/ref/fate/mxf-demux | 1 -
tests/ref/fate/nsv-demux | 1 -
tests/ref/fate/oma-atrac3-remux | 1 -
tests/ref/fate/oma-atrac3p-remux | 1 -
tests/ref/fate/on2avc | 1 -
tests/ref/fate/opt | 16 +-
tests/ref/fate/paf-audio | 1 -
tests/ref/fate/paf-demux | 1 -
tests/ref/fate/pcm-planar | 1 -
tests/ref/fate/pcm_dvd | 1 -
tests/ref/fate/pmp-demux | 1 -
tests/ref/fate/prores-gray | 1 -
tests/ref/fate/prores-transparency | 1 -
tests/ref/fate/prores-transparency_skip | 1 -
tests/ref/fate/psx-str-demux | 1 -
tests/ref/fate/pva-demux | 1 -
tests/ref/fate/ra3-144 | 1 -
tests/ref/fate/redcode-demux | 1 -
tests/ref/fate/s337m-demux | 1 -
tests/ref/fate/segment-adts-to-mkv-header-000 | 1 -
tests/ref/fate/segment-adts-to-mkv-header-001 | 1 -
tests/ref/fate/segment-adts-to-mkv-header-002 | 1 -
tests/ref/fate/segment-adts-to-mkv-header-all | 1 -
tests/ref/fate/shortest | 1 -
tests/ref/fate/sierra-vmd-audio | 1 -
tests/ref/fate/siff-demux | 1 -
tests/ref/fate/smacker-audio | 1 -
tests/ref/fate/smjpeg-demux | 1 -
tests/ref/fate/sp5x | 1 -
tests/ref/fate/tiertex-seq | 1 -
tests/ref/fate/tmv | 1 -
tests/ref/fate/tscc-15bit | 1 -
tests/ref/fate/vqf-demux | 2 +-
tests/ref/fate/wav-ac3 | 1 -
tests/ref/fate/wc3movie-xan | 1 -
tests/ref/fate/webm-dash-chapters | 1 -
tests/ref/fate/westwood-aud | 1 -
tests/ref/fate/wmv3-drm-nodec | 1 -
tests/ref/fate/wtv-demux | 1 -
tests/ref/fate/xmv-demux | 1 -
710 files changed, 6417 insertions(+), 3446 deletions(-)
create mode 100644 libavutil/tests/channel_layout.c
create mode 100644 tests/ref/fate/channel_layout
--
2.34.1
More information about the ffmpeg-devel
mailing list