[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