Opened 8 years ago

Closed 8 years ago

#5111 closed defect (fixed)

h264 memleak

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

Description

Regression since 8234f0e3b485811d60c228c40a94a141c46e61ca

$ valgrind --leak-check=full ./ffmpeg_g -i segment2042665_700_av-p.ts
==28778== Memcheck, a memory error detector
==28778== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==28778== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==28778== Command: ./ffmpeg_g -i segment2042665_700_av-p.ts
==28778==
ffmpeg version N-77543-gb0e23f2 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.7 (SUSE Linux)
  configuration:
  libavutil      55. 11.100 / 55. 11.100
  libavcodec     57. 20.100 / 57. 20.100
  libavformat    57. 21.100 / 57. 21.100
  libavdevice    57.  0.100 / 57.  0.100
  libavfilter     6. 22.100 /  6. 22.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
[h264 @ 0xb740780] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0xb740780] decode_slice_header error
[h264 @ 0xb740780] non-existing PPS 0 referenced
[h264 @ 0xb740780] decode_slice_header error
[h264 @ 0xb740780] non-existing PPS 0 referenced
[h264 @ 0xb740780] decode_slice_header error
[h264 @ 0xb740780] non-existing PPS 0 referenced
[h264 @ 0xb740780] decode_slice_header error
[h264 @ 0xb740780] no frame!

...

[h264 @ 0xb740780] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0xb740780] decode_slice_header error
[h264 @ 0xb740780] non-existing PPS 0 referenced
[h264 @ 0xb740780] decode_slice_header error
[h264 @ 0xb740780] non-existing PPS 0 referenced
[h264 @ 0xb740780] decode_slice_header error
[h264 @ 0xb740780] non-existing PPS 0 referenced
[h264 @ 0xb740780] decode_slice_header error
[h264 @ 0xb740780] no frame!
[NULL @ 0xb742380] start time for stream 2 is not set in estimate_timings_from_pts
Input #0, mpegts, from 'segment2042665_700_av-p.ts':
  Duration: 00:00:10.11, start: 1684.534578, bitrate: 790 kb/s
  Program 1
    Stream #0:0[0x100]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], Closed Captions, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 127 kb/s
    Stream #0:2[0x102]: Data: timed_id3 (ID3  / 0x20334449)
At least one output file must be specified
==28778==
==28778== HEAP SUMMARY:
==28778==     in use at exit: 108 bytes in 2 blocks
==28778==   total heap usage: 3,927 allocs, 3,925 frees, 6,659,025 bytes allocated
==28778==
==28778== 60 bytes in 1 blocks are definitely lost in loss record 2 of 2
==28778==    at 0x4C2ABED: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==28778==    by 0x4C2AD6F: realloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==28778==    by 0xFBCAA0: av_reallocp (mem.c:168)
==28778==    by 0x7A68B0: ff_h264_decode_sei (h264_sei.c:170)
==28778==    by 0x79B672: h264_parse (h264_parser.c:291)
==28778==    by 0xA2920B: av_parser_parse2 (parser.c:173)
==28778==    by 0x670746: parse_packet (utils.c:1241)
==28778==    by 0x671761: read_frame_internal (utils.c:1406)
==28778==    by 0x675F2D: avformat_find_stream_info (utils.c:3290)
==28778==    by 0x486170: open_input_file (ffmpeg_opt.c:970)
==28778==    by 0x47FCB2: open_files.isra.8 (ffmpeg_opt.c:2999)
==28778==    by 0x487A90: ffmpeg_parse_options (ffmpeg_opt.c:3036)
==28778==
==28778== LEAK SUMMARY:
==28778==    definitely lost: 60 bytes in 1 blocks
==28778==    indirectly lost: 0 bytes in 0 blocks
==28778==      possibly lost: 0 bytes in 0 blocks
==28778==    still reachable: 48 bytes in 1 blocks
==28778==         suppressed: 0 bytes in 0 blocks
==28778== Reachable blocks (those to which a pointer was found) are not shown.
==28778== To see them, rerun with: --leak-check=full --show-reachable=yes
==28778==
==28778== For counts of detected and suppressed errors, rerun with: -v
==28778== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 2 from 2)

Attachments (1)

segment2042665_700_av-p.ts (975.6 KB ) - added by Carl Eugen Hoyos 8 years ago.

Download all attachments as: .zip

Change History (4)

by Carl Eugen Hoyos, 8 years ago

Attachment: segment2042665_700_av-p.ts added

comment:1 by Kieran Kunhya, 8 years ago

Owner: set to Kieran Kunhya
Status: newopen

comment:2 by Kieran Kunhya, 8 years ago

I guess this memory can be freed after ff_h264_decode_sei in the parser unless I am mistaken?

comment:3 by Michael Niedermayer, 8 years ago

Resolution: fixed
Status: openclosed
Note: See TracTickets for help on using tickets.