[FFmpeg-soc] [soc]: r4011 - in libavfilter/diffs: 01_ffplay_filters.diff 02_ffmpeg_filters.diff

stefano subversion at mplayerhq.hu
Mon Jan 26 22:44:11 CET 2009


Author: stefano
Date: Mon Jan 26 22:44:11 2009
New Revision: 4011

Log:
Add checks for the validity of the parsed graph, fix crashes.

Modified:
   libavfilter/diffs/01_ffplay_filters.diff
   libavfilter/diffs/02_ffmpeg_filters.diff

Modified: libavfilter/diffs/01_ffplay_filters.diff
==============================================================================
--- libavfilter/diffs/01_ffplay_filters.diff	Mon Jan 26 22:28:54 2009	(r4010)
+++ libavfilter/diffs/01_ffplay_filters.diff	Mon Jan 26 22:44:11 2009	(r4011)
@@ -211,7 +211,7 @@ Index: ffplay.c
          /* update the bitmap content */
          SDL_UnlockYUVOverlay(vp->bmp);
  
-@@ -1335,54 +1406,264 @@
+@@ -1335,54 +1406,266 @@
      return queue_picture(is, src_frame, pts);
  }
  
@@ -435,6 +435,8 @@ Index: ffplay.c
 +    }
 +    avfilter_graph_add_filter(graph, filt_src);
 +    avfilter_graph_add_filter(graph, filt_out);
++
++    if(avfilter_graph_check_validity(graph, NULL))           goto the_end;
 +    if(avfilter_graph_config_formats(graph))                 goto the_end;
 +    if(avfilter_config_links(filt_out))                      goto the_end;
 +
@@ -507,7 +509,7 @@ Index: ffplay.c
      av_free(frame);
      return 0;
  }
-@@ -2168,6 +2449,12 @@
+@@ -2168,6 +2451,12 @@
      /* free all pictures */
      for(i=0;i<VIDEO_PICTURE_QUEUE_SIZE; i++) {
          vp = &is->pictq[i];
@@ -520,7 +522,7 @@ Index: ffplay.c
          if (vp->bmp) {
              SDL_FreeYUVOverlay(vp->bmp);
              vp->bmp = NULL;
-@@ -2505,6 +2792,9 @@
+@@ -2505,6 +2794,9 @@
      { "ec", OPT_INT | HAS_ARG | OPT_EXPERT, {(void*)&error_concealment}, "set error concealment options",  "bit_mask" },
      { "sync", HAS_ARG | OPT_FUNC2 | OPT_EXPERT, {(void*)opt_sync}, "set audio-video sync. type (type=audio/video/ext)", "type" },
      { "threads", HAS_ARG | OPT_FUNC2 | OPT_EXPERT, {(void*)opt_thread_count}, "thread count", "count" },
@@ -530,7 +532,7 @@ Index: ffplay.c
      { "default", OPT_FUNC2 | HAS_ARG | OPT_AUDIO | OPT_VIDEO | OPT_EXPERT, {(void*)opt_default}, "generic catch all option", "" },
      { NULL, },
  };
-@@ -2553,7 +2843,9 @@
+@@ -2553,7 +2845,9 @@
          avctx_opts[i]= avcodec_alloc_context2(i);
      }
      avformat_opts = av_alloc_format_context();

Modified: libavfilter/diffs/02_ffmpeg_filters.diff
==============================================================================
--- libavfilter/diffs/02_ffmpeg_filters.diff	Mon Jan 26 22:28:54 2009	(r4010)
+++ libavfilter/diffs/02_ffmpeg_filters.diff	Mon Jan 26 22:44:11 2009	(r4011)
@@ -40,7 +40,7 @@ Index: ffmpeg.c
  } AVInputStream;
  
  typedef struct AVInputFile {
-@@ -301,6 +318,174 @@
+@@ -301,6 +318,176 @@
  static struct termios oldtty;
  #endif
  
@@ -200,6 +200,8 @@ Index: ffmpeg.c
 +    }
 +
 +    /* configure all the filter links */
