[MPlayer-advusers] [BUG] Problem with swscaler

Fabio Russo f.russo at sosinformatica.com
Mon Dec 12 16:47:24 CET 2005


Il giorno lun, 12-12-2005 alle 14:18 +0100, Michael Niedermayer ha
scritto:

[...]

> > 0x081e7b90 <hScale_MMX2+478>:   movd   0x4(%esi,
> 
> this looks choped up, if thats really what gdb outputs and not some copy and
> paste error then theres something wrong on your side, if its a copy &paste
> error then try again, and when you are already at it, provide a larger
> area (disass $pc-512 $pc+256 or so)

You're right, I can see it's chopped.
Attaching new gdb dump (disass $pc-512 $pc+256).

-- 
Kind regards,
Fabio Russo

f.russo at sosinformatica.com
-------------- next part --------------
alk at puppalo:~> gdb --args mplayer -v test.avi -vf scale=640:480
GNU gdb 6.2.1
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i586-suse-linux"...Using host libthread_db library "/lib/tls/libthread_db.so.1".

(gdb) r
Starting program: /usr/local/bin/mplayer -v test.avi -vf scale=640:480
[Thread debugging using libthread_db enabled]
[New Thread 1101140064 (LWP 6513)]
Using GNU internationalization
Original domain: messages
Original dirname: /usr/share/locale
Current domain: mplayer
Current dirname: /usr/local/share/locale

MPlayer dev-CVS-051212-10:53-3.3.4 (C) 2000-2005 MPlayer Team
CPU: Intel Pentium 4/Celeron D Prescott; Xeon Nocona (Family: 15, Stepping: 4)
CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled for x86 CPU with extensions: MMX MMX2 SSE SSE2


get_path('codecs.conf') -> '/home/alk/.mplayer/codecs.conf'
Reading /home/alk/.mplayer/codecs.conf: Can't open '/home/alk/.mplayer/codecs.conf': No such file or directory
Reading /usr/local/etc/mplayer/codecs.conf: Can't open '/usr/local/etc/mplayer/codecs.conf': No such file or 
directory
Using built-in default codecs.conf.
CommandLine: '-v' 'test.avi' '-vf' 'scale=640:480'
init_freetype
get_path('font/font.desc') -> '/home/alk/.mplayer/font/font.desc'
font: can't open file: /home/alk/.mplayer/font/font.desc
Font /usr/local/share/mplayer/font/font.desc loaded successfully! (206 chars)
Using MMX (with tiny bit MMX2) Optimized OnScreenDisplay
Failed to open /dev/rtc: Device or resource busy (it should be readable by the user.)
Using nanosleep() timing
get_path('input.conf') -> '/home/alk/.mplayer/input.conf'
Can't open input config file /home/alk/.mplayer/input.conf: No such file or directory
Can't open input config file /usr/local/etc/mplayer/input.conf: No such file or directory
Falling back on default (hardcoded) input config
Setting up LIRC support...
mplayer: could not connect to socket
mplayer: Permission denied
Failed to open LIRC support.
You will not be able to use your remote control.
get_path('test.avi.conf') -> '/home/alk/.mplayer/test.avi.conf'
Playing test.avi.
get_path('sub/') -> '/home/alk/.mplayer/sub/'
[file] File size is 3145728 bytes
STREAM: [file] test.avi
STREAM: Description: File
STREAM: Author: Albeu
STREAM: Comment: based on the code from ??? (probably Arpi)
Detaching after fork from child process 6516.
CACHE_PRE_INIT: 0 [0] 0  pre:0  eof:0
Cache fill:  0.00% (0 bytes)
AVI file format detected.
list_end=0x2292
======= AVI Header =======
us/frame: 40000  (fps=25.000)
max bytes/sec: 0
padding: 0
MainAVIHeader.dwFlags: (272) HAS_INDEX IS_INTERLEAVED
frames  total: 75458   initial: 0
streams: 2
Suggested BufferSize: 0
Size:  680 x 544
==========================
list_end=0x10F4
==> Found video stream: 0
====== STREAM Header =====
Type: vids   FCC: divx (78766964)
Flags: 0
Priority: 0   Language: 0
InitialFrames: 0
Rate: 1000000/40000 = 25.000
Start: 0   Len: 75458
Suggested BufferSize: 91067
Quality 0
Sample size: 0
==========================
Found 'bih', 40 bytes of 40
======= VIDEO Format ======
  biSize 40
  biWidth 680
  biHeight 544
  biPlanes 1
  biBitCount 24
  biCompression 808802372='DX50'
  biSizeImage 1109760
===========================
Regenerating keyframe table for MPEG4 video
list_end=0x2186
==> Found audio stream: 1
====== STREAM Header =====
Type: auds   FCC:  (0)
Flags: 0
Priority: 0   Language: 0
InitialFrames: 1
Rate: 12000/1 = 12000.000
Start: 0   Len: 36220032
Suggested BufferSize: 5312
Quality -1
Sample size: 1
==========================
Found 'wf', 30 bytes of 18
======= WAVE Format =======
Format Tag: 85 (0x55)
Channels: 2
Samplerate: 48000
avg byte/sec: 12000
Block align: 1
bits/sample: 0
cbSize: 12
mp3.wID=1
mp3.fdwFlags=0x2
mp3.nBlockSize=288
mp3.nFramesPerBlock=1
mp3.nCodecDelay=1393
===========================
list_end=0x2292
AVI: dmlh found (size=248) (total_frames=75458)
list_end=0x26AEFB32
Found movie at 0x280C - 0x26AEFB32
cache_stream_seek: WARNING! Can't seek to 0x26AEFB32 !
Auto-selected AVI audio ID = 1
Auto-selected AVI video ID = 0
AVI: Searching for audio stream (id:1)
AVI video size=612167830 (75458)  audio size=36220032
VIDEO:  [DX50]  680x544  24bpp  25.000 fps  1622.5 kbps (198.1 kbyte/s)
[V] filefmt:3  fourcc:0x30355844  size:680x544  fps:25.00  ftime:=0.0400
get_path('sub/') -> '/home/alk/.mplayer/sub/'
get_path('default.sub') -> '/home/alk/.mplayer/default.sub'
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
dec_audio: Allocating 4608 + 65536 = 70144 bytes for output buffer.
mp3lib: made decode tables with MMX optimization
mp3lib: using MMX optimized decore!
MP3lib: init layer2&3 finished, tables done
MPEG 1.0, Layer III, 48000 Hz 96 kbit Joint-Stereo, BPF: 288
Channels: 2, copyright: No, original: Yes, CRC: No, emphasis: 0
AUDIO: 48000 Hz, 2 ch, s16le, 96.0 kbit/6.25% (ratio: 12000->192000)
Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
X11 opening display: :0
vo: X11 color mask:  FFFF  (R:F800 G:7E0 B:1F)
vo: X11 running at 1280x1024 with depth 16 and 16 bpp (":0" => local display)
[x11] Detected wm supports NetWM.
[x11] Detected wm supports FULLSCREEN state.
[x11] Detected wm supports ABOVE state.
[x11] Detected wm supports BELOW state.
[x11] Detected wm supports STAYS_ON_TOP state.
[x11] Current fstype setting honours FULLSCREEN STAYS_ON_TOP ABOVE BELOW X atoms
[xv common] Drawing colorkey manually.
[xv common] Using colorkey from Xv (0x00083e).
[xv common] Maximum source image dimensions: 2046x2046
Opening video filter: [scale w=640 h=480]
SwScale params: 640 x 480 (-1=no scaling)
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
INFO: libavcodec init OK!
Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
==========================================================================
Building audio filter chain for 48000Hz/2ch/s16le -> 0Hz/0ch/??...
[libaf] Adding filter dummy
[dummy] Was reinitialized: 48000Hz/2ch/s16le
[dummy] Was reinitialized: 48000Hz/2ch/s16le
alsa-init: requested format: 48000 Hz, 2 channels, 9
alsa-init: compiled for ALSA-1.0.6
alsa-init: setup for 1/2 channel(s)
alsa-init: 1 soundcard found, using: default
alsa-init: pcm opend in block-mode
alsa-init: chunksize set to 1024
alsa-init: fragcount=16
alsa-init: got buffersize=65536
alsa: 48000 Hz/2 channels/4 bpf/65536 bytes buffer/Signed 16 bit Little Endian
AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample)
AO: Description: ALSA-0.9.x-1.x audio output
AO: Author: Alex Beregszaszi, Zsolt Barat <joy at streamminister.de>
AO: Comment: under developement
Building audio filter chain for 48000Hz/2ch/s16le -> 48000Hz/2ch/s16le...
[dummy] Was reinitialized: 48000Hz/2ch/s16le
[dummy] Was reinitialized: 48000Hz/2ch/s16le
Starting playback...
alsa-space: free space = 65536, prepared --
[ffmpeg] aspect_ratio: 1.250000
VDec: vo config request - 680 x 544 (preferred colorspace: Planar YV12)
Trying filter chain: scale vo
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.25:1 - prescaling to correct movie aspect.
VO Config (680x544->680x544,flags=1,'MPlayer',0x32315659)
SwScaler: reducing / aligning filtersize 6 -> 8
SwScaler: reducing / aligning filtersize 6 -> 8
SwScaler: reducing / aligning filtersize 6 -> 5
SwScaler: reducing / aligning filtersize 6 -> 5

