Opened 6 years ago

Closed 5 years ago

Last modified 5 years ago

#2744 closed defect (fixed)

memleak on probing error

Reported by: ami_stuff Owned by:
Priority: minor Component: ffmpeg
Version: git-master Keywords: leak
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

knoppix@Microknoppix:/media/sdb1$ valgrind --leak-check=full ./ffmpeg_g -vcodec  rawvideo -i test.avi -an -f null -
==3311== Memcheck, a memory error detector
==3311== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==3311== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==3311== Command: ./ffmpeg_g -vcodec rawvideo -i test.avi -an -f null -
==3311== 
ffmpeg version 1.1.git Copyright (c) 2000-2013 the FFmpeg developers
  built on Jul  2 2013 13:07:10 with gcc 4.7 (Debian 4.7.2-4)
  configuration: --disable-asm --disable-ffprobe --disable-ffserver --enable-gpl
  libavutil      52. 38.100 / 52. 38.100
  libavcodec     55. 18.100 / 55. 18.100
  libavformat    55. 10.101 / 55. 10.101
  libavdevice    55.  2.100 / 55.  2.100
  libavfilter     3. 77.101 /  3. 77.101
  libswscale      2.  3.100 /  2.  3.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  3.100 / 52.  3.100
[rawvideo @ 0x4314560] Invalid pixel format.
    Last message repeated 1 times
Input #0, avi, from 'test.avi':
  Duration: 00:00:14.07, start: 0.000000, bitrate: 872 kb/s
    Stream #0:0: Video: rawvideo (IV32 / 0x32335649), 352x288, 15 tbr, 15 tbn, 15 tbc
[buffer @ 0x432bc40] Unable to parse option value "-1" as pixel format
    Last message repeated 1 times
[buffer @ 0x432bc40] Error setting option pix_fmt to value -1.
[graph 0 input from stream 0:0 @ 0x432baf0] Error applying options to the filter.
Error opening filters!
==3311== 
==3311== HEAP SUMMARY:
==3311==     in use at exit: 468 bytes in 3 blocks
==3311==   total heap usage: 225 allocs, 222 frees, 229,564 bytes allocated
==3311== 
==3311== 16 bytes in 1 blocks are definitely lost in loss record 1 of 3
==3311==    at 0x40268A4: memalign (vg_replace_malloc.c:694)
==3311==    by 0x402695E: posix_memalign (vg_replace_malloc.c:835)
==3311==    by 0x88111D7: av_mallocz (mem.c:93)
==3311==    by 0x80D44CF: link_filter_inouts (graphparser.c:235)
==3311==    by 0x80D493B: avfilter_graph_parse2 (graphparser.c:406)
==3311== 
==3311== 16 bytes in 1 blocks are definitely lost in loss record 2 of 3
==3311==    at 0x40268A4: memalign (vg_replace_malloc.c:694)
==3311==    by 0x402695E: posix_memalign (vg_replace_malloc.c:835)
==3311==    by 0x88111D7: av_mallocz (mem.c:93)
==3311==    by 0x80D443C: link_filter_inouts (graphparser.c:260)
==3311==    by 0x80D493B: avfilter_graph_parse2 (graphparser.c:406)
==3311==    by 0x432B42F: ???
==3311== 
==3311== 436 bytes in 1 blocks are definitely lost in loss record 3 of 3
==3311==    at 0x40268A4: memalign (vg_replace_malloc.c:694)
==3311==    by 0x402695E: posix_memalign (vg_replace_malloc.c:835)
==3311==    by 0x88111D7: av_mallocz (mem.c:93)
==3311==    by 0x85A31C0: avcodec_get_context_defaults3 (options.c:129)
==3311==    by 0x80A44A8: new_output_stream (ffmpeg_opt.c:1028)
==3311==    by 0x80A4F58: new_video_stream (ffmpeg_opt.c:1174)
==3311==    by 0x80A73C7: open_output_file (ffmpeg_opt.c:1694)
==3311==    by 0x80A2408: open_files.isra.7 (ffmpeg_opt.c:2483)
==3311==    by 0x41B4E15: (below main) (libc-start.c:228)
==3311== 
==3311== LEAK SUMMARY:
==3311==    definitely lost: 468 bytes in 3 blocks
==3311==    indirectly lost: 0 bytes in 0 blocks
==3311==      possibly lost: 0 bytes in 0 blocks
==3311==    still reachable: 0 bytes in 0 blocks
==3311==         suppressed: 0 bytes in 0 blocks
==3311== 
==3311== For counts of detected and suppressed errors, rerun with: -v
==3311== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 23 from 6)
knoppix@Microknoppix:/media/sdb1$ 
knoppix@Microknoppix:/media/sdb1$ valgrind --leak-check=full ./ffmpeg_g -vcodec  vc1 -i test.avi -an -f null -
==3316== Memcheck, a memory error detector
==3316== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==3316== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==3316== Command: ./ffmpeg_g -vcodec vc1 -i test.avi -an -f null -
==3316== 
ffmpeg version 1.1.git Copyright (c) 2000-2013 the FFmpeg developers
  built on Jul  2 2013 13:07:10 with gcc 4.7 (Debian 4.7.2-4)
  configuration: --disable-asm --disable-ffprobe --disable-ffserver --enable-gpl
  libavutil      52. 38.100 / 52. 38.100
  libavcodec     55. 18.100 / 55. 18.100
  libavformat    55. 10.101 / 55. 10.101
  libavdevice    55.  2.100 / 55.  2.100
  libavfilter     3. 77.101 /  3. 77.101
  libswscale      2.  3.100 /  2.  3.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  3.100 / 52.  3.100
