On Sat,  6 Oct 2012 13:30:37 -0400, Justin Ruggles <[email protected]> 
wrote:
> When there is only 1 channel, the planar and interleaved formats of the same
> data type should be treated as identical.
> ---
>  libavfilter/af_resample.c |    7 ++++++-
>  1 files changed, 6 insertions(+), 1 deletions(-)
> 
> diff --git a/libavfilter/af_resample.c b/libavfilter/af_resample.c
> index c51f9d2..58a9b2a 100644
> --- a/libavfilter/af_resample.c
> +++ b/libavfilter/af_resample.c
> @@ -93,7 +93,11 @@ static int config_output(AVFilterLink *outlink)
>  
>      if (inlink->channel_layout == outlink->channel_layout &&
>          inlink->sample_rate    == outlink->sample_rate    &&
> -        inlink->format         == outlink->format)
> +        (inlink->format        == outlink->format ||
> +        (av_get_channel_layout_nb_channels(inlink->channel_layout)  == 1 &&
> +         av_get_channel_layout_nb_channels(outlink->channel_layout) == 1 &&
> +         av_get_planar_sample_fmt(inlink->format) ==
> +         av_get_planar_sample_fmt(outlink->format))))
>          return 0;
>  
>      if (!(s->avr = avresample_alloc_context()))
> @@ -226,6 +230,7 @@ static int filter_samples(AVFilterLink *inlink, 
> AVFilterBufferRef *buf)
>  fail:
>          avfilter_unref_buffer(buf);
>      } else {
> +        buf->format = outlink->format;

Same for channel_layout too I suppose.

Otherwise should be ok

-- 
Anton Khirnov
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to