OSDN Git Service

examples/filtering: fix packet memleak
authorGavin Kinsey <gkinsey@ad-holdings.co.uk>
Tue, 26 Jun 2012 17:00:30 +0000 (19:00 +0200)
committerStefano Sabatini <stefasab@gmail.com>
Tue, 26 Jun 2012 17:04:17 +0000 (19:04 +0200)
Free packets unconditionally after demuxing, and not only when the
packets belong to a given stream.

Signed-off-by: Stefano Sabatini <stefasab@gmail.com>
doc/examples/filtering_audio.c
doc/examples/filtering_video.c

index cca28e9..4d96438 100644 (file)
@@ -195,7 +195,6 @@ int main(int argc, char **argv)
             avcodec_get_frame_defaults(&frame);
             got_frame = 0;
             ret = avcodec_decode_audio4(dec_ctx, &frame, &got_frame, &packet);
-            av_free_packet(&packet);
             if (ret < 0) {
                 av_log(NULL, AV_LOG_ERROR, "Error decoding audio\n");
                 continue;
@@ -222,6 +221,7 @@ int main(int argc, char **argv)
                 }
             }
         }
+        av_free_packet(&packet);
     }
 end:
     avfilter_graph_free(&filter_graph);
index 0cf23be..4bede05 100644 (file)
@@ -199,7 +199,6 @@ int main(int argc, char **argv)
             avcodec_get_frame_defaults(&frame);
             got_frame = 0;
             ret = avcodec_decode_video2(dec_ctx, &frame, &got_frame, &packet);
-            av_free_packet(&packet);
             if (ret < 0) {
                 av_log(NULL, AV_LOG_ERROR, "Error decoding video\n");
                 break;
@@ -229,6 +228,7 @@ int main(int argc, char **argv)
                 }
             }
         }
+        av_free_packet(&packet);
     }
 end:
     avfilter_graph_free(&filter_graph);