static int get_channel_idx(char **map, int *ch, char delim, int max_ch)

{

    char *next = split(*map, delim);

    int len;

    int n = 0;

    if (!next && delim == '-')

        return AVERROR(EINVAL);

    if (!*map)

        return AVERROR(EINVAL);

    len = strlen(*map);

    sscanf(*map, "%d%n", ch, &n);

    if (n != len)

        return AVERROR(EINVAL);

    if (*ch < 0 || *ch > max_ch)

        return AVERROR(EINVAL);

    *map = next;

    return 0;

}

static int get_channel_idx(char **map, int *ch, char delim, int max_ch)

{

    char *next = split(*map, delim);

    int len;

    int n = 0;

    if (!next && delim == '-')

        return AVERROR(EINVAL);

    if (!*map)

        return AVERROR(EINVAL);

    len = strlen(*map);

    sscanf(*map, "%d%n", ch, &n);

    if (n != len)

        return AVERROR(EINVAL);

    if (*ch < 0 || *ch > max_ch)

        return AVERROR(EINVAL);

    *map = next;

    return 0;

}

static int FUNC_0(char **VAR_0, int *VAR_1, char VAR_2, int VAR_3)

{

    char *VAR_4 = split(*VAR_0, VAR_2);

    int VAR_5;

    int VAR_6 = 0;

    if (!VAR_4 && VAR_2 == '-')

        return AVERROR(EINVAL);

    if (!*VAR_0)

        return AVERROR(EINVAL);

    VAR_5 = strlen(*VAR_0);

    sscanf(*VAR_0, "%d%VAR_6", VAR_1, &VAR_6);

    if (VAR_6 != VAR_5)

        return AVERROR(EINVAL);

    if (*VAR_1 < 0 || *VAR_1 > VAR_3)

        return AVERROR(EINVAL);

    *VAR_0 = VAR_4;

    return 0;

}

static int FUNC_0(char **VAR_0, int *VAR_1, char VAR_2, int VAR_3)
{ char *VAR_4 = split(*VAR_0, VAR_2); int VAR_5; int VAR_6 = 0; if (!VAR_4 && VAR_2 == '-')
return AVERROR(EINVAL); if (!*VAR_0)
return AVERROR(EINVAL); VAR_5 = strlen(*VAR_0); sscanf(*VAR_0, "%d%VAR_6", VAR_1, &VAR_6); if (VAR_6 != VAR_5)
return AVERROR(EINVAL); if (*VAR_1 < 0 || *VAR_1 > VAR_3)
return AVERROR(EINVAL); *VAR_0 = VAR_4; return 0; }