ffmpeg.c:3721: error: Null Dereference
  pointer `file_oformat` last assigned on line 3710 could be null and is dereferenced at line 3721, column 17.

ffmpeg.c:3685:1: start of procedure opt_output_file()
3683. }
3684. 
3685. static void opt_output_file(const char *filename)
      ^
3686. {
3687.     AVFormatContext *oc;

ffmpeg.c:3690:5: 
3688.     int err, use_video, use_audio, use_subtitle;
3689.     int input_has_video, input_has_audio, input_has_subtitle;
3690.     AVFormatParameters params, *ap = &params;
          ^
3691.     AVOutputFormat *file_oformat;
3692. 

ffmpeg.c:3693:10: Taking false branch
3691.     AVOutputFormat *file_oformat;
3692. 
3693.     if (!strcmp(filename, "-"))
               ^
3694.         filename = "pipe:";
3695. 

ffmpeg.c:3696:5: 
3694.         filename = "pipe:";
3695. 
3696.     oc = avformat_alloc_context();
          ^
3697.     if (!oc) {
3698.         print_error(filename, AVERROR(ENOMEM));

libavformat/options.c:82:1: start of procedure avformat_alloc_context()
  80. }
  81. 
  82. AVFormatContext *avformat_alloc_context(void)
      ^
  83. {
  84.     AVFormatContext *ic;

libavformat/options.c:85:5: 
  83. {
  84.     AVFormatContext *ic;
  85.     ic = av_malloc(sizeof(AVFormatContext));
          ^
  86.     if (!ic) return ic;
  87.     avformat_get_context_defaults(ic);

libavutil/mem.c:64:1: start of procedure av_malloc()
    62.    linker will do it automatically. */
    63. 
    64. void *av_malloc(FF_INTERNAL_MEM_TYPE size)
        ^
    65. {
    66.     void *ptr = NULL;

libavutil/mem.c:66:5: 
    64. void *av_malloc(FF_INTERNAL_MEM_TYPE size)
    65. {
    66.     void *ptr = NULL;
            ^
    67. #if CONFIG_MEMALIGN_HACK
    68.     long diff;

libavutil/mem.c:72:8: Taking false branch
    70. 
    71.     /* let's disallow possible ambiguous cases */
    72.     if(size > (INT_MAX-16) )
               ^
    73.         return NULL;
    74. 

libavutil/mem.c:83:9: Taking false branch
    81.     ((char*)ptr)[-1]= diff;
    82. #elif HAVE_POSIX_MEMALIGN
    83.     if (posix_memalign(&ptr,16,size))
                ^
    84.         ptr = NULL;
    85. #elif HAVE_MEMALIGN

libavutil/mem.c:116:5: 
    114.     ptr = malloc(size);
    115. #endif
    116.     return ptr;
             ^
    117. }
    118. 

libavutil/mem.c:117:1: return from a call to av_malloc
    115. #endif
    116.     return ptr;
    117. }
         ^
    118. 
    119. void *av_realloc(void *ptr, FF_INTERNAL_MEM_TYPE size)

libavformat/options.c:86:10: Taking false branch
  84.     AVFormatContext *ic;
  85.     ic = av_malloc(sizeof(AVFormatContext));
  86.     if (!ic) return ic;
               ^
  87.     avformat_get_context_defaults(ic);
  88.     ic->av_class = &av_format_context_class;

libavformat/options.c:87:5: Skipping avformat_get_context_defaults(): empty list of specs
  85.     ic = av_malloc(sizeof(AVFormatContext));
  86.     if (!ic) return ic;
  87.     avformat_get_context_defaults(ic);
          ^
  88.     ic->av_class = &av_format_context_class;
  89.     return ic;

libavformat/options.c:88:5: 
  86.     if (!ic) return ic;
  87.     avformat_get_context_defaults(ic);
  88.     ic->av_class = &av_format_context_class;
          ^
  89.     return ic;
  90. }

libavformat/options.c:89:5: 
  87.     avformat_get_context_defaults(ic);
  88.     ic->av_class = &av_format_context_class;
  89.     return ic;
          ^
  90. }
  91. 

libavformat/options.c:90:1: return from a call to avformat_alloc_context
  88.     ic->av_class = &av_format_context_class;
  89.     return ic;
  90. }
      ^
  91. 
  92. #if FF_API_ALLOC_FORMAT_CONTEXT