SwScaler: BICUBIC scaler, from Planar YV12 to Planar YV12 using MMX2
SwScaler: using 8-tap MMX scaler for horizontal luminance scaling
SwScaler: using 8-tap MMX scaler for horizontal chrominance scaling
SwScaler: using n-tap MMX scaler for vertical scaling (YV12 like)
SwScaler: 680x544 -> 640x480
REQ: flags=0x437  req=0x0
VO: [xv] 640x480 => 640x512 Planar YV12  [fs]
VO: Description: X11/Xv
VO: Author: Gerd Knorr <kraxel at goldbach.in-berlin.de> and others
Xvideo image format: 0x32595559 (YUY2) packed
Xvideo image format: 0x32315659 (YV12) planar
Xvideo image format: 0x59565955 (UYVY) packed
Xvideo image format: 0x30323449 (I420) planar
using Xvideo port 53 for hw scaling
[xv-fs] dx: 40 dy: 0 dw: 1200 dh: 1024
[xv] dx: 40 dy: 0 dw: 1200 dh: 1024
*** [vo] Allocating mp_image_t, 640x480x12bpp YUV planar, 460800 bytes
*** [scale] Allocating (slices) mp_image_t, 688x544x12bpp YUV planar, 561408 bytes
[xv] dx: 0 dy: 0 dw: 1280 dh: 1024
[xv-fs] dx: 40 dy: 0 dw: 1200 dh: 1024
XXX initial  v_pts=0.000  a_pos=5312 (0.443)   1 ??% ??% ??,?% 0 0 37%
[mpeg4 @ 0x85ff168]frame skip 8
*** [scale] Allocating (slices) mp_image_t, 688x544x12bpp YUV planar, 561408 bytes

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1101140064 (LWP 6513)]
0x081e7b72 in hScale_MMX2 (dst=Variable "dst" is not available.
) at swscale_template.c:2086
2086                    asm volatile(
(gdb) bt
#0  0x081e7b72 in hScale_MMX2 (dst=Variable "dst" is not available.
) at swscale_template.c:2086
Cannot access memory at address 0xfffffd84
(gdb) disass $pc-512 $pc+256
Dump of assembler code from 0x81e7972 to 0x81e7c72:
0x081e7972 <rgb2rgbWrapper+669>:        pop    %ds
0x081e7973 <rgb2rgbWrapper+670>:        or     %ch,%cl
0x081e7975 <rgb2rgbWrapper+672>:        adc    %esi,%edi
0x081e7977 <rgb2rgbWrapper+674>:        (bad)
0x081e7978 <rgb2rgbWrapper+675>:        inc    %edi
0x081e797a <rgb2rgbWrapper+677>:        inc    %ebp
0x081e797b <rgb2rgbWrapper+678>:        call   0x103df297
0x081e7980 <rgb2rgbWrapper+683>:        jmp    0x81e778c <rgb2rgbWrapper+183>
0x081e7985 <rgb2rgbWrapper+688>:        mov    0x18(%ebp),%eax
0x081e7988 <rgb2rgbWrapper+691>:        imul   %ebx,%eax
0x081e798b <rgb2rgbWrapper+694>:        mov    %eax,0x8(%esp)
0x081e798f <rgb2rgbWrapper+698>:        imul   0x14(%ebp),%ecx
0x081e7993 <rgb2rgbWrapper+702>:        mov    0x1c(%ebp),%edx
0x081e7996 <rgb2rgbWrapper+705>:        add    (%edx),%ecx
0x081e7998 <rgb2rgbWrapper+707>:        mov    %ecx,0x4(%esp)
0x081e799c <rgb2rgbWrapper+711>:        mov    0xc(%ebp),%ecx
0x081e799f <rgb2rgbWrapper+714>:        mov    (%ecx),%eax
0x081e79a1 <rgb2rgbWrapper+716>:        mov    %eax,(%esp)
0x081e79a4 <rgb2rgbWrapper+719>:        call   *0xffffffe8(%ebp)
0x081e79a7 <rgb2rgbWrapper+722>:        mov    0x18(%ebp),%eax
0x081e79aa <rgb2rgbWrapper+725>:        add    $0x2c,%esp
0x081e79ad <rgb2rgbWrapper+728>:        pop    %ebx
0x081e79ae <rgb2rgbWrapper+729>:        pop    %esi
0x081e79af <rgb2rgbWrapper+730>:        pop    %edi
0x081e79b0 <rgb2rgbWrapper+731>:        pop    %ebp
0x081e79b1 <rgb2rgbWrapper+732>:        ret
0x081e79b2 <hScale_MMX2+0>:     push   %ebp
0x081e79b3 <hScale_MMX2+1>:     mov    %esp,%ebp
0x081e79b5 <hScale_MMX2+3>:     push   %edi
0x081e79b6 <hScale_MMX2+4>:     push   %esi
0x081e79b7 <hScale_MMX2+5>:     push   %ebx
0x081e79b8 <hScale_MMX2+6>:     mov    %edx,%ebx
0x081e79ba <hScale_MMX2+8>:     sub    $0x2c,%esp
0x081e79bd <hScale_MMX2+11>:    mov    %ecx,0xffffffe8(%ebp)
0x081e79c0 <hScale_MMX2+14>:    mov    %eax,0xfffffff0(%ebp)
0x081e79c3 <hScale_MMX2+17>:    mov    0x18(%ebp),%ecx
0x081e79c6 <hScale_MMX2+20>:    test   $0x3,%cl
0x081e79c9 <hScale_MMX2+23>:    sete   %dl
0x081e79cc <hScale_MMX2+26>:    test   %ecx,%ecx
0x081e79ce <hScale_MMX2+28>:    setg   %al
---Type <return> to continue, or q <return> to quit---
0x081e79d1 <hScale_MMX2+31>:    and    %edx,%eax
0x081e79d3 <hScale_MMX2+33>:    test   $0x1,%al
0x081e79d5 <hScale_MMX2+35>:    je     0x81e7bcf <hScale_MMX2+541>
0x081e79db <hScale_MMX2+41>:    cmp    $0x4,%ecx
0x081e79de <hScale_MMX2+44>:    je     0x81e7a88 <hScale_MMX2+214>
0x081e79e4 <hScale_MMX2+50>:    cmp    $0x8,%ecx
0x081e79e7 <hScale_MMX2+53>:    je     0x81e7b19 <hScale_MMX2+359>
0x081e79ed <hScale_MMX2+59>:    mov    0xffffffe8(%ebp),%eax
0x081e79f0 <hScale_MMX2+62>:    lea    (%ebx,%ebx,1),%esi
0x081e79f3 <hScale_MMX2+65>:    lea    (%ecx,%ecx,1),%edx
0x081e79f6 <hScale_MMX2+68>:    add    %ecx,%eax
0x081e79f8 <hScale_MMX2+70>:    neg    %esi
0x081e79fa <hScale_MMX2+72>:    mov    0x10(%ebp),%edi
0x081e79fd <hScale_MMX2+75>:    mov    %eax,0xffffffec(%ebp)
0x081e7a00 <hScale_MMX2+78>:    mov    %esi,%eax
0x081e7a02 <hScale_MMX2+80>:    shr    $0x1f,%eax
0x081e7a05 <hScale_MMX2+83>:    lea    (%eax,%esi,1),%eax
0x081e7a08 <hScale_MMX2+86>:    and    $0xfffffffe,%eax
0x081e7a0b <hScale_MMX2+89>:    sub    %eax,0x14(%ebp)
0x081e7a0e <hScale_MMX2+92>:    sub    %eax,0xfffffff0(%ebp)
0x081e7a11 <hScale_MMX2+95>:    pxor   %mm7,%mm7
0x081e7a14 <hScale_MMX2+98>:    movq   0x85fc0e0,%mm6
0x081e7a1b <hScale_MMX2+105>:   nop
0x081e7a1c <hScale_MMX2+106>:   lea    0x0(%esi),%esi
0x081e7a20 <hScale_MMX2+110>:   mov    0x14(%ebp),%ecx
0x081e7a23 <hScale_MMX2+113>:   movzwl (%ecx,%esi,1),%eax
0x081e7a27 <hScale_MMX2+117>:   movzwl 0x2(%ecx,%esi,1),%ebx
0x081e7a2c <hScale_MMX2+122>:   mov    0xffffffe8(%ebp),%ecx
0x081e7a2f <hScale_MMX2+125>:   pxor   %mm4,%mm4
0x081e7a32 <hScale_MMX2+128>:   pxor   %mm5,%mm5
0x081e7a35 <hScale_MMX2+131>:   movq   (%edi),%mm1
0x081e7a38 <hScale_MMX2+134>:   movq   (%edi,%edx,1),%mm3
0x081e7a3c <hScale_MMX2+138>:   movd   (%ecx,%eax,1),%mm0
0x081e7a40 <hScale_MMX2+142>:   movd   (%ecx,%ebx,1),%mm2
0x081e7a44 <hScale_MMX2+146>:   punpcklbw %mm7,%mm0
0x081e7a47 <hScale_MMX2+149>:   punpcklbw %mm7,%mm2
0x081e7a4a <hScale_MMX2+152>:   pmaddwd %mm1,%mm0
0x081e7a4d <hScale_MMX2+155>:   pmaddwd %mm2,%mm3
0x081e7a50 <hScale_MMX2+158>:   paddd  %mm3,%mm5
0x081e7a53 <hScale_MMX2+161>:   paddd  %mm0,%mm4
0x081e7a56 <hScale_MMX2+164>:   add    $0x8,%edi
---Type <return> to continue, or q <return> to quit---
0x081e7a59 <hScale_MMX2+167>:   add    $0x4,%ecx
0x081e7a5c <hScale_MMX2+170>:   cmp    0xffffffec(%ebp),%ecx
0x081e7a5f <hScale_MMX2+173>:   jb     0x81e7a35 <hScale_MMX2+131>
0x081e7a61 <hScale_MMX2+175>:   add    %edx,%edi
0x081e7a63 <hScale_MMX2+177>:   psrad  $0x8,%mm4
0x081e7a67 <hScale_MMX2+181>:   psrad  $0x8,%mm5
0x081e7a6b <hScale_MMX2+185>:   packssdw %mm5,%mm4
0x081e7a6e <hScale_MMX2+188>:   pmaddwd %mm6,%mm4
0x081e7a71 <hScale_MMX2+191>:   packssdw %mm4,%mm4
0x081e7a74 <hScale_MMX2+194>:   mov    0xfffffff0(%ebp),%eax
0x081e7a77 <hScale_MMX2+197>:   movd   %mm4,(%eax,%esi,1)
0x081e7a7b <hScale_MMX2+201>:   add    $0x4,%esi
0x081e7a7e <hScale_MMX2+204>:   jae    0x81e7a20 <hScale_MMX2+110>
0x081e7a80 <hScale_MMX2+206>:   add    $0x2c,%esp
0x081e7a83 <hScale_MMX2+209>:   pop    %ebx
0x081e7a84 <hScale_MMX2+210>:   pop    %esi
0x081e7a85 <hScale_MMX2+211>:   pop    %edi
0x081e7a86 <hScale_MMX2+212>:   pop    %ebp
0x081e7a87 <hScale_MMX2+213>:   ret
0x081e7a88 <hScale_MMX2+214>:   lea    (%ebx,%ebx,1),%eax
0x081e7a8b <hScale_MMX2+217>:   mov    0x10(%ebp),%ecx
0x081e7a8e <hScale_MMX2+220>:   mov    0xfffffff0(%ebp),%edi
0x081e7a91 <hScale_MMX2+223>:   mov    %eax,%edx
0x081e7a93 <hScale_MMX2+225>:   lea    (%ecx,%eax,4),%ecx
0x081e7a96 <hScale_MMX2+228>:   mov    0xffffffe8(%ebp),%esi
0x081e7a99 <hScale_MMX2+231>:   neg    %edx
0x081e7a9b <hScale_MMX2+233>:   mov    %edx,%eax
0x081e7a9d <hScale_MMX2+235>:   mov    %edx,0xffffffe4(%ebp)
0x081e7aa0 <hScale_MMX2+238>:   shr    $0x1f,%eax
0x081e7aa3 <hScale_MMX2+241>:   add    %edx,%eax
0x081e7aa5 <hScale_MMX2+243>:   mov    0x14(%ebp),%edx
0x081e7aa8 <hScale_MMX2+246>:   and    $0xfffffffe,%eax
0x081e7aab <hScale_MMX2+249>:   sub    %eax,%edx
0x081e7aad <hScale_MMX2+251>:   sub    %eax,%edi
0x081e7aaf <hScale_MMX2+253>:   mov    0xffffffe4(%ebp),%eax
0x081e7ab2 <hScale_MMX2+256>:   mov    %edx,0x14(%ebp)
0x081e7ab5 <hScale_MMX2+259>:   mov    %edi,0xfffffff0(%ebp)
0x081e7ab8 <hScale_MMX2+262>:   pxor   %mm7,%mm7
0x081e7abb <hScale_MMX2+265>:   movq   0x85fc0e0,%mm6
0x081e7ac2 <hScale_MMX2+272>:   push   %ebp
0x081e7ac3 <hScale_MMX2+273>:   mov    %eax,%ebp
---Type <return> to continue, or q <return> to quit---
0x081e7ac5 <hScale_MMX2+275>:   lea    0x0(%esi),%esi
0x081e7ac9 <hScale_MMX2+279>:   lea    0x0(%edi),%edi
0x081e7ad0 <hScale_MMX2+286>:   movzwl (%edx,%ebp,1),%eax
0x081e7ad4 <hScale_MMX2+290>:   movzwl 0x2(%edx,%ebp,1),%ebx
0x081e7ad9 <hScale_MMX2+295>:   movq   (%ecx,%ebp,4),%mm1
0x081e7add <hScale_MMX2+299>:   movq   0x8(%ecx,%ebp,4),%mm3
0x081e7ae2 <hScale_MMX2+304>:   movd   (%esi,%eax,1),%mm0
0x081e7ae6 <hScale_MMX2+308>:   movd   (%esi,%ebx,1),%mm2
0x081e7aea <hScale_MMX2+312>:   punpcklbw %mm7,%mm0
0x081e7aed <hScale_MMX2+315>:   punpcklbw %mm7,%mm2
0x081e7af0 <hScale_MMX2+318>:   pmaddwd %mm1,%mm0
0x081e7af3 <hScale_MMX2+321>:   pmaddwd %mm2,%mm3
0x081e7af6 <hScale_MMX2+324>:   psrad  $0x8,%mm0
0x081e7afa <hScale_MMX2+328>:   psrad  $0x8,%mm3
0x081e7afe <hScale_MMX2+332>:   packssdw %mm3,%mm0
0x081e7b01 <hScale_MMX2+335>:   pmaddwd %mm6,%mm0
0x081e7b04 <hScale_MMX2+338>:   packssdw %mm0,%mm0
0x081e7b07 <hScale_MMX2+341>:   movd   %mm0,(%edi,%ebp,1)
0x081e7b0b <hScale_MMX2+345>:   add    $0x4,%ebp
0x081e7b0e <hScale_MMX2+348>:   jae    0x81e7ad0 <hScale_MMX2+286>
0x081e7b10 <hScale_MMX2+350>:   pop    %ebp
0x081e7b11 <hScale_MMX2+351>:   add    $0x2c,%esp
0x081e7b14 <hScale_MMX2+354>:   pop    %ebx
0x081e7b15 <hScale_MMX2+355>:   pop    %esi
0x081e7b16 <hScale_MMX2+356>:   pop    %edi
0x081e7b17 <hScale_MMX2+357>:   pop    %ebp
0x081e7b18 <hScale_MMX2+358>:   ret
0x081e7b19 <hScale_MMX2+359>:   lea    (%ebx,%ebx,1),%eax
0x081e7b1c <hScale_MMX2+362>:   mov    0x10(%ebp),%ecx
0x081e7b1f <hScale_MMX2+365>:   mov    0xfffffff0(%ebp),%edi
0x081e7b22 <hScale_MMX2+368>:   mov    %eax,%edx
0x081e7b24 <hScale_MMX2+370>:   lea    (%ecx,%eax,8),%ecx
0x081e7b27 <hScale_MMX2+373>:   mov    0xffffffe8(%ebp),%esi
0x081e7b2a <hScale_MMX2+376>:   neg    %edx
0x081e7b2c <hScale_MMX2+378>:   mov    %edx,%eax
0x081e7b2e <hScale_MMX2+380>:   mov    %edx,0xffffffe4(%ebp)
0x081e7b31 <hScale_MMX2+383>:   shr    $0x1f,%eax
0x081e7b34 <hScale_MMX2+386>:   add    %edx,%eax
0x081e7b36 <hScale_MMX2+388>:   mov    0x14(%ebp),%edx
0x081e7b39 <hScale_MMX2+391>:   and    $0xfffffffe,%eax
0x081e7b3c <hScale_MMX2+394>:   sub    %eax,%edx
---Type <return> to continue, or q <return> to quit---
0x081e7b3e <hScale_MMX2+396>:   sub    %eax,%edi
0x081e7b40 <hScale_MMX2+398>:   mov    0xffffffe4(%ebp),%eax
0x081e7b43 <hScale_MMX2+401>:   mov    %edx,0x14(%ebp)
0x081e7b46 <hScale_MMX2+404>:   mov    %edi,0xfffffff0(%ebp)
0x081e7b49 <hScale_MMX2+407>:   pxor   %mm7,%mm7
0x081e7b4c <hScale_MMX2+410>:   movq   0x85fc0e0,%mm6
0x081e7b53 <hScale_MMX2+417>:   push   %ebp
0x081e7b54 <hScale_MMX2+418>:   mov    %eax,%ebp
0x081e7b56 <hScale_MMX2+420>:   lea    0x0(%esi),%esi
0x081e7b59 <hScale_MMX2+423>:   lea    0x0(%edi),%edi
0x081e7b60 <hScale_MMX2+430>:   movzwl (%edx,%ebp,1),%eax
0x081e7b64 <hScale_MMX2+434>:   movzwl 0x2(%edx,%ebp,1),%ebx
0x081e7b69 <hScale_MMX2+439>:   movq   (%ecx,%ebp,8),%mm1
0x081e7b6d <hScale_MMX2+443>:   movq   0x10(%ecx,%ebp,8),%mm3
0x081e7b72 <hScale_MMX2+448>:   movd   (%esi,%eax,1),%mm0
0x081e7b76 <hScale_MMX2+452>:   movd   (%esi,%ebx,1),%mm2
0x081e7b7a <hScale_MMX2+456>:   punpcklbw %mm7,%mm0
0x081e7b7d <hScale_MMX2+459>:   punpcklbw %mm7,%mm2
0x081e7b80 <hScale_MMX2+462>:   pmaddwd %mm1,%mm0
0x081e7b83 <hScale_MMX2+465>:   pmaddwd %mm2,%mm3
0x081e7b86 <hScale_MMX2+468>:   movq   0x8(%ecx,%ebp,8),%mm1
0x081e7b8b <hScale_MMX2+473>:   movq   0x18(%ecx,%ebp,8),%mm5
0x081e7b90 <hScale_MMX2+478>:   movd   0x4(%esi,%eax,1),%mm4
0x081e7b95 <hScale_MMX2+483>:   movd   0x4(%esi,%ebx,1),%mm2
0x081e7b9a <hScale_MMX2+488>:   punpcklbw %mm7,%mm4
0x081e7b9d <hScale_MMX2+491>:   punpcklbw %mm7,%mm2
0x081e7ba0 <hScale_MMX2+494>:   pmaddwd %mm1,%mm4
0x081e7ba3 <hScale_MMX2+497>:   pmaddwd %mm2,%mm5
0x081e7ba6 <hScale_MMX2+500>:   paddd  %mm4,%mm0
0x081e7ba9 <hScale_MMX2+503>:   paddd  %mm5,%mm3
0x081e7bac <hScale_MMX2+506>:   psrad  $0x8,%mm0
0x081e7bb0 <hScale_MMX2+510>:   psrad  $0x8,%mm3
0x081e7bb4 <hScale_MMX2+514>:   packssdw %mm3,%mm0
0x081e7bb7 <hScale_MMX2+517>:   pmaddwd %mm6,%mm0
0x081e7bba <hScale_MMX2+520>:   packssdw %mm0,%mm0
0x081e7bbd <hScale_MMX2+523>:   movd   %mm0,(%edi,%ebp,1)
0x081e7bc1 <hScale_MMX2+527>:   add    $0x4,%ebp
0x081e7bc4 <hScale_MMX2+530>:   jae    0x81e7b60 <hScale_MMX2+430>
0x081e7bc6 <hScale_MMX2+532>:   pop    %ebp
0x081e7bc7 <hScale_MMX2+533>:   add    $0x2c,%esp
0x081e7bca <hScale_MMX2+536>:   pop    %ebx
---Type <return> to continue, or q <return> to quit---
0x081e7bcb <hScale_MMX2+537>:   pop    %esi
0x081e7bcc <hScale_MMX2+538>:   pop    %edi
0x081e7bcd <hScale_MMX2+539>:   pop    %ebp
0x081e7bce <hScale_MMX2+540>:   ret
0x081e7bcf <hScale_MMX2+541>:   movl   $0x84d51a6,0xc(%esp)
0x081e7bd7 <hScale_MMX2+549>:   movl   $0x7f9,0x8(%esp)
0x081e7bdf <hScale_MMX2+557>:   movl   $0x84d51b2,0x4(%esp)
0x081e7be7 <hScale_MMX2+565>:   movl   $0x84d5414,(%esp)
0x081e7bee <hScale_MMX2+572>:   call   0x809ebd4 <clock+256>
0x081e7bf3 <hyscale_MMX2+0>:    push   %ebp
0x081e7bf4 <hyscale_MMX2+1>:    mov    %esp,%ebp
0x081e7bf6 <hyscale_MMX2+3>:    push   %edi
0x081e7bf7 <hyscale_MMX2+4>:    push   %esi
0x081e7bf8 <hyscale_MMX2+5>:    push   %ebx
0x081e7bf9 <hyscale_MMX2+6>:    sub    $0x3c,%esp
0x081e7bfc <hyscale_MMX2+9>:    mov    %eax,0xffffffec(%ebp)
0x081e7bff <hyscale_MMX2+12>:   mov    %edx,0xffffffe8(%ebp)
0x081e7c02 <hyscale_MMX2+15>:   mov    0x8(%ebp),%eax
0x081e7c05 <hyscale_MMX2+18>:   mov    0xc(%ebp),%edx
0x081e7c08 <hyscale_MMX2+21>:   mov    0x10(%ebp),%ebx
0x081e7c0b <hyscale_MMX2+24>:   mov    %eax,0xffffffdc(%ebp)
0x081e7c0e <hyscale_MMX2+27>:   mov    0x14(%ebp),%eax
0x081e7c11 <hyscale_MMX2+30>:   mov    %edx,0xffffffd8(%ebp)
0x081e7c14 <hyscale_MMX2+33>:   mov    %eax,0xffffffd0(%ebp)
0x081e7c17 <hyscale_MMX2+36>:   mov    0x20(%ebp),%eax
0x081e7c1a <hyscale_MMX2+39>:   mov    %ebx,0xffffffd4(%ebp)
0x081e7c1d <hyscale_MMX2+42>:   mov    %eax,0xffffffc4(%ebp)
0x081e7c20 <hyscale_MMX2+45>:   mov    0x28(%ebp),%eax
0x081e7c23 <hyscale_MMX2+48>:   mov    0x18(%ebp),%edx
0x081e7c26 <hyscale_MMX2+51>:   mov    0x1c(%ebp),%ebx
0x081e7c29 <hyscale_MMX2+54>:   cmp    $0x32595559,%eax
0x081e7c2e <hyscale_MMX2+59>:   mov    %ecx,0xfffffff0(%ebp)
0x081e7c31 <hyscale_MMX2+62>:   mov    %edx,0xffffffcc(%ebp)
0x081e7c34 <hyscale_MMX2+65>:   mov    %ebx,0xffffffc8(%ebp)
0x081e7c37 <hyscale_MMX2+68>:   mov    0x2c(%ebp),%edi
0x081e7c3a <hyscale_MMX2+71>:   je     0x81e7dd0 <hyscale_MMX2+477>
0x081e7c40 <hyscale_MMX2+77>:   cmp    $0x59565955,%eax
0x081e7c45 <hyscale_MMX2+82>:   je     0x81e7e89 <hyscale_MMX2+662>
0x081e7c4b <hyscale_MMX2+88>:   cmp    $0x42475220,%eax
0x081e7c50 <hyscale_MMX2+93>:   je     0x81e7ec0 <hyscale_MMX2+717>
0x081e7c56 <hyscale_MMX2+99>:   cmp    $0x42475218,%eax
---Type <return> to continue, or q <return> to quit---
0x081e7c5b <hyscale_MMX2+104>:  nop
0x081e7c5c <hyscale_MMX2+105>:  lea    0x0(%esi),%esi
0x081e7c60 <hyscale_MMX2+109>:  je     0x81e7f0e <hyscale_MMX2+795>
0x081e7c66 <hyscale_MMX2+115>:  cmp    $0x42475210,%eax
0x081e7c6b <hyscale_MMX2+120>:  nop
0x081e7c6c <hyscale_MMX2+121>:  lea    0x0(%esi),%esi
0x081e7c70 <hyscale_MMX2+125>:  je     0x81e7fe1 <hyscale_MMX2+1006>
End of assembler dump.
(gdb) info all-registers
eax            0x0      0
ecx            0x8827658        142767704
edx            0x8826250        142762576
ebx            0x0      0
esp            0xbfaf3c6c       0xbfaf3c6c
ebp            0xfffffd80       0xfffffd80
esi            0x154    340
edi            0x8835820        142825504
eip            0x81e7b72        0x81e7b72
eflags         0x210203 2163203
cs             0x73     115
ss             0x7b     123
ds             0x7b     123
es             0x7b     123
fs             0x0      0
gs             0x33     51
st0            -nan(0x3f7e3f7e3f7e3f7e) (raw 0xffff3f7e3f7e3f7e3f7e)
st1            -nan(0xff5703f03cb9)     (raw 0xffff0000ff5703f03cb9)
st2            -nan(0x7f007f007f007f)   (raw 0xffff007f007f007f007f)
st3            -nan(0xfeca075a3adbff01) (raw 0xfffffeca075a3adbff01)
st4            -nan(0x1cb3a500030c5b)   (raw 0xffff001cb3a500030c5b)
st5            -nan(0x201456ffffabaa)   (raw 0xffff00201456ffffabaa)
st6            -nan(0x2000200020002)    (raw 0xffff0002000200020002)
st7            <invalid float value>    (raw 0xffff0000000000000000)
fctrl          0x37f    895
fstat          0x120    288
ftag           0xaaaa   43690
fiseg          0x73     115
fioff          0x81081a1        135299489
foseg          0x7b     123
fooff          0xbfaf411c       -1079033572
fop            0x763    1891
xmm0           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {
    0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = 
{
    0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff},
  uint128 = 0xffffffffffffffffffffffffffffffff}
