[FFmpeg-cvslog] Use avcodec_free_frame() to free AVFrames.

Anton Khirnov git at videolan.org
Tue Sep 25 15:19:14 CEST 2012


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Fri Sep 21 09:10:23 2012 +0200| [11d1ca4b2c406bee2d22b04268a43b0873096c92] | committer: Anton Khirnov

Use avcodec_free_frame() to free AVFrames.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=11d1ca4b2c406bee2d22b04268a43b0873096c92
---

 avconv.c                     |    4 ++--
 avplay.c                     |    4 ++--
 libavcodec/api-example.c     |    8 ++++----
 libavfilter/vsrc_movie.c     |    2 +-
 libavformat/output-example.c |    1 +
 5 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/avconv.c b/avconv.c
index df09b21..0b703ed 100644
--- a/avconv.c
+++ b/avconv.c
@@ -180,11 +180,11 @@ void exit_program(int ret)
             bsfc = next;
         }
         output_streams[i]->bitstream_filters = NULL;
+        avcodec_free_frame(&output_streams[i]->filtered_frame);
 
         av_freep(&output_streams[i]->forced_keyframes);
         av_freep(&output_streams[i]->avfilter);
         av_freep(&output_streams[i]->logfile_prefix);
-        av_freep(&output_streams[i]->filtered_frame);
         av_freep(&output_streams[i]);
     }
     for (i = 0; i < nb_input_files; i++) {
@@ -192,7 +192,7 @@ void exit_program(int ret)
         av_freep(&input_files[i]);
     }
     for (i = 0; i < nb_input_streams; i++) {
-        av_freep(&input_streams[i]->decoded_frame);
+        avcodec_free_frame(&input_streams[i]->decoded_frame);
         av_dict_free(&input_streams[i]->opts);
         free_buffer_pool(&input_streams[i]->buffer_pool);
         av_freep(&input_streams[i]->filters);
diff --git a/avplay.c b/avplay.c
index a0b0e5b..d47cf94 100644
--- a/avplay.c
+++ b/avplay.c
@@ -1704,7 +1704,7 @@ static int video_thread(void *arg)
     avfilter_graph_free(&graph);
 #endif
     av_free_packet(&pkt);
-    av_free(frame);
+    avcodec_free_frame(&frame);
     return 0;
 }
 
@@ -2191,7 +2191,7 @@ static void stream_component_close(VideoState *is, int stream_index)
             avresample_free(&is->avr);
         av_freep(&is->audio_buf1);
         is->audio_buf = NULL;
-        av_freep(&is->frame);
+        avcodec_free_frame(&is->frame);
 
         if (is->rdft) {
             av_rdft_end(is->rdft);
diff --git a/libavcodec/api-example.c b/libavcodec/api-example.c
index d025354..6275080 100644
--- a/libavcodec/api-example.c
+++ b/libavcodec/api-example.c
@@ -212,7 +212,7 @@ static void audio_encode_example(const char *filename)
     fclose(f);
 
     av_freep(&samples);
-    av_freep(&frame);
+    avcodec_free_frame(&frame);
     avcodec_close(c);
     av_free(c);
 }
@@ -308,7 +308,7 @@ static void audio_decode_example(const char *outfilename, const char *filename)
 
     avcodec_close(c);
     av_free(c);
-    av_free(decoded_frame);
+    avcodec_free_frame(&decoded_frame);
 }
 
 /*
@@ -432,7 +432,7 @@ static void video_encode_example(const char *filename)
     avcodec_close(c);
     av_free(c);
     av_freep(&picture->data[0]);
-    av_free(picture);
+    avcodec_free_frame(&picture);
     printf("\n");
 }
 
@@ -568,7 +568,7 @@ static void video_decode_example(const char *outfilename, const char *filename)
 
     avcodec_close(c);
     av_free(c);
-    av_free(picture);
+    avcodec_free_frame(&picture);
     printf("\n");
 }
 
diff --git a/libavfilter/vsrc_movie.c b/libavfilter/vsrc_movie.c
index aeab102..78e1642 100644
--- a/libavfilter/vsrc_movie.c
+++ b/libavfilter/vsrc_movie.c
@@ -197,7 +197,7 @@ static av_cold void uninit(AVFilterContext *ctx)
     if (movie->format_ctx)
         avformat_close_input(&movie->format_ctx);
     avfilter_unref_buffer(movie->picref);
-    av_freep(&movie->frame);
+    avcodec_free_frame(&movie->frame);
 }
 
 static int query_formats(AVFilterContext *ctx)
diff --git a/libavformat/output-example.c b/libavformat/output-example.c
index 27950a1..1011c2c 100644
--- a/libavformat/output-example.c
+++ b/libavformat/output-example.c
@@ -165,6 +165,7 @@ static void write_audio_frame(AVFormatContext *oc, AVStream *st)
         fprintf(stderr, "Error while writing audio frame\n");
         exit(1);
     }
+    avcodec_free_frame(&frame);
 }
 
 static void close_audio(AVFormatContext *oc, AVStream *st)



More information about the ffmpeg-cvslog mailing list