Input #0, avi, from 'test.avi':
  Duration: 00:00:14.07, start: 0.000000, bitrate: 872 kb/s
    Stream #0:0: Video: vc1 (IV32 / 0x32335649), 352x288, 15 fps, 15 tbr, 15 tbn, 15 tbc
[buffer @ 0x44b42a0] Unable to parse option value "-1" as pixel format
    Last message repeated 1 times
[buffer @ 0x44b42a0] Error setting option pix_fmt to value -1.
[graph 0 input from stream 0:0 @ 0x44b4150] Error applying options to the filter.
Error opening filters!
==3316== 
==3316== HEAP SUMMARY:
==3316==     in use at exit: 468 bytes in 3 blocks
==3316==   total heap usage: 976 allocs, 973 frees, 1,764,480 bytes allocated
==3316== 
==3316== 16 bytes in 1 blocks are definitely lost in loss record 1 of 3
==3316==    at 0x40268A4: memalign (vg_replace_malloc.c:694)
==3316==    by 0x402695E: posix_memalign (vg_replace_malloc.c:835)
==3316==    by 0x88111D7: av_mallocz (mem.c:93)
==3316==    by 0x80D44CF: link_filter_inouts (graphparser.c:235)
==3316==    by 0x80D493B: avfilter_graph_parse2 (graphparser.c:406)
==3316== 
==3316== 16 bytes in 1 blocks are definitely lost in loss record 2 of 3
==3316==    at 0x40268A4: memalign (vg_replace_malloc.c:694)
==3316==    by 0x402695E: posix_memalign (vg_replace_malloc.c:835)
==3316==    by 0x88111D7: av_mallocz (mem.c:93)
==3316==    by 0x80D443C: link_filter_inouts (graphparser.c:260)
==3316==    by 0x80D493B: avfilter_graph_parse2 (graphparser.c:406)
==3316==    by 0x44B3A8F: ???
==3316== 
==3316== 436 bytes in 1 blocks are definitely lost in loss record 3 of 3
==3316==    at 0x40268A4: memalign (vg_replace_malloc.c:694)
==3316==    by 0x402695E: posix_memalign (vg_replace_malloc.c:835)
==3316==    by 0x88111D7: av_mallocz (mem.c:93)
==3316==    by 0x85A31C0: avcodec_get_context_defaults3 (options.c:129)
==3316==    by 0x80A44A8: new_output_stream (ffmpeg_opt.c:1028)
==3316==    by 0x80A4F58: new_video_stream (ffmpeg_opt.c:1174)
==3316==    by 0x80A73C7: open_output_file (ffmpeg_opt.c:1694)
==3316==    by 0x80A2408: open_files.isra.7 (ffmpeg_opt.c:2483)
==3316==    by 0x41B4E15: (below main) (libc-start.c:228)
==3316== 
==3316== LEAK SUMMARY:
==3316==    definitely lost: 468 bytes in 3 blocks
==3316==    indirectly lost: 0 bytes in 0 blocks
==3316==      possibly lost: 0 bytes in 0 blocks
==3316==    still reachable: 0 bytes in 0 blocks
==3316==         suppressed: 0 bytes in 0 blocks
==3316== 
==3316== For counts of detected and suppressed errors, rerun with: -v
==3316== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 23 from 6)
knoppix@Microknoppix:/media/sdb1$ 
knoppix@Microknoppix:/media/sdb1$ valgrind --leak-check=full ./ffmpeg_g -vcodec  vmnc -i test.avi -an -f null -
==3319== Memcheck, a memory error detector
==3319== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==3319== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==3319== Command: ./ffmpeg_g -vcodec vmnc -i test.avi -an -f null -
==3319== 
ffmpeg version 1.1.git Copyright (c) 2000-2013 the FFmpeg developers
  built on Jul  2 2013 13:07:10 with gcc 4.7 (Debian 4.7.2-4)
  configuration: --disable-asm --disable-ffprobe --disable-ffserver --enable-gpl
  libavutil      52. 38.100 / 52. 38.100
  libavcodec     55. 18.100 / 55. 18.100
  libavformat    55. 10.101 / 55. 10.101
  libavdevice    55.  2.100 / 55.  2.100
  libavfilter     3. 77.101 /  3. 77.101
  libswscale      2.  3.100 /  2.  3.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  3.100 / 52.  3.100
