В сообщении от Tuesday 23 October 2007 06:55:29 SIEGERSTEIN написал(а):
> В сообщении от 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!
>


> [encode_x264.so] using cpu capabilities: MMX MMXEXT SSE SSE2 3DNow!

encoder/encoder.c: (x264)

675      x264_log( h, X264_LOG_INFO, "using cpu 
capabilities: %s%s%s%s%s%s%s%s\n",
   676               param->cpu&X264_CPU_MMX ? "MMX " : "",
   677               param->cpu&X264_CPU_MMXEXT ? "MMXEXT " : "",
   678               param->cpu&X264_CPU_SSE ? "SSE " : "",
   679               param->cpu&X264_CPU_SSE2 ? "SSE2 " : "",
   680               param->cpu&X264_CPU_SSSE3 ? "SSSE3 " : "",
   681               param->cpu&X264_CPU_3DNOW ? "3DNow! " : "",
   682               param->cpu&X264_CPU_ALTIVEC ? "Altivec " : "",
   683               param->cpu ? "" : "none!" );

> 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