mirror of
https://github.com/mpv-player/mpv.git
synced 2026-10-28 23:13:18 +08:00
Drop the swr_set_channel_mapping() + transpose_order() + reorder_in[] plumbing. Instead, build the swr input channel layout directly from the mpv chmap as AV_CHANNEL_ORDER_CUSTOM, so the labels in the layout already match the positions of the channels in the input data. For all unknown map, we return all UNSPEC, so the swr expands to default layout for this channel number.
34 lines
1.2 KiB
C
34 lines
1.2 KiB
C
/*
|
|
* This file is part of mpv.
|
|
*
|
|
* mpv is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* mpv is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with mpv. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <libavutil/channel_layout.h>
|
|
|
|
#include "config.h"
|
|
|
|
#include "chmap.h"
|
|
|
|
bool mp_chmap_from_av_layout(struct mp_chmap *dst, const AVChannelLayout *src);
|
|
|
|
void mp_chmap_to_av_layout(AVChannelLayout *dst, const struct mp_chmap *src);
|
|
|
|
// Like mp_chmap_to_av_layout(), but always emit AV_CHANNEL_ORDER_CUSTOM for
|
|
// known layouts so that the original channel order is preserved.
|
|
void mp_chmap_to_av_layout_custom(AVChannelLayout *dst,
|
|
const struct mp_chmap *src);
|