В сообщении от 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",
.....



Reply via email to