[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