Opened 11 years ago

Closed 11 years ago

#2887 closed defect (duplicate)

h264: memleak with threads > 1

Reported by: Carl Eugen Hoyos Owned by:
Priority: normal Component: avcodec
Version: git-master Keywords: h264 leak
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

As originally reported in ticket #1900, no leak with -threads 1.

$ valgrind --leak-check=full ./ffmpeg_g -threads 2 -i h264.avi -f null -
==10344== Memcheck, a memory error detector
==10344== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==10344== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==10344== Command: ./ffmpeg_g -threads 2 -i h264.avi -f null -
==10344==
ffmpeg version N-55720-gb1e276f Copyright (c) 2000-2013 the FFmpeg developers
  built on Aug 22 2013 17:34:44 with gcc 4.7 (SUSE Linux)
  configuration: --enable-gpl --disable-indev=jack
  libavutil      52. 42.100 / 52. 42.100
  libavcodec     55. 29.100 / 55. 29.100
  libavformat    55. 14.102 / 55. 14.102
  libavdevice    55.  3.100 / 55.  3.100
  libavfilter     3. 82.102 /  3. 82.102
  libswscale      2.  5.100 /  2.  5.100
  libswresample   0. 17.103 /  0. 17.103
  libpostproc    52.  3.100 / 52.  3.100
[h264 @ 0x7248580] missing picture in access unit with size 1941
[h264 @ 0x7248580] no frame!
[h264 @ 0x7248580] missing picture in access unit with size 2377
[h264 @ 0x7248580] no frame!
[h264 @ 0x7248580] missing picture in access unit with size 2090
[h264 @ 0x7248580] no frame!
[h264 @ 0x7248580] missing picture in access unit with size 2305
[h264 @ 0x7248580] no frame!
[h264 @ 0x7248580] missing picture in access unit with size 3280
[h264 @ 0x7248580] no frame!
[h264 @ 0x7248580] missing picture in access unit with size 2963
[h264 @ 0x7248580] no frame!
[h264 @ 0x7248580] missing picture in access unit with size 2624
[h264 @ 0x7248580] no frame!
[h264 @ 0x7248580] log2_max_frame_num_minus4 out of range (0-12): 46
[h264 @ 0x7248580] missing picture in access unit with size 2937

...
                                                  
[h264 @ 0x8437ba0] reference picture missing during reorder
[h264 @ 0x8437ba0] reference count overflow
[h264 @ 0x8437ba0] decode_slice_header error
[h264 @ 0x7248580] missing picture in access unit with size 1722
[h264 @ 0x773f6e0] reference overflow 4294967295 > 31 or 0 > 31
[h264 @ 0x773f6e0] decode_slice_header error
[h264 @ 0x8437ba0] number of reference frames (0+2) exceeds max (1; probably corrupt input), discarding one
[h264 @ 0x773f6e0] Missing reference picture, default is 22
    Last message repeated 4 times
[h264 @ 0x773f6e0] QP 115820 out of range
[h264 @ 0x773f6e0] decode_slice_header error
[h264 @ 0x8437ba0] Reinit context to 16x64, pix_fmt: 0
[h264 @ 0x8437ba0] Missing reference picture, default is 0
[h264 @ 0x8437ba0] decode_slice_header error
frame=  121 fps=6.5 q=0.0 Lsize=N/A time=00:00:05.04 bitrate=N/A dup=119 drop=0
video:11kB audio:0kB subtitle:0 global headers:0kB muxing overhead -100.189394%
==10344==
==10344== HEAP SUMMARY:
==10344==     in use at exit: 7,813,977 bytes in 28 blocks
==10344==   total heap usage: 19,884 allocs, 19,856 frees, 2,053,846,908 bytes allocated
==10344==
==10344== 557,480 (278,895 direct, 278,585 indirect) bytes in 1 blocks are definitely lost in loss record 2 of 3
==10344==    at 0x4C290FE: memalign (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==10344==    by 0x4C291A7: posix_memalign (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==10344==    by 0xC15691: av_mallocz (mem.c:93)
==10344==    by 0x9D284B: av_fast_padded_malloc (utils.c:92)
==10344==    by 0x71088F: ff_h264_decode_nal (h264.c:669)
==10344==    by 0x716495: decode_nal_units.constprop.26 (h264.c:4694)
==10344==    by 0x717408: ff_h264_decode_extradata (h264.c:1544)
==10344==    by 0x421723: ff_h264_decode_init (h264.c:1619)
==10344==    by 0x92EF3A: ff_thread_init (pthread.c:848)
==10344==    by 0x9D980E: avcodec_open2 (utils.c:1222)
==10344==    by 0x471E5F: transcode_init (ffmpeg.c:1983)
==10344==    by 0x45CE26: main (ffmpeg.c:3204)
==10344==
==10344== 7,256,497 bytes in 26 blocks are definitely lost in loss record 3 of 3
==10344==    at 0x4C290FE: memalign (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==10344==    by 0x4C291A7: posix_memalign (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==10344==    by 0xC15691: av_mallocz (mem.c:93)
==10344==    by 0x9D284B: av_fast_padded_malloc (utils.c:92)
==10344==    by 0x71088F: ff_h264_decode_nal (h264.c:669)
==10344==    by 0x717AF8: decode_frame (h264.c:4694)
==10344==    by 0x92D0E5: frame_worker_thread (pthread.c:339)
==10344==    by 0x5D1AE0D: start_thread (in /lib64/libpthread-2.15.so)
==10344==
==10344== LEAK SUMMARY:
==10344==    definitely lost: 7,535,392 bytes in 27 blocks
==10344==    indirectly lost: 278,585 bytes in 1 blocks
==10344==      possibly lost: 0 bytes in 0 blocks
==10344==    still reachable: 0 bytes in 0 blocks
==10344==         suppressed: 0 bytes in 0 blocks
==10344==
==10344== For counts of detected and suppressed errors, rerun with: -v
==10344== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 2 from 2)

Change History (1)

comment:1 by Carl Eugen Hoyos, 11 years ago

Resolution: duplicate
Status: newclosed
Note: See TracTickets for help on using tickets.