[FFmpeg-trac] #594(undetermined:new): Combination of transpose, scale, pad filters results in segfault

FFmpeg trac at avcodec.org
Wed Oct 26 19:11:14 CEST 2011


#594: Combination of transpose, scale, pad filters results in segfault
--------------------------------+----------------------------------------
             Reporter:  ignat   |                    Owner:
                 Type:  defect  |                   Status:  new
             Priority:  normal  |                Component:  undetermined
              Version:  0.8.5   |               Resolution:
             Keywords:          |               Blocked By:
             Blocking:          |  Reproduced by developer:  0
Analyzed by developer:  0       |
--------------------------------+----------------------------------------

Comment (by ignat):

 Please find gdb output for statically linked ffmpeg below.
 Crash below was reproduced without transpose=3 filter.

 I will investigate if using external library (x264) is required to
 reproduce crash tomorrow.

 (gdb) r -v 9 -loglevel 99 -i rotate_x.mp4 -vcodec libx264 -r 20 -b 768k
 -bt 768k -vf scale=152:270,pad=480:270:164:0 -an -preset medium
 -fastfirstpass 1 -profile baseline -pass 1 -passlogfile
 result.mp4.passlogfile -f rawvideo -y /dev/null
 Starting program: /home/ignat/external_src/ffmpeg/ffmpeg_g -v 9 -loglevel
 99 -i rotate_x.mp4 -vcodec libx264 -r 20 -b 768k -bt 768k -vf
 scale=152:270,pad=480:270:164:0 -an -preset medium -fastfirstpass 1
 -profile baseline -pass 1 -passlogfile result.mp4.passlogfile -f rawvideo
 -y /dev/null
 [Thread debugging using libthread_db enabled]

 .....

 Seems stream 1 codec frame rate differs from container frame rate:
 60000.00 (60000/1) -> 29.83 (179/6)
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'rotate_x.mp4':
   Metadata:
     major_brand     : 3gp4
     minor_version   : 768
     compatible_brands: 3gp43gp6
   Duration: 00:00:01.17, start: 0.000000, bitrate: 11299 kb/s
     Stream #0:0(eng), 1, 1/16000: Audio: aac (mp4a / 0x6134706D), 16000
 Hz, mono, s16, 27 kb/s
     Stream #0:1(eng), 27, 1/30000: Video: h264 (Baseline) (avc1 /
 0x31637661), yuv420p, 1280x720, 1/60000, 12667 kb/s, 28.85 fps, 29.83 tbr,
 30k tbn, 60k tbc
 Please use -b:a or -b:v, -b is ambiguous
 [buffer @ 0x8dd9da0] w:1280 h:720 pixfmt:yuv420p tb:1/1000000 sar:0/1
 sws_param:
 [scale @ 0x8dd3880] w:1280 h:720 fmt:yuv420p -> w:152 h:270 fmt:yuv420p
 flags:0x4
 [pad @ 0x8dd3d60] w:152 h:270 -> w:480 h:270 x:164 y:0
 color:0x108080FF[yuva]
 [libx264 @ 0x8dd2600] err{or,}_recognition separate: 1; 1
 [libx264 @ 0x8dd2600] err{or,}_recognition combined: 1; 1
 [libx264 @ 0x8dd2600] using mv_range_thread = 40
 [libx264 @ 0x8dd2600] using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64
 [New Thread 0xb77f7b70 (LWP 20488)]
 [New Thread 0xb6ff6b70 (LWP 20489)]
 [New Thread 0xb67f5b70 (LWP 20490)]
 [New Thread 0xb5adbb70 (LWP 20491)]
 [libx264 @ 0x8dd2600] profile Constrained Baseline, level 2.1
 [h264 @ 0x8dd8e40] err{or,}_recognition separate: 1; 1
 [h264 @ 0x8dd8e40] err{or,}_recognition combined: 1; 1
 Output #0, rawvideo, to '/dev/null':
   Metadata:
     major_brand     : 3gp4
     minor_version   : 768
     compatible_brands: 3gp43gp6
     encoder         : Lavf53.17.0
     Stream #0:0(eng), 0, 1/90000: Video: h264, yuv420p, 480x270, 1/20,
 q=-1--1, pass 1, 768 kb/s, 90k tbn, 20 tbc
 Stream mapping:
   Stream #0.1 -> #0.0 (h264 -> libx264)
 Press [q] to stop, [?] for help


 Program received signal SIGSEGV, Segmentation fault.
 0x086d64c7 in yuv2yuvX_sse3 (filter=0x8de9538, filterSize=11,
 src=0x8dee890,
     dest=0x97f7e04
 "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200"...,
 dstW=152, dither=0x88382d8 "@@@@@@@@", offset=0)
     at libswscale/x86/swscale_mmx.c:196
 196         __asm__ volatile(
 (gdb) bt
 #0  0x086d64c7 in yuv2yuvX_sse3 (filter=0x8de9538, filterSize=11,
 src=0x8dee890,
     dest=0x97f7e04
 "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200"...,
 dstW=152, dither=0x88382d8 "@@@@@@@@", offset=0)
     at libswscale/x86/swscale_mmx.c:196
 #1  0x086c7bfc in swScale (c=0x8de7ba0, src=0xbfffc9b0,
 srcStride=0xbfffc980, srcSliceY=0, srcSliceH=720, dst=0xbfffc9a0,
 dstStride=0xbfffc990)
     at libswscale/swscale.c:2691
 #2  0x086acb50 in sws_scale (c=0x8de7ba0, srcSlice=0xbfffca70,
 srcStride=0xbfffca50, srcSliceY=0, srcSliceH=720, dst=0xbfffca60,
     dstStride=0xbfffca40) at libswscale/swscale_unscaled.c:807
 #3  0x080a62f6 in scale_slice (link=0x8dd3c60, y=0, h=720, slice_dir=1) at
 libavfilter/vf_scale.c:294
 #4  draw_slice (link=0x8dd3c60, y=0, h=720, slice_dir=1) at
 libavfilter/vf_scale.c:311
 #5  0x08094f9e in avfilter_draw_slice (link=0x8dd3c60, y=0, h=720,
 slice_dir=1) at libavfilter/avfilter.c:641
 #6  0x080a97ff in request_frame (link=0x8dd3c60) at
 libavfilter/vsrc_buffer.c:191
 #7  0x0809433f in avfilter_request_frame (link=0x8dd4380) at
 libavfilter/avfilter.c:520
 #8  0x0809895b in av_buffersink_get_buffer_ref (ctx=0x8def180,
 bufref=0x8dd2b98, flags=0) at libavfilter/sink_buffer.c:128
 #9  0x08080f1b in output_packet (ist=0x8dd9d40, ist_index=1,
 ost_table=0x8dd2a00, nb_ostreams=1, pkt=0xbfffd17c) at ffmpeg.c:1852
 #10 0x080868f5 in transcode (output_files=0x8dd3420, nb_output_files=1,
 input_files=0x8dd98e0, nb_input_files=1) at ffmpeg.c:2635
 #11 0x0808b22d in main (argc=<value optimized out>, argv=<value optimized
 out>) at ffmpeg.c:4486
 (gdb) disass $pc-32,$pc+32
 Dump of assembler code from 0x86d64a7 to 0x86d64e7:
    0x086d64a7 <yuv2yuvX_sse3+103>:      pmulhw %xmm0,%xmm2
    0x086d64ab <yuv2yuvX_sse3+107>:      pmulhw %xmm0,%xmm5
    0x086d64af <yuv2yuvX_sse3+111>:      paddw  %xmm2,%xmm3
    0x086d64b3 <yuv2yuvX_sse3+115>:      paddw  %xmm5,%xmm4
    0x086d64b7 <yuv2yuvX_sse3+119>:      jne    0x86d6490
 <yuv2yuvX_sse3+80>
    0x086d64b9 <yuv2yuvX_sse3+121>:      psraw  $0x3,%xmm3
    0x086d64be <yuv2yuvX_sse3+126>:      psraw  $0x3,%xmm4
    0x086d64c3 <yuv2yuvX_sse3+131>:      packuswb %xmm4,%xmm3
 => 0x086d64c7 <yuv2yuvX_sse3+135>:      movntdq %xmm3,(%ebx,%ecx,1)
    0x086d64cc <yuv2yuvX_sse3+140>:      add    $0x10,%ecx
    0x086d64cf <yuv2yuvX_sse3+143>:      cmp    %eax,%ecx
    0x086d64d1 <yuv2yuvX_sse3+145>:      movdqa %xmm7,%xmm3
    0x086d64d5 <yuv2yuvX_sse3+149>:      movdqa %xmm7,%xmm4
    0x086d64d9 <yuv2yuvX_sse3+153>:      mov    0xc(%esp),%edx
    0x086d64dd <yuv2yuvX_sse3+157>:      mov    (%edx),%esi
    0x086d64df <yuv2yuvX_sse3+159>:      jb     0x86d6490
 <yuv2yuvX_sse3+80>
    0x086d64e1 <yuv2yuvX_sse3+161>:      mov    (%esp),%ebx
    0x086d64e4 <yuv2yuvX_sse3+164>:      mov    0x4(%esp),%esi
 End of assembler dump.
 (gdb) info all-registers
 eax            0x98     152
 ecx            0x0      0
 edx            0x8de95e8        148805096
 ebx            0x97f7e04        159350276
 esp            0xbfffc754       0xbfffc754
 ebp            0x8dea538        0x8dea538
 esi            0x0      0
 edi            0x0      0
 eip            0x86d64c7        0x86d64c7 <yuv2yuvX_sse3+135>
 eflags         0x210246 [ PF ZF IF RF ID ]
 cs             0x73     115
 ss             0x7b     123
 ds             0x7b     123
 es             0x7b     123
 fs             0x0      0
 gs             0x33     51
 st0            -nan(0xa6a6a6a6a6a6a6a6) (raw 0xffffa6a6a6a6a6a6a6a6)
 st1            -nan(0xa6a6a6a6a6a6a6a6) (raw 0xffffa6a6a6a6a6a6a6a6)
 st2            -nan(0xa6a6a6a6a6a6a6a6) (raw 0xffffa6a6a6a6a6a6a6a6)
 st3            -nan(0xa6a6a6a6a6a6a6a6) (raw 0xffffa6a6a6a6a6a6a6a6)
 st4            -nan(0xa6a6a6a6a6a6a6a6) (raw 0xffffa6a6a6a6a6a6a6a6)
 st5            -nan(0xa6a6a6a6a6a6a6a6) (raw 0xffffa6a6a6a6a6a6a6a6)
 st6            -nan(0x20002000200020)   (raw 0xffff0020002000200020)
 st7            0        (raw 0x00000000000000000000)
 fctrl          0x37f    895
 fstat          0x20     32
 ftag           0xffff   65535
 fiseg          0x73     115
 fioff          0x80838a4        134756516
 foseg          0x7b     123
 fooff          0xbfffcdcc       -1073754676
 fop            0x19c    412
 xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0}, uint128 = 0x00000000000000000000000000000000}
 xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 v16_int8 = {0x9e, 0x9f, 0x9e, 0x9f, 0x0 <repeats 12 times>}, v8_int16 = {
     0x9f9e, 0x9f9e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x9f9e9f9e,
 0x0, 0x0, 0x0}, v2_int64 = {0x9f9e9f9e, 0x0},
   uint128 = 0x0000000000000000000000009f9e9f9e}
 xmm2           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0}, uint128 = 0x00000000000000000000000000000000}
 xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 v16_int8 = {0x92, 0x92, 0x93, 0x92, 0x90, 0x92, 0x92, 0x90, 0x8a, 0x8d,
     0x8f, 0x8f, 0x8d, 0x8b, 0x96, 0x9b}, v8_int16 = {0x9292, 0x9293,
 0x9290, 0x9092, 0x8d8a, 0x8f8f, 0x8b8d, 0x9b96}, v4_int32 = {0x92939292,
     0x90929290, 0x8f8f8d8a, 0x9b968b8d}, v2_int64 = {0x9092929092939292,
 0x9b968b8d8f8f8d8a}, uint128 = 0x9b968b8d8f8f8d8a9092929092939292}
 xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 v16_int8 = {0x8a, 0x0, 0x8d, 0x0, 0x8f, 0x0, 0x8f, 0x0, 0x8d, 0x0, 0x8b,
     0x0, 0x96, 0x0, 0x9b, 0x0}, v8_int16 = {0x8a, 0x8d, 0x8f, 0x8f, 0x8d,
 0x8b, 0x96, 0x9b}, v4_int32 = {0x8d008a, 0x8f008f, 0x8b008d, 0x9b0096},
   v2_int64 = {0x8f008f008d008a, 0x9b0096008b008d}, uint128 =
 0x009b0096008b008d008f008f008d008a}
 xmm5           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
     0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0,
 0x0}, uint128 = 0x00000000000000000000000000000000}
 xmm6           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double =
 {0x8000000000000000, 0x8000000000000000}, v16_int8 = {0x82, 0x82, 0x82,
 0x82, 0x85,
     0x83, 0x81, 0x7d, 0x80, 0x7f, 0x7e, 0x7e, 0x7c, 0x7b, 0x7b, 0x7b},
 v8_int16 = {0x8282, 0x8282, 0x8385, 0x7d81, 0x7f80, 0x7e7e, 0x7b7c,
 0x7b7b},
 ---Type <return> to continue, or q <return> to quit---
   v4_int32 = {0x82828282, 0x7d818385, 0x7e7e7f80, 0x7b7b7b7c}, v2_int64 =
 {0x7d81838582828282, 0x7b7b7b7c7e7e7f80},
   uint128 = 0x7b7b7b7c7e7e7f807d81838582828282}
 xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
 v16_int8 = {0x4, 0x0, 0x4, 0x0, 0x4, 0x0, 0x4, 0x0, 0x4, 0x0, 0x4, 0x0,
     0x4, 0x0, 0x4, 0x0}, v8_int16 = {0x4, 0x4, 0x4, 0x4, 0x4, 0x4, 0x4,
 0x4}, v4_int32 = {0x40004, 0x40004, 0x40004, 0x40004}, v2_int64 = {
     0x4000400040004, 0x4000400040004}, uint128 =
 0x00040004000400040004000400040004}
 mxcsr          0x1fa0   [ PE IM DM ZM OM UM PM ]
 mm0            {uint64 = 0xa6a6a6a6a6a6a6a6, v2_int32 = {0xa6a6a6a6,
 0xa6a6a6a6}, v4_int16 = {0xa6a6, 0xa6a6, 0xa6a6, 0xa6a6}, v8_int8 = {0xa6,
     0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6}}
 mm1            {uint64 = 0xa6a6a6a6a6a6a6a6, v2_int32 = {0xa6a6a6a6,
 0xa6a6a6a6}, v4_int16 = {0xa6a6, 0xa6a6, 0xa6a6, 0xa6a6}, v8_int8 = {0xa6,
     0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6}}
 mm2            {uint64 = 0xa6a6a6a6a6a6a6a6, v2_int32 = {0xa6a6a6a6,
 0xa6a6a6a6}, v4_int16 = {0xa6a6, 0xa6a6, 0xa6a6, 0xa6a6}, v8_int8 = {0xa6,
     0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6}}
 mm3            {uint64 = 0xa6a6a6a6a6a6a6a6, v2_int32 = {0xa6a6a6a6,
 0xa6a6a6a6}, v4_int16 = {0xa6a6, 0xa6a6, 0xa6a6, 0xa6a6}, v8_int8 = {0xa6,
     0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6}}
 mm4            {uint64 = 0xa6a6a6a6a6a6a6a6, v2_int32 = {0xa6a6a6a6,
 0xa6a6a6a6}, v4_int16 = {0xa6a6, 0xa6a6, 0xa6a6, 0xa6a6}, v8_int8 = {0xa6,
     0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6}}
 mm5            {uint64 = 0xa6a6a6a6a6a6a6a6, v2_int32 = {0xa6a6a6a6,
 0xa6a6a6a6}, v4_int16 = {0xa6a6, 0xa6a6, 0xa6a6, 0xa6a6}, v8_int8 = {0xa6,
     0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6}}
 mm6            {uint64 = 0x20002000200020, v2_int32 = {0x200020,
 0x200020}, v4_int16 = {0x20, 0x20, 0x20, 0x20}, v8_int8 = {0x20, 0x0,
 0x20, 0x0,
     0x20, 0x0, 0x20, 0x0}}
 mm7            {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0,
 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/594#comment:6>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list