ffmpeg.c:3697:10: Taking false branch
3695. 
3696.     oc = avformat_alloc_context();
3697.     if (!oc) {
               ^
3698.         print_error(filename, AVERROR(ENOMEM));
3699.         ffmpeg_exit(1);

ffmpeg.c:3702:9: Taking false branch
3700.     }
3701. 
3702.     if (last_asked_format) {
              ^
3703.         file_oformat = av_guess_format(last_asked_format, NULL, NULL);
3704.         if (!file_oformat) {

ffmpeg.c:3710:9: Skipping av_guess_format(): empty list of specs
3708.         last_asked_format = NULL;
3709.     } else {
3710.         file_oformat = av_guess_format(NULL, filename, NULL);
              ^
3711.         if (!file_oformat) {
3712.             fprintf(stderr, "Unable to find a suitable output format for '%s'\n",

ffmpeg.c:3711:14: Taking true branch
3709.     } else {
3710.         file_oformat = av_guess_format(NULL, filename, NULL);
3711.         if (!file_oformat) {
                   ^
3712.             fprintf(stderr, "Unable to find a suitable output format for '%s'\n",
3713.                     filename);

ffmpeg.c:3712:13: 
3710.         file_oformat = av_guess_format(NULL, filename, NULL);
3711.         if (!file_oformat) {
3712.             fprintf(stderr, "Unable to find a suitable output format for '%s'\n",
                  ^
3713.                     filename);
3714.             ffmpeg_exit(1);

ffmpeg.c:3714:13: Skipping ffmpeg_exit(): empty list of specs
3712.             fprintf(stderr, "Unable to find a suitable output format for '%s'\n",
3713.                     filename);
3714.             ffmpeg_exit(1);
                  ^
3715.         }
3716.     }

ffmpeg.c:3718:5: 
3716.     }
3717. 
3718.     oc->oformat = file_oformat;
          ^
3719.     av_strlcpy(oc->filename, filename, sizeof(oc->filename));
3720. 

ffmpeg.c:3719:5: 
3717. 
3718.     oc->oformat = file_oformat;
3719.     av_strlcpy(oc->filename, filename, sizeof(oc->filename));
          ^
3720. 
3721.     if (!strcmp(file_oformat->name, "ffm") &&

libavutil/avstring.c:64:1: start of procedure av_strlcpy()
  62. }
  63. 
  64. size_t av_strlcpy(char *dst, const char *src, size_t size)
      ^
  65. {
  66.     size_t len = 0;

libavutil/avstring.c:66:5: 
  64. size_t av_strlcpy(char *dst, const char *src, size_t size)
  65. {
  66.     size_t len = 0;
          ^
  67.     while (++len < size && *src)
  68.         *dst++ = *src++;

libavutil/avstring.c:67:12: Loop condition is true. Entering loop body
  65. {
  66.     size_t len = 0;
  67.     while (++len < size && *src)
                 ^
  68.         *dst++ = *src++;
  69.     if (len <= size)

libavutil/avstring.c:67:28: Loop condition is false. Leaving loop
  65. {
  66.     size_t len = 0;
  67.     while (++len < size && *src)
                                 ^
  68.         *dst++ = *src++;
  69.     if (len <= size)

libavutil/avstring.c:69:9: Taking true branch
  67.     while (++len < size && *src)
  68.         *dst++ = *src++;
  69.     if (len <= size)
              ^
  70.         *dst = 0;
  71.     return len + strlen(src) - 1;

libavutil/avstring.c:70:9: 
  68.         *dst++ = *src++;
  69.     if (len <= size)
  70.         *dst = 0;
              ^
  71.     return len + strlen(src) - 1;
  72. }

libavutil/avstring.c:71:5: 
  69.     if (len <= size)
  70.         *dst = 0;
  71.     return len + strlen(src) - 1;
          ^
  72. }
  73. 

libavutil/avstring.c:72:1: return from a call to av_strlcpy
  70.         *dst = 0;
  71.     return len + strlen(src) - 1;
  72. }
      ^
  73. 
  74. size_t av_strlcat(char *dst, const char *src, size_t size)

ffmpeg.c:3721:10: 
3719.     av_strlcpy(oc->filename, filename, sizeof(oc->filename));
3720. 
3721.     if (!strcmp(file_oformat->name, "ffm") &&
               ^
3722.         av_strstart(filename, "http:", NULL)) {
3723.         /* special case for files sent to ffserver: we get the stream