xmm1           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {
    0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = 
{
    0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff},
  uint128 = 0xffffffffffffffffffffffffffffffff}
xmm2           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {
---Type <return> to continue, or q <return> to quit---
    0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = 
{
    0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff},
  uint128 = 0xffffffffffffffffffffffffffffffff}
xmm3           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {
    0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = 
{
    0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff},
  uint128 = 0xffffffffffffffffffffffffffffffff}
xmm4           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {
    0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = 
{
    0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff},
  uint128 = 0xffffffffffffffffffffffffffffffff}
xmm5           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {
    0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = 
{
    0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff},
  uint128 = 0xffffffffffffffffffffffffffffffff}
xmm6           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {
    0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = 
{
    0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff},
  uint128 = 0xffffffffffffffffffffffffffffffff}
xmm7           {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x8000000000000000, 0x8000000000000000}, v16_int8 = {
    0xff <repeats 16 times>}, v8_int16 = {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff}, v4_int32 = 
{
    0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff}, v2_int64 = {0xffffffffffffffff, 0xffffffffffffffff},
  uint128 = 0xffffffffffffffffffffffffffffffff}
mxcsr          0x1f80   8064
mm0            {uint64 = 0x3f7e3f7e3f7e3f7e, v2_int32 = {0x3f7e3f7e, 0x3f7e3f7e}, v4_int16 = {0x3f7e, 0x3f7e, 0x3f7e,
    0x3f7e}, v8_int8 = {0x7e, 0x3f, 0x7e, 0x3f, 0x7e, 0x3f, 0x7e, 0x3f}}
