В сообщении от Tuesday 23 October 2007 05:46:27 SIEGERSTEIN написал(а): > В сообщении от Tuesday 23 October 2007 05:12:28 SIEGERSTEIN написал(а): > > [encode_x264.so] using cpu capabilities: MMX MMXEXT SSE SSE2 3DNow! > > Floating point exception > > $ > > OK. I understand. By default, transcode compile with 3DNow! support: > > $ ./configure --help > .. > --enable-mmx enable MMX code portions (yes) > --enable-3dnow enable 3DNow code portions (yes) > --enable-sse enable SSE code portions (yes) > --enable-sse2 enable SSE2 code portions (yes) > --enable-altivec enable Altivec code portions (yes) > .. > > May be so "Floating point exception" is take effect? > > I have Intel Pentium Presott Processor, so there is no 3DNow! instruction. > > I recompile transcode with --disable-3dnow, but take the same result. > Is this right option? Why it not working? Why encode_x264.so build with > 3DNow! support ? > > Best,
It seems that the problem in x264 encoder: gdb GNU gdb 6.7 Copyright (C) 2007 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu". (gdb) file transcode Reading symbols from /usr/bin/transcode...done. Using host libthread_db library "/lib/libthread_db.so.1". (gdb) set args -x v4l2,v4l2 -g 640x480 -i /dev/video0 -p /dev/dsp -y x264,lame,avi -N h264,mp3 -o video_out.avi (gdb) run Starting program: /usr/bin/transcode -x v4l2,v4l2 -g 640x480 -i /dev/video0 -p /dev/dsp -y x264,lame,avi -N h264,mp3 -o video_out.avi [Thread debugging using libthread_db enabled] [New Thread 0xb7bb16c0 (LWP 14433)] transcode v1.1.0-alpha4 (C) 2001-2003 Thomas Oestreich, 2003-2007 Transcode Team [transcode] V: auto-probing | /dev/video0 (OK) [transcode] V: import format | (null) in (module=v4l2) [transcode] A: auto-probing | /dev/dsp (OK) [transcode] A: import format | PCM in (module=v4l2) [transcode] V: AV demux/sync | (1) sync AV at initial MPEG sequence [transcode] V: import frame | 640x480 1.33:1 encoded @ UNKNOWN [transcode] V: bits/pixel | 0.234 [transcode] V: decoding fps,frc | 25.000,3 [transcode] V: video format | YUV420 (4:2:0) aka I420 [transcode] A: import format | 0x1 PCM [48000,16,2] [transcode] A: export format | 0x55 MPEG ES Layer 3 [48000,16,2] 128 kbps [transcode] V: export format | h264 [transcode] V: encoding fps,frc | 25.000,3 [transcode] A: bytes per frame | 7680 (7680.000000) [transcode] A: adjustment | [EMAIL PROTECTED] [transcode] V: IA32/AMD64 accel | sse3 sse2 sse mmx cmove asm [transcode] V: video buffer | 10 @ 640x480 [0x2] [transcode] A: audio buffer | 10 @ 48000x2x16 [import_v4l2.so] v1.4.0 (2005-10-08) (video) v4l2 | (audio) pcm [encode_lame.so] v1.1 (2006-11-01) Encodes audio to MP3 using LAME [encode_lame.so] Using LAME 3.97 [encode_x264.so] v0.2.1 (2006-01-27) x264 encoder [multiplex_avi.so] v0.0.2 (2005-12-29) create an AVI stream using avilib [New Thread 0xa5a5bb90 (LWP 14438)] [New Thread 0xa525ab90 (LWP 14439)] [New Thread 0xa4a59b90 (LWP 14440)] [import_v4l2.so] v4l2 audio grabbing [import_v4l2.so] v4l2 video grabbing [import_v4l2.so] resync disabled [import_v4l2.so] video grabbing, driver = saa7134, card = AverMedia AverTV Studio 305 [import_v4l2.so] Pixel format conversion: YUV420 [planar] -> YUV420 [planar] (no conversion) [import_v4l2.so] warning: driver does not support setting parameters (ioctl(VIDIOC_S_PARM) returns "Invalid argument") [import_v4l2.so] checking colour & framerate standards: [import_v4l2.so] [PAL] [import_v4l2.so] receiving 25 frames / sec [import_v4l2.so] frame size: 640x480 [import_v4l2.so] cropcap bounds: 720x578 +0+46 [import_v4l2.so] cropcap defrect: 720x576 +0+48 [import_v4l2.so] cropcap pixelaspect: 54/59 [import_v4l2.so] default cropping: 720x576 +0+48 [import_v4l2.so] 8 buffers available [New Thread 0xa3ed0b90 (LWP 14441)] [New Thread 0xa36cfb90 (LWP 14442)] [encode_x264.so] set display aspect ratio to input [encode_x264.so] using SAR=1/1 [encode_x264.so] using cpu capabilities: MMX MMXEXT SSE SSE2 3DNow! Program received signal SIGFPE, Arithmetic exception. [Switching to Thread 0xb7bb16c0 (LWP 14433)] 0xa5aa4321 in get_qscale (h=0x80d47a0, rce=0xbf991688, rate_factor=64.667029215144737, frame_num=<value optimized out>) at encoder/ratecontrol.c:1003 1003 }; (gdb) encoder/ratecontrol.c from x264: .... 974 /** 975 * modify the bitrate curve from pass1 for one frame 976 */ 977 static double get_qscale(x264_t *h, ratecontrol_entry_t *rce, double rate_factor, int frame_num) 978 { 979 x264_ratecontrol_t *rcc= h->rc; 980 const int pict_type = rce->pict_type; 981 double q; 982 x264_zone_t *zone = get_zone( h, frame_num ); 983 984 double const_values[]={ 985 rce->i_tex_bits * rce->qscale, 986 rce->p_tex_bits * rce->qscale, 987 (rce->i_tex_bits + rce->p_tex_bits) * rce->qscale, 988 rce->mv_bits * rce->qscale, 989 (double)rce->i_count / rcc->nmb, 990 (double)rce->p_count / rcc->nmb, 991 (double)rce->s_count / rcc->nmb, 992 rce->pict_type == SLICE_TYPE_I, 993 rce->pict_type == SLICE_TYPE_P, 994 rce->pict_type == SLICE_TYPE_B, 995 h->param.rc.f_qcompress, 996 rcc->i_cplx_sum[SLICE_TYPE_I] / rcc->frame_count[SLICE_TYPE_I], 997 rcc->i_cplx_sum[SLICE_TYPE_P] / rcc->frame_count[SLICE_TYPE_P], 998 rcc->p_cplx_sum[SLICE_TYPE_P] / rcc->frame_count[SLICE_TYPE_P], 999 rcc->p_cplx_sum[SLICE_TYPE_B] / rcc->frame_count[SLICE_TYPE_B], 1000 (rcc->i_cplx_sum[pict_type] + rcc->p_cplx_sum[pict_type]) / rcc->frame_count[pict_type], 1001 rce->blurred_complexity, 1002 0 1003 }; 1004 static const char *const_names[]={ 1005 "iTex", 1006 "pTex", 1007 "tex", .....
