On Sat, 6 Oct 2012 13:30:36 -0400, Justin Ruggles <justin.rugg...@gmail.com> wrote: > When there is only 1 channel, the planar and interleaved formats of the same > data type should be treated as identical. > --- > libavcodec/utils.c | 9 ++++++++- > 1 files changed, 8 insertions(+), 1 deletions(-) > > diff --git a/libavcodec/utils.c b/libavcodec/utils.c > index a72c434..d1b9d0a 100644 > --- a/libavcodec/utils.c > +++ b/libavcodec/utils.c > @@ -792,9 +792,16 @@ int attribute_align_arg avcodec_open2(AVCodecContext > *avctx, const AVCodec *code > if (av_codec_is_encoder(avctx->codec)) { > int i; > if (avctx->codec->sample_fmts) { > - for (i = 0; avctx->codec->sample_fmts[i] != AV_SAMPLE_FMT_NONE; > i++) > + for (i = 0; avctx->codec->sample_fmts[i] != AV_SAMPLE_FMT_NONE; > i++) { > if (avctx->sample_fmt == avctx->codec->sample_fmts[i]) > break; > + if (avctx->channels == 1 && > + av_get_planar_sample_fmt(avctx->sample_fmt) == > + av_get_planar_sample_fmt(avctx->codec->sample_fmts[i])) { > + avctx->sample_fmt = avctx->codec->sample_fmts[i]; > + break; > + } > + } > if (avctx->codec->sample_fmts[i] == AV_SAMPLE_FMT_NONE) { > av_log(avctx, AV_LOG_ERROR, "Specified sample_fmt is not > supported.\n"); > ret = AVERROR(EINVAL); > -- > 1.7.1 >
Ok. -- Anton Khirnov _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel