Quoting Vittorio Giovara (2017-06-29 00:10:50)
> diff --git a/libavresample/utils.c b/libavresample/utils.c
> index bab2153b4b..15c827efbe 100644
> --- a/libavresample/utils.c
> +++ b/libavresample/utils.c
> @@ -18,6 +18,7 @@
>   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 
> USA
>   */
>  
> +#include "libavutil/channel_layout.h"
>  #include "libavutil/common.h"
>  #include "libavutil/dict.h"
>  #include "libavutil/error.h"
> @@ -35,6 +36,7 @@
>  
>  int avresample_open(AVAudioResampleContext *avr)
>  {
> +    int in_ch, out_ch;
>      int ret;
>  
>      if (avresample_is_open(avr)) {
> @@ -42,24 +44,67 @@ int avresample_open(AVAudioResampleContext *avr)
>          return AVERROR(EINVAL);
>      }
>  
> +    if ( avr->in_ch_layout.order == AV_CHANNEL_ORDER_CUSTOM ||
> +        avr->out_ch_layout.order == AV_CHANNEL_ORDER_CUSTOM) {
> +        av_log(avr, AV_LOG_ERROR,
> +              "Resampling a custom channel layout order is not 
> supported.\n");
> +       return AVERROR(ENOSYS);

Why? I don't remember if I tested it properly back then, but IIRC the
matrix building code should work custom orders just fine.

> +    }
> +
> +    if (avr->in_ch_layout.order == AV_CHANNEL_ORDER_UNSPEC) {
> +        if (avr->in_ch_layout.nb_channels > 63) {
> +           av_log(avr, AV_LOG_ERROR,
> +                  "Unspecified channel layout order is supported only for up 
> "
> +                  "to 63 channels (got %d).\n", 
> avr->in_ch_layout.nb_channels);
> +           return AVERROR(ENOSYS);
> +        }
> +        av_channel_layout_default(&avr->in_ch_layout, 
> avr->in_ch_layout.nb_channels);
> +    }
> +    if (avr->out_ch_layout.order == AV_CHANNEL_ORDER_UNSPEC) {
> +        if (avr->out_ch_layout.nb_channels > 63) {
> +           av_log(avr, AV_LOG_ERROR,
> +                  "Unspecified channel layout order is supported only for up 
> "
> +                  "to 63 channels (got %d).\n", 
> avr->out_ch_layout.nb_channels);
> +           return AVERROR(ENOSYS);
> +        }
> +        av_channel_layout_default(&avr->out_ch_layout, 
> avr->out_ch_layout.nb_channels);
> +    }

Why are those needed? Seems they are redundant given the other checks
right below.


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

Reply via email to