mm1            {uint64 = 0xff5703f03cb9, v2_int32 = {0x3f03cb9, 0xff57}, v4_int16 = {0x3cb9, 0x3f0, 0xff57, 0x0},
  v8_int8 = {0xb9, 0x3c, 0xf0, 0x3, 0x57, 0xff, 0x0, 0x0}}
mm2            {uint64 = 0x7f007f007f007f, v2_int32 = {0x7f007f, 0x7f007f}, v4_int16 = {0x7f, 0x7f, 0x7f, 0x7f},
  v8_int8 = {0x7f, 0x0, 0x7f, 0x0, 0x7f, 0x0, 0x7f, 0x0}}
mm3            {uint64 = 0xfeca075a3adbff01, v2_int32 = {0x3adbff01, 0xfeca075a}, v4_int16 = {0xff01, 0x3adb, 0x75a,
    0xfeca}, v8_int8 = {0x1, 0xff, 0xdb, 0x3a, 0x5a, 0x7, 0xca, 0xfe}}
mm4            {uint64 = 0x1cb3a500030c5b, v2_int32 = {0x30c5b, 0x1cb3a5}, v4_int16 = {0xc5b, 0x3, 0xb3a5, 0x1c},
  v8_int8 = {0x5b, 0xc, 0x3, 0x0, 0xa5, 0xb3, 0x1c, 0x0}}
mm5            {uint64 = 0x201456ffffabaa, v2_int32 = {0xffffabaa, 0x201456}, v4_int16 = {0xabaa, 0xffff, 0x1456, 
0x20},
  v8_int8 = {0xaa, 0xab, 0xff, 0xff, 0x56, 0x14, 0x20, 0x0}}
mm6            {uint64 = 0x2000200020002, v2_int32 = {0x20002, 0x20002}, v4_int16 = {0x2, 0x2, 0x2, 0x2}, v8_int8 = 
{0x2,
    0x0, 0x2, 0x0, 0x2, 0x0, 0x2, 0x0}}
mm7            {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 
0x0,
    0x0, 0x0, 0x0}}
(gdb) k
Kill the program being debugged? (y or n) y
(gdb) q



More information about the MPlayer-advusers mailing list