ffmpeg.c:2916: error: Null Dereference
  pointer `mid` last assigned on line 2916 could be null and is dereferenced at line 2916, column 5.

ffmpeg.c:2908:1: start of procedure opt_metadata()
2906. }
2907. 
2908. static int opt_metadata(const char *opt, const char *arg)
      ^
2909. {
2910.     char *mid= strchr(arg, '=');

ffmpeg.c:2910:5: 
2908. static int opt_metadata(const char *opt, const char *arg)
2909. {
2910.     char *mid= strchr(arg, '=');
          ^
2911. 
2912.     if(!mid){

ffmpeg.c:2912:9: Taking true branch
2910.     char *mid= strchr(arg, '=');
2911. 
2912.     if(!mid){
              ^
2913.         fprintf(stderr, "Missing =\n");
2914.         ffmpeg_exit(1);

ffmpeg.c:2913:9: 
2911. 
2912.     if(!mid){
2913.         fprintf(stderr, "Missing =\n");
              ^
2914.         ffmpeg_exit(1);
2915.     }

ffmpeg.c:2914:9: Skipping ffmpeg_exit(): empty list of specs
2912.     if(!mid){
2913.         fprintf(stderr, "Missing =\n");
2914.         ffmpeg_exit(1);
              ^
2915.     }
2916.     *mid++= 0;

ffmpeg.c:2916:5: 
2914.         ffmpeg_exit(1);
2915.     }
2916.     *mid++= 0;
          ^
2917. 
2918.     metadata_count++;

static int opt_metadata(const char *opt, const char *arg)
{
    char *mid= strchr(arg, '=');
    if(!mid){
        fprintf(stderr, "Missing =\n");
        ffmpeg_exit(1);
    }
    *mid++= 0;
    metadata_count++;
    metadata= av_realloc(metadata, sizeof(*metadata)*metadata_count);
    metadata[metadata_count-1].key  = av_strdup(arg);
    metadata[metadata_count-1].value= av_strdup(mid);
    return 0;
}
['static int opt_metadata(const char *opt, const char *arg)\n{\n    char *mid= strchr(arg, \'=\');\n    if(!mid){\n        fprintf(stderr, "Missing =\\n");\n        ffmpeg_exit(1);\n    }\n    *mid++= 0;\n    metadata_count++;\n    metadata= av_realloc(metadata, sizeof(*metadata)*metadata_count);\n    metadata[metadata_count-1].key  = av_strdup(arg);\n    metadata[metadata_count-1].value= av_strdup(mid);\n    return 0;\n}']