++    if(avfilter_graph_check_validity(filt_graph_all, NULL))
++        return -1;
 +    if(avfilter_graph_config_formats(filt_graph_all))
 +        return -1;
 +    if(avfilter_config_links(ist->out_video_filter))
@@ -215,7 +217,7 @@ Index: ffmpeg.c
  static void term_exit(void)
  {
  #if HAVE_TERMIOS_H
-@@ -886,6 +1071,9 @@
+@@ -886,6 +1073,9 @@
      if (nb_frames <= 0)
          return;
  
@@ -225,7 +227,7 @@ Index: ffmpeg.c
      if (ost->video_crop) {
          if (av_picture_crop((AVPicture *)&picture_crop_temp, (AVPicture *)in_picture, dec->pix_fmt, ost->topBand, ost->leftBand) < 0) {
              av_log(NULL, AV_LOG_ERROR, "error cropping picture\n");
-@@ -897,6 +1085,7 @@
+@@ -897,6 +1087,7 @@
      } else {
          formatted_picture = in_picture;
      }
@@ -233,7 +235,7 @@ Index: ffmpeg.c
  
      final_picture = formatted_picture;
      padding_src = formatted_picture;
-@@ -914,12 +1103,14 @@
+@@ -914,12 +1105,14 @@
          }
      }
  
@@ -248,7 +250,7 @@ Index: ffmpeg.c
  
      if (ost->video_pad) {
          av_picture_pad((AVPicture*)final_picture, (AVPicture *)padding_src,
-@@ -1190,6 +1381,7 @@
+@@ -1190,6 +1383,7 @@
      static short *samples= NULL;
      AVSubtitle subtitle, *subtitle_to_free;
      int got_subtitle;
@@ -256,7 +258,7 @@ Index: ffmpeg.c
  
      if(ist->next_pts == AV_NOPTS_VALUE)
          ist->next_pts= ist->pts;
-@@ -1307,6 +1499,15 @@
+@@ -1307,6 +1501,15 @@
                                      &buffer_to_free);
          }
  
@@ -272,7 +274,7 @@ Index: ffmpeg.c
          // preprocess audio (volume)
          if (ist->st->codec->codec_type == CODEC_TYPE_AUDIO) {
              if (audio_volume != 256) {
-@@ -1328,10 +1529,16 @@
+@@ -1328,10 +1531,16 @@
              if (pts > now)
                  usleep(pts - now);
          }
@@ -290,7 +292,7 @@ Index: ffmpeg.c
              for(i=0;i<nb_ostreams;i++) {
                  int frame_size;
  
-@@ -1354,6 +1561,9 @@
+@@ -1354,6 +1563,9 @@
                              do_audio_out(os, ost, ist, data_buf, data_size);
                              break;
                          case CODEC_TYPE_VIDEO:
@@ -300,7 +302,7 @@ Index: ffmpeg.c
                              do_video_out(os, ost, ist, &picture, &frame_size);
                              if (vstats_filename && frame_size)
                                  do_video_stats(os, ost, frame_size);
-@@ -1411,7 +1621,15 @@
+@@ -1411,7 +1623,15 @@
                          av_free_packet(&opkt);
                      }
                  }
@@ -316,7 +318,7 @@ Index: ffmpeg.c
          av_free(buffer_to_free);
          /* XXX: allocate the subtitles in the codec ? */
          if (subtitle_to_free) {
-@@ -1842,10 +2060,21 @@
+@@ -1842,10 +2062,21 @@
                          fprintf(stderr, "Cannot get resampling context\n");
                          av_exit(1);
                      }
@@ -338,7 +340,7 @@ Index: ffmpeg.c
                  break;
              case CODEC_TYPE_SUBTITLE:
                  ost->encoding_needed = 1;
-@@ -3835,6 +4064,9 @@
+@@ -3835,6 +4066,9 @@
  #if CONFIG_VHOOK
      { "vhook", HAS_ARG | OPT_EXPERT | OPT_VIDEO, {(void*)add_frame_hooker}, "insert video processing module", "module" },
  #endif



More information about the FFmpeg-soc mailing list