[FFmpeg-trac] #3143(undetermined:new): H.261 encoding crashes with trellis

FFmpeg trac at avcodec.org
Fri Nov 15 18:34:41 CET 2013


#3143: H.261 encoding crashes with trellis
-------------------------------------+-------------------------------------
             Reporter:  maikmerten   |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:  git-
  undetermined                       |  master
             Keywords:  crasher      |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:
 How to reproduce:
 {{{
 % ffmpeg -i /tmp/test.y4m -f h261 -vb 256k -trellis 2 /tmp/test.h261
 ffmpeg version N-58112-g5592d1b Copyright (c) 2000-2013 the FFmpeg
 developers
   built on Nov 15 2013 18:16:18 with gcc 4.8 (Ubuntu/Linaro
 4.8.1-10ubuntu8)
 }}}

 There's some revived interest in H.261 as possible guaranteed-patent-free
 baseline codec for videocommunication. While ffmpeg's H.261 usually works
 fine, it does not work with advanced techniques such as trellis
 quantization (or most rate/distortion options, for that matter). This is
 about trellis.

 It would be awesome if some of the cool advanced encoder features that are
 available for MPEG-1 (e.g., trellis) would also work for H.261. Think "pig
 with rockets attached". If this is not possible the encoder at least
 should not crash.

 Program received signal SIGSEGV, Segmentation fault.
 0x000000000083536a in dct_quantize_trellis_c (s=0x16342a0,
 block=0x1626d60,
     n=1, qscale=4, overflow=<optimized out>) at
 libavcodec/mpegvideo_enc.c:3619
 3619                        int score= distortion +
 length[UNI_AC_ENC_INDEX(run, level)]*lambda;
 (gdb) bt
 #0  0x000000000083536a in dct_quantize_trellis_c (s=0x16342a0,
     block=0x1626d60, n=1, qscale=4, overflow=<optimized out>)
     at libavcodec/mpegvideo_enc.c:3619
 #1  0x0000000000842d13 in encode_mb_internal (mb_block_count=6,
     mb_block_width=8, mb_block_height=8, motion_y=0, motion_x=0,
 s=0x16342a0)
     at libavcodec/mpegvideo_enc.c:2060
 #2  encode_mb (motion_y=0, motion_x=0, s=0x16342a0)
     at libavcodec/mpegvideo_enc.c:2168
 #3  encode_thread (c=<optimized out>, arg=<optimized out>)
     at libavcodec/mpegvideo_enc.c:3042
 #4  0x000000000090d8bf in avcodec_default_execute (c=0x1633b20,
     func=0x83f8b0 <encode_thread>, arg=<optimized out>, ret=<optimized
 out>,
     count=1, size=8) at libavcodec/utils.c:1016
 #5  0x000000000083a2c7 in encode_picture (picture_number=0, s=0x16342a0)
     at libavcodec/mpegvideo_enc.c:3435
 #6  ff_MPV_encode_picture (avctx=0x1633b20, pkt=0x7fffffffd910,
     pic_arg=<optimized out>, got_packet=0x7fffffffd90c)
     at libavcodec/mpegvideo_enc.c:1494
 #7  0x000000000090e6a5 in avcodec_encode_video2
 (avctx=avctx at entry=0x1633b20,
     avpkt=avpkt at entry=0x7fffffffd910, frame=frame at entry=0x1628700,
     got_packet_ptr=got_packet_ptr at entry=0x7fffffffd90c)
     at libavcodec/utils.c:1861
 #8  0x000000000046da85 in do_video_out (in_picture=0x1628700,
 ost=0x1633f80,
 ---Type <return> to continue, or q <return> to quit---
     s=0x1633200) at ffmpeg.c:953
 #9  reap_filters () at ffmpeg.c:1098
 #10 0x000000000045d1df in transcode_step () at ffmpeg.c:3223
 #11 transcode () at ffmpeg.c:3266
 #12 main (argc=<optimized out>, argv=<optimized out>) at ffmpeg.c:3444

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


More information about the FFmpeg-trac mailing list