From patchwork Thu Jan 13 01:49:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 33290 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp12254iog; Wed, 12 Jan 2022 17:52:13 -0800 (PST) X-Google-Smtp-Source: ABdhPJwunWoSCS3Szmqp85vUm9fnN1z8X5bAupGcWb4Fw8ea5jifeKleI8Y5gVqLCEsZHuaIpYj1 X-Received: by 2002:a17:906:5501:: with SMTP id r1mr1948737ejp.212.1642038733192; Wed, 12 Jan 2022 17:52:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642038733; cv=none; d=google.com; s=arc-20160816; b=Z4ElBQuJJA1xFUh2oigozqGW/ArzUwoiXarqkbcAb1sJ6vA3xAaSQy4+9hG176IrJU REsKv9r8IQUct2QzgacO/vbl86k1PKGhiTxIy07IxwFgG2UHaldAl8m25YuS0OgSDkwq nYADOPwObCn0c2s+wvO7bG5e6Ki+PEjJxMTECaTVrd553k6z7I7Aqzd6fQxuOJoTsIAk 6C04tJvWNJet7/SDG1t6ygj0NzUdAMzlfv0t9uKJJpro+uvEtPmcBxxUwJkwNnthcAbk Li/6Jm8Fb/ZDeZaKCW7UAR/3KQUcT5Hp3C8VgLU5djbgSX/mYvLSiPks/wNd5d9s3iaT F91Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=J5/uCrHYSklxhlsv+MoNspSwDQMMkK5RD7wgLtEd/wM=; b=I/JcMdU5KtXcboJJCCKO5DVSsG/wDZ/DCru6fwOQPg/RDLIuuxBTytSKZRsOIeZlj+ rE8jLh3yN/m3l/bSin/YYBFCVcx1xmhDaUL9aQfOC3aUaiqKjteKwRmQYFM1eWO1u6DA S798KOYbdTEuqLfWKov7VBynlaWv96xFXbgsd00Amd2nqI+ILnWkEHcoZAQ27L9QCzG2 kUEugRqWO8aC5DRdllYxwFFRvorW3nJxY9VXP25LmWHnausbC8fMyd6GUfNFqiyPRVfS 33PLdtS8272BbcdrLRI1nukZTPEFceO7NpoXkXli88WCwWvJUFnejv/F0litDPpI85ZO 9h6A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=QFRVnsGz; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id y5si760104edv.390.2022.01.12.17.52.12; Wed, 12 Jan 2022 17:52:13 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=QFRVnsGz; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0F5D468AE46; Thu, 13 Jan 2022 03:52:06 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f53.google.com (mail-qv1-f53.google.com [209.85.219.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7AC3368A74F for ; Thu, 13 Jan 2022 03:51:59 +0200 (EET) Received: by mail-qv1-f53.google.com with SMTP id hu2so5074693qvb.8 for ; Wed, 12 Jan 2022 17:51:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=6Vn2jOxskHOcHNTIL7qke5mZrD0BWWPnSgMqMJRhw9g=; b=QFRVnsGz62ISJEBpmrZ5qHg00dBFdsksL8a6IPrT0KysKUFBFFhCMpyl4LNTLTQeZY TdRZxkEhQ7x/QU/NQIImFhKnz8R+EApfQo8vEzNr9MG3at+5N6Jcl4PE+DSB5K/q35/N Mr6bmNYBfMgVF8BonbzsvwG9r1CUWm4uUC+UTM3rCKFrmy+AFqCFBID2N1iY/KE7XmFR 5KWAlhQ3mOVnGzBPt4N7/MgqM5/KoUSjS9r3zUI10x8vx30kAvfJnnrQNFalqJOrPOcc g18WTRtKF1tUWyuKy2xmpVauuDTJ3LIJAwDkMf8zZMKKm8dNw21X1deadYIhb8oY4h7l D53w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=6Vn2jOxskHOcHNTIL7qke5mZrD0BWWPnSgMqMJRhw9g=; b=sKVM5tXioABoviaZ20VnYHHNPnMoANpT5nzOROUX6PJXBFs9vnS9a6xath9W/b5sqJ xeN4U6cceTM9CTZM2JZWSHbRixQuUyPc/P1zkXnRS9l4r/UeYlGDe/Z1ajYV2fumYNPj QAsQC7PMfnw9FXQ456L/PDnTW10BzteKjfYygPYnSCxMxSsZqln/G7WLIJeMRnmX5jKc H6cbbYRtKwQIxFO9MlT4cnApn5IUpMotL7wosvzSbis1ctz0aTM8/nzVPRqgP5AaFkWd KUW1YjqkrDgyVdKYqHi/NMSF3R3TW3HK3vL+cqRCMZyEAkxKeyDJdg8GIKdQuUq9OBEI Hxkw== X-Gm-Message-State: AOAM532f6VoL+KlU4jorLVw7hzCarXoOw0Xrr6831aglw+0BGz7AmkUc H5iGj+03ZNN0nQS/f+JtROG5SxVIyzU= X-Received: by 2002:a05:6214:e82:: with SMTP id hf2mr2388511qvb.81.1642038717045; Wed, 12 Jan 2022 17:51:57 -0800 (PST) Received: from localhost.localdomain ([186.136.131.95]) by smtp.gmail.com with ESMTPSA id i21sm1204710qti.31.2022.01.12.17.51.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Jan 2022 17:51:56 -0800 (PST) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 22:49:22 -0300 Message-Id: <20220113015101.4-1-jamrial@gmail.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 000/281 v3] New channel layout API X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: c1VpRF9JedpT Several fixes since v2, including using '+' as separator for channels instead of '|', as the latter is used to separate layouts. Like last time custom layouts contain an opaque pointer and fixed size array per channel to hold a user defined name that helpers will use to identify the channel (find by name, describe as part of a layout, etc). There's also an opaque pointer for the layout regardless of order. This time i'm sending the whole set, but it can also be found in https://github.com/jamrial/FFmpeg/commits/channel_layout4 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 (32): 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 uncodedframecrcenc: 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 avdevice/lavfi: remove call to deprecated function av_buffersink_get_channel_layout() 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 | 52 +- 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.c | 6 + libavcodec/aacdec_fixed.c | 3 + libavcodec/aacdec_template.c | 52 +- libavcodec/aacdectab.h | 20 + 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/aptxdec.c | 8 +- libavcodec/aptxenc.c | 6 + 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 | 53 +- libavcodec/avcodec.h | 24 +- 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 | 78 +- 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/internal.h | 3 + libavcodec/interplayacm.c | 10 +- libavcodec/libcelt_dec.c | 10 +- libavcodec/libcodec2.c | 4 +- libavcodec/libfdk-aacdec.c | 32 +- libavcodec/libfdk-aacenc.c | 35 +- 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.c | 9 + libavcodec/mlp.h | 5 + libavcodec/mlp_parser.c | 12 +- libavcodec/mlpdec.c | 120 ++- libavcodec/mlpenc.c | 106 +-- 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_fixed.c | 5 + libavcodec/mpegaudioenc_float.c | 5 + libavcodec/mpegaudioenc_template.c | 2 +- libavcodec/nellymoserdec.c | 4 +- libavcodec/nellymoserenc.c | 6 +- libavcodec/on2avc.c | 20 +- libavcodec/options.c | 2 + libavcodec/options_table.h | 5 + libavcodec/opus.c | 73 +- libavcodec/opusdec.c | 4 +- libavcodec/opusenc.c | 15 +- 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 | 27 +- 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 | 9 +- libavcodec/sbcenc.c | 15 +- libavcodec/shorten.c | 6 +- libavcodec/sipr.c | 4 +- libavcodec/siren.c | 4 +- libavcodec/smacker.c | 12 +- libavcodec/sonic.c | 14 +- libavcodec/speexdec.c | 10 +- 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/vorbis.h | 3 + libavcodec/vorbis_data.c | 18 + libavcodec/vorbisdec.c | 27 +- 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 | 30 +- 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 | 35 +- libavfilter/af_acontrast.c | 2 +- libavfilter/af_acrossover.c | 6 +- libavfilter/af_acrusher.c | 4 +- libavfilter/af_adeclick.c | 14 +- libavfilter/af_adecorrelate.c | 12 +- libavfilter/af_adelay.c | 8 +- libavfilter/af_adenorm.c | 6 +- libavfilter/af_aderivative.c | 2 +- libavfilter/af_adynamicequalizer.c | 6 +- libavfilter/af_adynamicsmooth.c | 2 +- libavfilter/af_aecho.c | 8 +- libavfilter/af_aemphasis.c | 6 +- libavfilter/af_aexciter.c | 10 +- libavfilter/af_afade.c | 10 +- libavfilter/af_afftdn.c | 26 +- libavfilter/af_afftfilt.c | 30 +- libavfilter/af_afir.c | 49 +- libavfilter/af_aformat.c | 33 +- libavfilter/af_afreqshift.c | 6 +- libavfilter/af_afwtdn.c | 8 +- libavfilter/af_agate.c | 14 +- libavfilter/af_aiir.c | 34 +- libavfilter/af_alimiter.c | 10 +- libavfilter/af_amerge.c | 40 +- libavfilter/af_amix.c | 4 +- libavfilter/af_amultiply.c | 4 +- libavfilter/af_anequalizer.c | 14 +- libavfilter/af_anlmdn.c | 4 +- libavfilter/af_anlms.c | 6 +- libavfilter/af_apad.c | 2 +- libavfilter/af_aphaser.c | 4 +- libavfilter/af_apsyclip.c | 8 +- libavfilter/af_apulsator.c | 2 +- libavfilter/af_aresample.c | 52 +- libavfilter/af_arnndn.c | 8 +- libavfilter/af_asdr.c | 8 +- libavfilter/af_asetnsamples.c | 4 +- libavfilter/af_ashowinfo.c | 17 +- libavfilter/af_asoftclip.c | 2 +- libavfilter/af_aspectralstats.c | 4 +- libavfilter/af_asr.c | 2 +- libavfilter/af_astats.c | 10 +- libavfilter/af_asubboost.c | 8 +- libavfilter/af_asupercut.c | 6 +- libavfilter/af_atempo.c | 2 +- libavfilter/af_atilt.c | 6 +- libavfilter/af_axcorrelate.c | 8 +- libavfilter/af_biquads.c | 54 +- libavfilter/af_bs2b.c | 2 +- libavfilter/af_channelmap.c | 90 +- libavfilter/af_channelsplit.c | 42 +- libavfilter/af_chorus.c | 14 +- libavfilter/af_compand.c | 14 +- libavfilter/af_compensationdelay.c | 9 +- libavfilter/af_crossfeed.c | 2 +- libavfilter/af_crystalizer.c | 4 +- libavfilter/af_dcshift.c | 4 +- libavfilter/af_deesser.c | 6 +- libavfilter/af_drmeter.c | 4 +- libavfilter/af_dynaudnorm.c | 24 +- libavfilter/af_earwax.c | 2 +- libavfilter/af_extrastereo.c | 2 +- libavfilter/af_firequalizer.c | 31 +- libavfilter/af_flanger.c | 6 +- libavfilter/af_haas.c | 2 +- libavfilter/af_hdcd.c | 28 +- libavfilter/af_headphone.c | 40 +- libavfilter/af_join.c | 270 +++--- libavfilter/af_ladspa.c | 18 +- libavfilter/af_loudnorm.c | 86 +- libavfilter/af_lv2.c | 19 +- libavfilter/af_mcompand.c | 16 +- libavfilter/af_pan.c | 74 +- libavfilter/af_replaygain.c | 2 +- libavfilter/af_rubberband.c | 2 +- libavfilter/af_sidechaincompress.c | 18 +- libavfilter/af_silencedetect.c | 8 +- libavfilter/af_silenceremove.c | 76 +- libavfilter/af_sofalizer.c | 96 +-- libavfilter/af_speechnorm.c | 28 +- libavfilter/af_stereotools.c | 2 +- libavfilter/af_stereowiden.c | 2 +- libavfilter/af_superequalizer.c | 2 +- libavfilter/af_surround.c | 90 +- libavfilter/af_tremolo.c | 2 +- libavfilter/af_vibrato.c | 6 +- libavfilter/af_volume.c | 4 +- libavfilter/af_volumedetect.c | 2 +- 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 | 18 +- libavfilter/avf_abitscope.c | 10 +- libavfilter/avf_ahistogram.c | 6 +- libavfilter/avf_aphasemeter.c | 2 +- libavfilter/avf_avectorscope.c | 2 +- libavfilter/avf_concat.c | 2 +- libavfilter/avf_showcqt.c | 3 +- libavfilter/avf_showfreqs.c | 4 +- libavfilter/avf_showspatial.c | 4 +- libavfilter/avf_showspectrum.c | 15 +- libavfilter/avf_showvolume.c | 31 +- libavfilter/avf_showwaves.c | 12 +- libavfilter/avfilter.c | 21 +- libavfilter/avfilter.h | 16 +- libavfilter/avfiltergraph.c | 84 +- libavfilter/buffersink.c | 36 +- libavfilter/buffersink.h | 7 +- libavfilter/buffersrc.c | 94 ++- libavfilter/buffersrc.h | 9 + libavfilter/f_ebur128.c | 10 +- libavfilter/f_graphmonitor.c | 2 +- libavfilter/f_loop.c | 4 +- libavfilter/f_reverse.c | 4 +- libavfilter/f_streamselect.c | 6 +- libavfilter/formats.c | 151 +++- libavfilter/formats.h | 16 +- libavfilter/framepool.c | 5 + libavfilter/framequeue.c | 4 +- libavfilter/graphdump.c | 4 +- libavfilter/internal.h | 2 +- libavfilter/src_movie.c | 19 +- libavfilter/tests/filtfmts.c | 3 +- libavfilter/tests/formats.c | 4 +- libavfilter/trim.c | 2 +- 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 | 176 +++- 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 | 34 +- libavformat/mxfenc.c | 20 +- libavformat/mxg.c | 3 +- libavformat/nistspheredec.c | 8 +- libavformat/nspdec.c | 3 +- libavformat/nsvdec.c | 2 +- libavformat/nutdec.c | 5 +- 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 | 32 +- 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/uncodedframecrcenc.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 | 789 ++++++++++++++++-- libavutil/channel_layout.h | 592 ++++++++++++- libavutil/frame.c | 116 ++- libavutil/frame.h | 16 +- libavutil/opt.c | 126 ++- libavutil/opt.h | 12 + libavutil/tests/channel_layout.c | 253 ++++++ libavutil/tests/opt.c | 8 +- libavutil/version.h | 1 + libswresample/options.c | 33 +- libswresample/rematrix.c | 237 ++++-- libswresample/rematrix_template.c | 7 +- libswresample/swresample.c | 152 +++- 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/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/amrnb-remux | 1 - tests/ref/fate/amrwb-remux | 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 | 111 +++ 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 - 793 files changed, 7311 insertions(+), 3936 deletions(-) create mode 100644 libavutil/tests/channel_layout.c create mode 100644 tests/ref/fate/channel_layout