[FFmpeg-devel] [PATCH]Warn if vorbis files with wrong channel layout are encoded
Lou Logan
lou at fakeoutdoorsman.com
Thu Apr 14 21:28:50 CEST 2011
Forgive the munging of my mail client.
On Thu, 14 Apr 2011 21:18:44 +0200
Carl Eugen Hoyos <cehoyos at ag.or.at> wrote:
> diff --git a/libavcodec/libvorbis.c b/libavcodec/libvorbis.c
> index 9324b28..acbaa8c 100644
> --- a/libavcodec/libvorbis.c
> +++ b/libavcodec/libvorbis.c
> @@ -96,6 +96,32 @@ static av_cold int
> oggvorbis_init_encoder(vorbis_info *vi, AVCodecContext *avcco
> vorbis_encode_ctl(vi, OV_ECTL_IBLOCK_SET, &context->iblock); }
>
> + if (avccontext->channels == 3 &&
> + avccontext->channel_layout !=
> (AV_CH_LAYOUT_STEREO|AV_CH_FRONT_CENTER) ||
> + avccontext->channels == 4 &&
> + avccontext->channel_layout != AV_CH_LAYOUT_2_2 &&
> + avccontext->channel_layout != AV_CH_LAYOUT_QUAD ||
> + avccontext->channels == 5 &&
> + avccontext->channel_layout != AV_CH_LAYOUT_5POINT0 &&
> + avccontext->channel_layout != AV_CH_LAYOUT_5POINT0_BACK
> ||
> + avccontext->channels == 6 &&
> + avccontext->channel_layout != AV_CH_LAYOUT_5POINT1 &&
> + avccontext->channel_layout != AV_CH_LAYOUT_5POINT1_BACK
> ||
> + avccontext->channels == 7 &&
> + avccontext->channel_layout !=
> (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_CENTER) ||
> + avccontext->channels == 8 &&
> + avccontext->channel_layout != AV_CH_LAYOUT_7POINT1) {
> + if (avccontext->channel_layout) {
> + av_log(avccontext, AV_LOG_ERROR, "Channel layout not
> supported by Vorbis, "
> + "output stream will
> have incorrect "
> + "channel layout.\n");
Comma splice nit.
Channel layout not supported by Vorbis. Output stream will have
incorrect channel layout.
or
Channel layout not supported by Vorbis; output stream will have
incorrect channel layout.
> + } else {
> + av_log(avccontext, AV_LOG_WARNING, "No channel layout
> specified. The encoder "
> + "will use Vorbis
> channel layout for "
> + "%d channels.\n",
> avccontext->channels);
> + }
> + }
> +
> return vorbis_encode_setup_init(vi);
> }
>
More information about the ffmpeg-devel
mailing list