[FFmpeg-trac] #2760(avcodec:new): prores_ks encoder segfaults encoding image with alpha

FFmpeg trac at avcodec.org
Mon Jul 8 10:37:31 CEST 2013


#2760: prores_ks encoder segfaults encoding image with alpha
-------------------------------------+-------------------------------------
             Reporter:  MarkZV       |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  avcodec      |                  Version:  git-
             Keywords:  prores       |  master
  alpha crash                        |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 A segmentation fault is encountered encoding a png with alpha to prores
 using prores_ks.  The issue can be reproduced using git master and this
 png input file (resized to 480x480): http://ffmpeg.org/favicon.png

 {{{
 $ ffmpeg -v 9 -loglevel 99 -i x.png -s 480x480 -c:v prores_ks -y out.mov
 ffmpeg version 1.1.git-44d0e52 Copyright (c) 2000-2013 the FFmpeg
 developers
   built on Jul  7 2013 21:14:56 with gcc 4.2.1 (GCC) (Apple Inc. build
 5666) (dot 3)
   configuration: --prefix=/opt/local --enable-swscale --enable-avfilter
 --enable-libmp3lame --enable-libvorbis --enable-libopus --enable-libtheora
 --enable-libschroedinger --enable-libopenjpeg --enable-libmodplug
 --enable-libvpx --enable-libspeex --enable-libass --enable-libbluray
 --enable-gnutls --enable-libfreetype --mandir=/opt/local/share/man
 --enable-shared --enable-pthreads --cc=/usr/bin/gcc-4.2 --arch=x86_64
 --enable-yasm --enable-gpl --enable-postproc --enable-libx264 --enable-
 libxvid --enable-version3 --enable-libopencore-amrnb --enable-libopencore-
 amrwb --enable-nonfree --enable-libfdk-aac --enable-libfaac
   libavutil      52. 38.100 / 52. 38.100
   libavcodec     55. 18.102 / 55. 18.102
   libavformat    55. 11.101 / 55. 11.101
   libavdevice    55.  2.100 / 55.  2.100
   libavfilter     3. 78.103 /  3. 78.103
   libswscale      2.  3.100 /  2.  3.100
   libswresample   0. 17.102 /  0. 17.102
   libpostproc    52.  3.100 / 52.  3.100
 Splitting the commandline.
 Reading option '-v' ... matched as option 'v' (set logging level) with
 argument '9'.
 Reading option '-loglevel' ... matched as option 'loglevel' (set logging
 level) with argument '99'.
 Reading option '-i' ... matched as input file with argument 'x.png'.
 Reading option '-s' ... matched as option 's' (set frame size (WxH or
 abbreviation)) with argument '480x480'.
 Reading option '-c:v' ... matched as option 'c' (codec name) with argument
 'prores_ks'.
 Reading option '-y' ... matched as option 'y' (overwrite output files)
 with argument '1'.
 Reading option 'out.mov' ... matched as output file.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option v (set logging level) with argument 9.
 Applying option y (overwrite output files) with argument 1.
 Successfully parsed a group of options.
 Parsing a group of options: input file x.png.
 Successfully parsed a group of options.
 Opening an input file: x.png.
 [AVIOContext @ 0x1025226a0] Statistics: 855 bytes read, 0 seeks
 Input #0, image2, from 'x.png':
   Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
     Stream #0:0, 1, 1/25: Video: png, rgba, 16x16, 1/25, 25 tbr, 25 tbn,
 25 tbc
 Successfully opened the file.
 Parsing a group of options: output file out.mov.
 Applying option s (set frame size (WxH or abbreviation)) with argument
 480x480.
 Applying option c:v (codec name) with argument prores_ks.
 Successfully parsed a group of options.
 Opening an output file: out.mov.
 Successfully opened the file.
 detected 4 logical cores
 [graph 0 input from stream 0:0 @ 0x1033003a0] Setting 'video_size' to
 value '16x16'
 [graph 0 input from stream 0:0 @ 0x1033003a0] Setting 'pix_fmt' to value
 '28'
 [graph 0 input from stream 0:0 @ 0x1033003a0] Setting 'time_base' to value
 '1/25'
 [graph 0 input from stream 0:0 @ 0x1033003a0] Setting 'pixel_aspect' to
 value '0/1'
 [graph 0 input from stream 0:0 @ 0x1033003a0] Setting 'sws_param' to value
 'flags=2'
 [graph 0 input from stream 0:0 @ 0x1033003a0] Setting 'frame_rate' to
 value '25/1'
 [graph 0 input from stream 0:0 @ 0x1033003a0] w:16 h:16 pixfmt:rgba
 tb:1/25 fr:25/1 sar:0/1 sws_param:flags=2
 [scaler for output stream 0:0 @ 0x103300960] Setting 'w' to value '480'
 [scaler for output stream 0:0 @ 0x103300960] Setting 'h' to value '480'
 [scaler for output stream 0:0 @ 0x103300960] Setting 'flags' to value
 '0x4'
 [scaler for output stream 0:0 @ 0x103300960] w:480 h:480 flags:'0x4'
 interl:0
 [format @ 0x103300e60] compat: called with
 args=[yuv422p10le|yuv444p10le|yuva444p10le]
 [format @ 0x103300e60] Setting 'pix_fmts' to value
 'yuv422p10le|yuv444p10le|yuva444p10le'
 [AVFilterGraph @ 0x102521920] query_formats: 5 queried, 4 merged, 0
 already done, 0 delayed
 [scaler for output stream 0:0 @ 0x103300960] picking yuva444p10le out of 3
 ref:rgba alpha:1
 [scaler for output stream 0:0 @ 0x103300960] w:16 h:16 fmt:rgba sar:0/1 ->
 w:480 h:480 fmt:yuva444p10le sar:0/1 flags:0x4
 [prores_ks @ 0x10280f400] profile 2, 150 slices, interlacing: no, 1050
 bits per MB
 [prores_ks @ 0x10280f400] frame size upper bound: 159200
 Output #0, mov, to 'out.mov':
   Metadata:
     encoder         : Lavf55.11.101
     Stream #0:0, 0, 1/12800: Video: prores (prores_ks) (apcn /
 0x6E637061), yuva444p10le, 480x480, 1/25, q=2-31, 200 kb/s, 12800 tbn, 25
 tbc
 Stream mapping:
   Stream #0:0 -> #0:0 (png -> prores_ks)
 Press [q] to stop, [?] for help
 Segmentation fault
 $
 }}}

 A debug version of ffmpeg with assertions enabled produces the following
 assertion:

 {{{
 Assertion s->buf_ptr+3<s->buf_end failed at libavcodec/put_bits.h:168

 Program received signal SIGABRT, Aborted.
 0x00007fff87f720b6 in __kill ()
 (gdb) bt
 #0  0x00007fff87f720b6 in __kill ()
 #1  0x00007fff880129f6 in abort ()
 #2  0x0000000100876368 in put_bits (s=0x7fff5fbfeb30, n=9, value=493) at
 put_bits.h:168
 #3  0x0000000100876bef in encode_vlc_codeword (pb=0x7fff5fbfeb30,
 codebook=112, val=493) at libavcodec/proresenc_kostya.c:344
 #4  0x0000000100876b09 in encode_dcs (pb=0x7fff5fbfeb30,
 blocks=0x103065510, blocks_per_slice=8, scale=24) at
 libavcodec/proresenc_kostya.c:377
 #5  0x0000000100876e88 in encode_slice_plane (ctx=0x103065400,
 pb=0x7fff5fbfeb30, src=0x103b49b80, linesize=960, mbs_per_slice=2,
 blocks=0x103065410, blocks_per_mb=4, plane_size_factor=3,
 qmat=0x103069910) at libavcodec/proresenc_kostya.c:430
 #6  0x0000000100877555 in encode_slice (avctx=0x10300f400,
 pic=0x103d00000, pb=0x7fff5fbfeb30, sizes=0x7fff5fbfeb60, x=28, y=18,
 quant=6, mbs_per_slice=2) at libavcodec/proresenc_kostya.c:560
 #7  0x00000001008792d3 in encode_frame (avctx=0x10300f400,
 pkt=0x7fff5fbfee50, pic=0x103d00000, got_packet=0x7fff5fbfeef8) at
 libavcodec/proresenc_kostya.c:1022
 #8  0x0000000100951026 in avcodec_encode_video2 (avctx=0x10300f400,
 avpkt=0x7fff5fbfee50, frame=0x103d00000, got_packet_ptr=0x7fff5fbfeef8) at
 libavcodec/utils.c:1756
 #9  0x0000000100012001 in do_video_out (s=0x10300ee00, ost=0x102b22b40,
 in_picture=0x103d00000) at ffmpeg.c:946
 #10 0x000000010001297d in reap_filters () at ffmpeg.c:1090
 #11 0x000000010001c649 in transcode_step () at ffmpeg.c:3168
 #12 0x000000010001c705 in transcode () at ffmpeg.c:3211
 #13 0x000000010001cbef in main (argc=13, argv=0x7fff5fbff158) at
 ffmpeg.c:3389
 }}}

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/2760>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list