[FFmpeg-devel] [PATCH] avcodec/libopusenc: allow encoding channel mapping 2
Rostislav Pehlivanov
atomnuker at gmail.com
Thu Nov 29 01:53:21 EET 2018
On Fri, 27 Jul 2018 at 20:44, Felicia Lim <flim-at-google.com at ffmpeg.org>
wrote:
> ---
> libavcodec/libopusenc.c | 22 ++++++++++++++++++++++
> 1 file changed, 22 insertions(+)
>
> diff --git a/libavcodec/libopusenc.c b/libavcodec/libopusenc.c
> index 4ae81b0bb2..6b450ec317 100644
> --- a/libavcodec/libopusenc.c
> +++ b/libavcodec/libopusenc.c
> @@ -27,6 +27,7 @@
> #include "bytestream.h"
> #include "internal.h"
> #include "libopus.h"
> +#include "mathops.h"
> #include "vorbis.h"
> #include "audio_frame_queue.h"
>
> @@ -200,6 +201,21 @@ static int libopus_check_vorbis_layout(AVCodecContext
> *avctx, int mapping_family
> return 0;
> }
>
> +static int libopus_check_ambisonics_channels(AVCodecContext *avctx) {
> + int channels = avctx->channels;
> + int ambisonic_order = ff_sqrt(channels) - 1;
> + if (channels != ((ambisonic_order + 1) * (ambisonic_order + 1)) &&
> + channels != ((ambisonic_order + 1) * (ambisonic_order + 1) + 2)) {
> + av_log(avctx, AV_LOG_ERROR,
> + "Ambisonics coding is only specified for channel counts"
> + " which can be written as (n + 1)^2 or (n + 1)^2 + 2"
> + " for nonnegative integer n\n");
> + return AVERROR_INVALIDDATA;
> + }
> +
> + return 0;
> +}
> +
> static int libopus_validate_layout_and_get_channel_map(
> AVCodecContext *avctx,
> int mapping_family,
> @@ -231,6 +247,12 @@ static int
> libopus_validate_layout_and_get_channel_map(
> channel_map =
> ff_vorbis_channel_layout_offsets[avctx->channels - 1];
> }
> break;
> + case 2:
> + ret = libopus_check_max_channels(avctx, 227);
> + if (ret == 0) {
> + ret = libopus_check_ambisonics_channels(avctx);
> + }
> + break;
> case 255:
> ret = libopus_check_max_channels(avctx, 254);
> break;
> --
> 2.18.0.345.g5c9ce644c3-goog
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
I did not OK the patch at all and none of the requests I made were met.
This has to be reverted.
More information about the ffmpeg-devel
mailing list