[vmnc @ 0x4314560] Unsupported bitdepth 24
    Last message repeated 1 times
Input #0, avi, from 'test.avi':
  Duration: 00:00:14.07, start: 0.000000, bitrate: 872 kb/s
    Stream #0:0: Video: vmnc (IV32 / 0x32335649), 352x288, 15 tbr, 15 tbn, 15 tbc
[buffer @ 0x432c300] Unable to parse option value "-1" as pixel format
    Last message repeated 1 times
[buffer @ 0x432c300] Error setting option pix_fmt to value -1.
[graph 0 input from stream 0:0 @ 0x432c1b0] Error applying options to the filter.
Error opening filters!
==3319== 
==3319== HEAP SUMMARY:
==3319==     in use at exit: 468 bytes in 3 blocks
==3319==   total heap usage: 217 allocs, 214 frees, 231,980 bytes allocated
==3319== 
==3319== 16 bytes in 1 blocks are definitely lost in loss record 1 of 3
==3319==    at 0x40268A4: memalign (vg_replace_malloc.c:694)
==3319==    by 0x402695E: posix_memalign (vg_replace_malloc.c:835)
==3319==    by 0x88111D7: av_mallocz (mem.c:93)
==3319==    by 0x80D44CF: link_filter_inouts (graphparser.c:235)
==3319==    by 0x80D493B: avfilter_graph_parse2 (graphparser.c:406)
==3319== 
==3319== 16 bytes in 1 blocks are definitely lost in loss record 2 of 3
==3319==    at 0x40268A4: memalign (vg_replace_malloc.c:694)
==3319==    by 0x402695E: posix_memalign (vg_replace_malloc.c:835)
==3319==    by 0x88111D7: av_mallocz (mem.c:93)
==3319==    by 0x80D443C: link_filter_inouts (graphparser.c:260)
==3319==    by 0x80D493B: avfilter_graph_parse2 (graphparser.c:406)
==3319==    by 0x432BAFF: ???
==3319== 
==3319== 436 bytes in 1 blocks are definitely lost in loss record 3 of 3
==3319==    at 0x40268A4: memalign (vg_replace_malloc.c:694)
==3319==    by 0x402695E: posix_memalign (vg_replace_malloc.c:835)
==3319==    by 0x88111D7: av_mallocz (mem.c:93)
==3319==    by 0x85A31C0: avcodec_get_context_defaults3 (options.c:129)
==3319==    by 0x80A44A8: new_output_stream (ffmpeg_opt.c:1028)
==3319==    by 0x80A4F58: new_video_stream (ffmpeg_opt.c:1174)
==3319==    by 0x80A73C7: open_output_file (ffmpeg_opt.c:1694)
==3319==    by 0x80A2408: open_files.isra.7 (ffmpeg_opt.c:2483)
==3319==    by 0x41B4E15: (below main) (libc-start.c:228)
==3319== 
==3319== LEAK SUMMARY:
==3319==    definitely lost: 468 bytes in 3 blocks
==3319==    indirectly lost: 0 bytes in 0 blocks
==3319==      possibly lost: 0 bytes in 0 blocks
==3319==    still reachable: 0 bytes in 0 blocks
==3319==         suppressed: 0 bytes in 0 blocks
==3319== 
==3319== For counts of detected and suppressed errors, rerun with: -v
==3319== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 23 from 6)
knoppix@Microknoppix:/media/sdb1$ 

Attachments (2)

test.avi (1.5 MB) - added by ami_stuff 6 years ago.
options.diff (508 bytes) - added by ami_stuff 6 years ago.

Download all attachments as: .zip

Change History (7)

Changed 6 years ago by ami_stuff

comment:1 Changed 6 years ago by ami_stuff

attached fixes 436bytes leak, but I don't know what I'm doing

Changed 6 years ago by ami_stuff

comment:2 Changed 6 years ago by cehoyos

  • Component changed from undetermined to FFmpeg
  • Keywords leak added
  • Priority changed from normal to minor
  • Reproduced by developer set
  • Status changed from new to open
  • Summary changed from small memleak to memleak on probing error
  • Version changed from unspecified to git-master

I believe this is missing cleanup code in ffmpeg.c, no leak in the libraries.

comment:3 Changed 5 years ago by michael

  • Resolution set to worksforme
  • Status changed from open to closed

Not reproducable anymore

comment:4 Changed 5 years ago by cehoyos

Not reproducible since release 2.4.

comment:5 Changed 5 years ago by cehoyos

  • Resolution changed from worksforme to fixed
Note: See TracTickets for help on using tickets.