ffmpeg.c:3740: error: Integer Overflow L2
  ([0, 2147483647] + 1):signed32.

ffmpeg.c:3739:11: <LHS trace>
3737.     }
3738.     *p++ = '\0';
3739.     idx = parse_number_or_die(opt, idx_str, OPT_INT, 0, INT_MAX);
                ^
3740.     streamid_map = grow_array(streamid_map, sizeof(*streamid_map), &nb_streamid_map, idx+1);
3741.     streamid_map[idx] = parse_number_or_die(opt, p, OPT_INT, 0, INT_MAX);

ffmpeg.c:3739:11: Call
3737.     }
3738.     *p++ = '\0';
3739.     idx = parse_number_or_die(opt, idx_str, OPT_INT, 0, INT_MAX);
                ^
3740.     streamid_map = grow_array(streamid_map, sizeof(*streamid_map), &nb_streamid_map, idx+1);
3741.     streamid_map[idx] = parse_number_or_die(opt, p, OPT_INT, 0, INT_MAX);

cmdutils.c:106:1: Parameter `min`
  104. }
  105. 
  106. double parse_number_or_die(const char *context, const char *numstr, int type, double min, double max)
       ^
  107. {
  108.     char *tail;

cmdutils.c:120:9: Assignment
  118.         error= "Expected int for %s but found %s\n";
  119.     else
  120.         return d;
               ^
  121.     fprintf(stderr, error, context, numstr, min, max);
  122.     exit(1);

ffmpeg.c:3739:5: Assignment
3737.     }
3738.     *p++ = '\0';
3739.     idx = parse_number_or_die(opt, idx_str, OPT_INT, 0, INT_MAX);
          ^
3740.     streamid_map = grow_array(streamid_map, sizeof(*streamid_map), &nb_streamid_map, idx+1);
3741.     streamid_map[idx] = parse_number_or_die(opt, p, OPT_INT, 0, INT_MAX);

ffmpeg.c:3740:20: Binary operation: ([0, 2147483647] + 1):signed32
3738.     *p++ = '\0';
3739.     idx = parse_number_or_die(opt, idx_str, OPT_INT, 0, INT_MAX);
3740.     streamid_map = grow_array(streamid_map, sizeof(*streamid_map), &nb_streamid_map, idx+1);
                         ^
3741.     streamid_map[idx] = parse_number_or_die(opt, p, OPT_INT, 0, INT_MAX);
3742.     return 0;

static int opt_streamid(const char *opt, const char *arg)
{
    int idx;
    char *p;
    char idx_str[16];
    av_strlcpy(idx_str, arg, sizeof(idx_str));
    p = strchr(idx_str, ':');
    if (!p) {
        fprintf(stderr,
                "Invalid value '%s' for option '%s', required syntax is 'index:value'\n",
                arg, opt);
        ffmpeg_exit(1);
    }
    *p++ = '\0';
    idx = parse_number_or_die(opt, idx_str, OPT_INT, 0, INT_MAX);
    streamid_map = grow_array(streamid_map, sizeof(*streamid_map), &nb_streamid_map, idx+1);
    streamid_map[idx] = parse_number_or_die(opt, p, OPT_INT, 0, INT_MAX);
    return 0;
}
['static int opt_streamid(const char *opt, const char *arg)\n{\n    int idx;\n    char *p;\n    char idx_str[16];\n    av_strlcpy(idx_str, arg, sizeof(idx_str));\n    p = strchr(idx_str, \':\');\n    if (!p) {\n        fprintf(stderr,\n                "Invalid value \'%s\' for option \'%s\', required syntax is \'index:value\'\\n",\n                arg, opt);\n        ffmpeg_exit(1);\n    }\n    *p++ = \'\\0\';\n    idx = parse_number_or_die(opt, idx_str, OPT_INT, 0, INT_MAX);\n    streamid_map = grow_array(streamid_map, sizeof(*streamid_map), &nb_streamid_map, idx+1);\n    streamid_map[idx] = parse_number_or_die(opt, p, OPT_INT, 0, INT_MAX);\n    return 0;\n}', 'double parse_number_or_die(const char *context, const char *numstr, int type, double min, double max)\n{\n    char *tail;\n    const char *error;\n    double d = av_strtod(numstr, &tail);\n    if (*tail)\n        error= "Expected number for %s but found: %s\\n";\n    else if (d < min || d > max)\n        error= "The value for %s was %s which is not within %f - %f\\n";\n    else if(type == OPT_INT64 && (int64_t)d != d)\n        error= "Expected int64 for %s but found %s\\n";\n    else if (type == OPT_INT && (int)d != d)\n        error= "Expected int for %s but found %s\\n";\n    else\n        return d;\n    fprintf(stderr, error, context, numstr, min, max);\n    exit(1);\n}']