ffmpeg 编码 apng 解决内存泄露问题
1.通过之前写的文章可以很容易进行apng的编码,但是通过使用memcheck内存检测,发现编码多张png图片造成了严重的内存泄露问题
chenglong@chenglong-virtual-machine:~/work/ffmpeg$ valgrind --tool=memcheck --leak-check=full --show-reachable=yes ./main
==9514== Memcheck, a memory error detector
==9514== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==9514== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==9514== Command: ./main
==9514==
26-11:19:57 linux device
26-11:19:57 [video_decode_example]picture->linesize[0]=1920, c->width=480,c->height=480,c->format= 28
26-11:19:57 encode one frame ok!!!!!!!!!!
26-11:19:57 [video_decode_example]picture->linesize[0]=1920, c->width=480,c->height=480,c->format= 28
26-11:19:57 encode one frame ok!!!!!!!!!!
26-11:19:57 encode time = 0.009516
==9514==
==9514== HEAP SUMMARY:
==9514== in use at exit: 1,041,120 bytes in 4 blocks
==9514== total heap usage: 412 allocs, 408 frees, 14,864,840 bytes allocated
==9514==
==9514== 128 bytes in 1 blocks are still reachable in loss record 1 of 4
==9514== at 0x4C2B7B2: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==9514== by 0x8982828: ??? (in /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0)
==9514== by 0x8991B84: ??? (in /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0)
==9514== by 0x8980DB5: ??? (in /usr/lib/x86_64-linux-gnu/libgomp.so.1.0.0)
==9514== by 0x400F2C5: call_init.part.0 (dl-init.c:85)
==9514== by 0x400F39E: _dl_init (dl-init.c:52)
==9514== by 0x40016E9: ??? (in /lib/x86_64-linux-gnu/ld-2.15.so)
==9514==
==9514== 16,384 bytes in 1 blocks are definitely lost in loss record 2 of 4
==9514== at 0x4C29BE8: memalign (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==9514== by 0x4C29C97: posix_memalign (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==9514== by 0x6B5208C: av_malloc (in /usr/local/lib/libavutil-54.so)
==9514== by 0x5A1A0E1: ??? (in /usr/local/lib/libavcodec-56.so)
==9514== by 0x5AF2CE6: avcodec_encode_video2 (in /usr/local/lib/libavcodec-56.so)
==9514== by 0x4425B0: enc