Opened 9 years ago
Closed 8 years ago
#4964 closed defect (fixed)
decimate filter crashes with ppsrc option
Reported by: | Cigaes | Owned by: | |
---|---|---|---|
Priority: | important | Component: | avfilter |
Version: | git-master | Keywords: | decimate crash SIGSEGV |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | no |
Description
./ffmpeg_g -f lavfi -i testsrc=s=1024x768 \ -f lavfi -i testsrc \ -lavfi 'decimate=ppsrc=1' -f framecrc -
yields
ffmpeg version N-76264-g6bfc6d0 Copyright (c) 2000-2015 the FFmpeg developers built with gcc 5.2.1 (Debian 5.2.1-22) 20151010 configuration: --enable-shared --disable-static --enable-gpl --enable-libx264 --enable-libopus --enable-libass --enable-libfreetype --enable-opengl --assert-level=2 libavutil 55. 4.100 / 55. 4.100 libavcodec 57. 9.100 / 57. 9.100 libavformat 57. 11.100 / 57. 11.100 libavdevice 57. 0.100 / 57. 0.100 libavfilter 6. 13.100 / 6. 13.100 libswscale 4. 0.100 / 4. 0.100 libswresample 2. 0.100 / 2. 0.100 libpostproc 54. 0.100 / 54. 0.100 Input #0, lavfi, from 'testsrc=s=1024x768': Duration: N/A, start: 0.000000, bitrate: N/A Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 1024x768 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc Input #1, lavfi, from 'testsrc': Duration: N/A, start: 0.000000, bitrate: N/A Stream #1:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 320x240 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc #software: Lavf57.11.100 #tb 0: 1/20 Output #0, framecrc, to 'pipe:': Metadata: encoder : Lavf57.11.100 Stream #0:0: Video: rawvideo (444P / 0x50343434), yuv444p, 320x240 [SAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 20 fps, 20 tbn, 20 tbc (default) Metadata: encoder : Lavc57.9.100 rawvideo Stream mapping: Stream #0:0 (rawvideo) -> decimate:main Stream #1:0 (rawvideo) -> decimate:clean_src decimate -> Stream #0:0 (rawvideo) Press [q] to stop, [?] for help zsh: segmentation fault ./ffmpeg_g -f lavfi -i testsrc=s=1024x768 -f lavfi -i testsrc -lavfi -f -
==31113== Invalid read of size 1 0kB time=00:00:00.00 bitrate=N/A ==31113== at 0x50EB2A0: calc_diffs (vf_decimate.c:121) ==31113== by 0x50EB2A0: filter_frame (vf_decimate.c:174) ==31113== by 0x50C1C46: ff_filter_frame_framed (avfilter.c:1082) ==31113== by 0x50C296C: ff_filter_frame (avfilter.c:1176) ==31113== by 0x5134A12: filter_frame (vf_scale.c:583) ==31113== by 0x50C1C46: ff_filter_frame_framed (avfilter.c:1082) ==31113== by 0x50C296C: ff_filter_frame (avfilter.c:1176) ==31113== by 0x50C6C11: request_frame (buffersrc.c:382) ==31113== by 0x50C691A: av_buffersrc_add_frame_internal (buffersrc.c:180) ==31113== by 0x50C6CAC: av_buffersrc_add_frame_flags (buffersrc.c:105) ==31113== by 0x41FD21: decode_video (ffmpeg.c:2189) ==31113== by 0x42626F: process_input_packet (ffmpeg.c:2333) ==31113== by 0x42626F: process_input (ffmpeg.c:3946) ==31113== by 0x42626F: transcode_step (ffmpeg.c:4034) ==31113== by 0x42626F: transcode (ffmpeg.c:4088) ==31113== by 0x407A33: main (ffmpeg.c:4281) ==31113== Address 0x1697419f is 0 bytes after a block of size 81,951 alloc'd ==31113== at 0x4C2B086: memalign (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==31113== by 0x4C2B191: posix_memalign (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==31113== by 0x727E3E6: av_malloc (mem.c:97) ==31113== by 0x726DD98: av_buffer_alloc (buffer.c:71) ==31113== by 0x7278805: get_video_buffer (frame.c:193) ==31113== by 0x7278805: av_frame_get_buffer (frame.c:277) ==31113== by 0x5156F98: ff_default_get_video_buffer (video.c:55) ==31113== by 0x5134713: filter_frame (vf_scale.c:516) ==31113== by 0x50C1C46: ff_filter_frame_framed (avfilter.c:1082) ==31113== by 0x50C296C: ff_filter_frame (avfilter.c:1176) ==31113== by 0x50C6C11: request_frame (buffersrc.c:382) ==31113== by 0x50C691A: av_buffersrc_add_frame_internal (buffersrc.c:180) ==31113== by 0x50C6CAC: av_buffersrc_add_frame_flags (buffersrc.c:105)
A quick test seems to indicate that it using the resolution of the full frame to compute the difference. The problem does not happen with inputs at the same time.
Change History (2)
comment:1 by , 8 years ago
Keywords: | decimate SIGSEGV added |
---|---|
Priority: | normal → important |
Reproduced by developer: | set |
Status: | new → open |
Version: | unspecified → git-master |
comment:2 by , 8 years ago
Resolution: | → fixed |
---|---|
Status: | open → closed |
Note:
See TracTickets
for help on using tickets.
Fixed in 30fe3fd52721c8c6566001192cd16be423ffc92b