[x264-devel] Updated (and hopefully final) threaded slicetype patch
Steven Walters
kemuri9 at gmail.com
Fri Apr 3 23:04:06 CEST 2009
trying the following from a clean git w/ patch x86 mingw build:
./x264.exe --threads 4 --lookahead 250 --keyint 250 -o NUL
../foreman_cif_352x288.yuv --crf 18 --progress -b16 --b-adapt 2
crashes! (1st attempt)
attached is the info relating to the seg fault crash.
-------------- next part --------------
Program received signal SIGSEGV, Segmentation fault.
[Switching to thread 1424.0x524]
0x0044cc2a in x264_slicetype_frame_cost (h=0x23681f0, a=0x262dd60,
frames=0x262dc50, p0=66, p1=68, b=68, b_intra_penalty=0)
at encoder/slicetype.c:268
268 if( frames[b]->i_cost_est[b-p0][p1-b] >= 0 && (!h->param.rc.i_vbv_buffer_size || frames[b]->i_row_satds[b-p0][p1-b][0] != -1) )
(gdb) bt
#0 0x0044cc2a in x264_slicetype_frame_cost (h=0x23681f0, a=0x262dd60,
frames=0x262dc50, p0=66, p1=68, b=68, b_intra_penalty=0)
at encoder/slicetype.c:268
#1 0x0044d16a in x264_slicetype_path_cost (h=0x23681f0, a=0x262dd60,
frames=0x262dc50, path=0x262c72f "", threshold=268435456)
at encoder/slicetype.c:372
#2 0x0044d33c in x264_slicetype_path (h=0x23681f0, a=0x262dd60,
frames=0x262dc50, length=64, max_bframes=16, buffer_size=51,
best_paths=0x262cbf0) at encoder/slicetype.c:411
#3 0x0044d403 in x264_slicetype_path_search (h=0x23681f0, a=0x262dd60,
frames=0x262dc50, length=67, bframes=16, buffer=51)
at encoder/slicetype.c:428
#4 0x0044d84a in x264_slicetype_analyse (h=0x23681f0)
at encoder/slicetype.c:521
#5 0x0044dc74 in x264_slicetype_decide (h=0x23681f0)
at encoder/slicetype.c:607
#6 0x0042dd34 in x264_stack_align ()
#7 0x00427168 in _x264_lookahead_slicetype_decide (h=<incomplete type>)
at encoder/lookahead.c:278
#8 0x00427548 in x264_lookahead_thread (h=<incomplete type>)
at encoder/lookahead.c:371
#9 0x0048ea7b in ptw32_threadStart at 4 ()
#10 0x023681f0 in ?? ()
#11 0x0236e848 in ?? ()
#12 0x00000000 in ?? ()
(gdb) disass $pc-64 $pc+64
Dump of assembler code from 0x44cbea to 0x44cc6a:
0x0044cbea <x264_slicetype_mb_cost+3135>: std
0x0044cbeb <x264_slicetype_mb_cost+3136>: (bad)
0x0044cbec <x264_slicetype_mb_cost+3137>: incl 0x29cc4(%ecx)
0x0044cbf2 <x264_slicetype_mb_cost+3143>: add %bl,0x5e(%ebx)
0x0044cbf5 <x264_slicetype_mb_cost+3146>: pop %edi
0x0044cbf6 <x264_slicetype_mb_cost+3147>: pop %ebp
0x0044cbf7 <x264_slicetype_mb_cost+3148>: ret
0x0044cbf8 <x264_slicetype_frame_cost+0>: push %ebp
0x0044cbf9 <x264_slicetype_frame_cost+1>: mov %esp,%ebp
0x0044cbfb <x264_slicetype_frame_cost+3>: push %edi
0x0044cbfc <x264_slicetype_frame_cost+4>: push %esi
0x0044cbfd <x264_slicetype_frame_cost+5>: push %ebx
0x0044cbfe <x264_slicetype_frame_cost+6>: sub $0x4c,%esp
0x0044cc01 <x264_slicetype_frame_cost+9>: mov 0x8(%ebp),%ebx
0x0044cc04 <x264_slicetype_frame_cost+12>: movl $0x0,-0x1c(%ebp)
0x0044cc0b <x264_slicetype_frame_cost+19>: movl $0x0,-0x20(%ebp)
0x0044cc12 <x264_slicetype_frame_cost+26>: mov 0x1c(%ebp),%eax
0x0044cc15 <x264_slicetype_frame_cost+29>: mov 0x10(%ebp),%edx
0x0044cc18 <x264_slicetype_frame_cost+32>: mov (%edx,%eax,4),%ecx
0x0044cc1b <x264_slicetype_frame_cost+35>: sub 0x14(%ebp),%eax
0x0044cc1e <x264_slicetype_frame_cost+38>: mov 0x18(%ebp),%edx
0x0044cc21 <x264_slicetype_frame_cost+41>: sub 0x1c(%ebp),%edx
0x0044cc24 <x264_slicetype_frame_cost+44>: lea (%eax,%eax,8),%eax
0x0044cc27 <x264_slicetype_frame_cost+47>: lea (%edx,%eax,2),%eax
0x0044cc2a <x264_slicetype_frame_cost+50>: cmpl $0x0,0x29c(%ecx,%eax,4)
0x0044cc32 <x264_slicetype_frame_cost+58>: js 0x44cc72 <x264_slicetype_frame_cost+122>
0x0044cc34 <x264_slicetype_frame_cost+60>: cmpl $0x0,0x1e0(%ebx)
0x0044cc3b <x264_slicetype_frame_cost+67>: je 0x44cc49 <x264_slicetype_frame_cost+81>
0x0044cc3d <x264_slicetype_frame_cost+69>: mov 0xd08(%ecx,%eax,4),%eax
0x0044cc44 <x264_slicetype_frame_cost+76>: cmpl $0xffffffff,(%eax)
0x0044cc47 <x264_slicetype_frame_cost+79>: je 0x44cc72 <x264_slicetype_frame_cost+122>
0x0044cc49 <x264_slicetype_frame_cost+81>: mov 0x1c(%ebp),%ecx
0x0044cc4c <x264_slicetype_frame_cost+84>: mov 0x10(%ebp),%esi
0x0044cc4f <x264_slicetype_frame_cost+87>: mov (%esi,%ecx,4),%eax
0x0044cc52 <x264_slicetype_frame_cost+90>: mov %ecx,%edx
0x0044cc54 <x264_slicetype_frame_cost+92>: sub 0x14(%ebp),%edx
0x0044cc57 <x264_slicetype_frame_cost+95>: mov 0x18(%ebp),%ecx
0x0044cc5a <x264_slicetype_frame_cost+98>: sub 0x1c(%ebp),%ecx
0x0044cc5d <x264_slicetype_frame_cost+101>: lea (%edx,%edx,8),%edx
0x0044cc60 <x264_slicetype_frame_cost+104>: lea (%ecx,%edx,2),%edx
0x0044cc63 <x264_slicetype_frame_cost+107>: mov 0x29c(%eax,%edx,4),%edx
More information about the x264-devel
mailing list