[x264-devel] crash in latest version

David Sullivan dad.sullivan at gmail.com
Tue Oct 21 15:15:57 CEST 2008


Hi,
my processor is Intel Core 2 Extreme X9770 supporting the following
instructions:
MMX SSE SSE2 SSE3 SSSE3 SSE4.1 EM64T

I patched the  r999 with Gabriel diff code and the result is that:

1) the string that made x264 crash (x264 c:\mobile_cif.y4m --bitrate 100 -o
mobile.mkv)
now brings to a normal and good compression.
(The instruction uint64_t acs = h->pixf.hadamard_ac[size]( fdec, FDEC_STRIDE
); is executed but doesn't crash)

The displayed capabilities are:

 x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 PHADD SSE4 Cache64
Slow_mod4_stack

2) If I try a compression in two passes, (c:\mobile_cif.y4m --pass 1
--bitrate 100 --stats "mobile.stats" --ref 8 --mixed-refs --bframes 3
--b-adapt 2 --b-pyramid --weightb --direct auto --filter -1:-1 --subme 8
                                                          --trellis 2
--partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --me umh --threads auto
--thread-input --progress --no-psnr --no-ssim -o c:\mob.mkv)

on the first pass (frame 12) and the first time the execution reaches the
instruction uint64_t acs = h->pixf.hadamard_ac[size]( fdec, FDEC_STRIDE ); ,
it crashes.

The displayed capabilities are the same as before:

 x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 PHADD SSE4 Cache64
Slow_mod4_stack


I should find the differences I introduced  defining manually options that
before were default options, focusing I think on partitions.

Am I wrong?

I try more.


 Tnx
David


2008/10/21 Gabriel Bouvigne <gabriel.bouvigne at joost.com>

> Could you please try this patch?
>
> --
> Gabriel
>
> diff --git a/common/pixel.c b/common/pixel.c
> index cf6ae03..adc9d82 100644
> --- a/common/pixel.c
> +++ b/common/pixel.c
> @@ -674,7 +674,8 @@ void x264_pixel_init( int cpu, x264_pixel_function_t
> *pixf )
>         INIT2( sad, _sse2 );
>         INIT2( sad_x3, _sse2 );
>         INIT2( sad_x4, _sse2 );
> -        INIT4( hadamard_ac, _sse2 );
> +        if (!(cpu&X264_CPU_STACK_MOD4))
> +            INIT4( hadamard_ac, _sse2 );
>         INIT_ADS( _sse2 );
>         pixf->var[PIXEL_8x8] = x264_pixel_var_8x8_sse2;
>         pixf->intra_sad_x3_16x16 = x264_intra_sad_x3_16x16_sse2;
> @@ -716,7 +717,8 @@ void x264_pixel_init( int cpu, x264_pixel_function_t
> *pixf )
>         INIT7( satd, _ssse3 );
>         INIT7( satd_x3, _ssse3 );
>         INIT7( satd_x4, _ssse3 );
> -        INIT4( hadamard_ac, _ssse3 );
> +        if (!(cpu&X264_CPU_STACK_MOD4))
> +            INIT4( hadamard_ac, _ssse3 );
>         INIT_ADS( _ssse3 );
>         pixf->sa8d[PIXEL_16x16]= x264_pixel_sa8d_16x16_ssse3;
>         pixf->sa8d[PIXEL_8x8]  = x264_pixel_sa8d_8x8_ssse3;
>
> _______________________________________________
> x264-devel mailing list
> x264-devel at videolan.org
> http://mailman.videolan.org/listinfo/x264-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.videolan.org/pipermail/x264-devel/attachments/20081021/dd6ef4b5/attachment-0001.htm 


More information about the x264-devel mailing list