[Mplayer-advusers] -vo svga* fail if movie doesn't fit
Dimitar Zhekov
jimmy at is-vn.bg
Fri May 10 08:11:13 CEST 2002
When the movie width or height is larger than the display resolution,
for example a 740x385 movie on a video subsystem capable of maximum
640x480, -vo svga* fail. The old method (-vo svga:old) terminates with
signal 11, because it tries to write outside the video memory, while
the new method (-vo svga) displays the picture shifted. Instead of:
Long time ago, in a galaxy
far, far away...
it appears as:
e ago, in a galaxy Long tim
away... far, far
Novadays monitors are capable of high resolutions, so the bug does
not normally appear on them unless mplayer is called with -x or -y
smaller than the movie width/height.
If the bug is to be fixed by simply showing a diagnostic message and
exiting mplayer gracefully, I can write a patch for that (well anyone
can). Turning zoom on is not an option, it's too slow for -vo svga*.
System Information
operating system: rock-linux 1.7.0-DEV-200204291221
`uname -a`
Linux xos4 2.4.18 #10 Mon Apr 15 22:50:11 EEST 2002 i686 unknown
`ls -l /lib/libc[.-]*`
-rwxr-xr-x 1 root root 1237464 May 3 20:39 libc-2.2.5.so
lrwxrwxrwx 1 root root 13 May 4 20:41 libc.so.6 -> libc-2.2.5.so
X version: none
`gcc -v`
Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.3/specs
gcc version 2.95.3 20010315 (release)
`ld -v`
GNU ld version 2.12.90.0.4 20020408
`as --version`
GNU assembler 2.12.90.0.4 20020408
Copyright 2002 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License. This program has absolutely no warranty.
This assembler was configured for a target of `i686-pc-linux-gnu'.
Hardware & drivers
`cat /proc/cpuinfo`
processor : 0
vendor_id : AuthenticAMD
cpu family : 6
model : 6
model name : AMD Athlon(tm) XP 1700+
stepping : 2
cpu MHz : 1466.769
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow
bogomips : 2922.90
Video card manufacturer and model: Gigabyte GV-GF3200 (GeForce3 Ti200) 64MB DDR
Video driver type & version: svgalib-1.9.13 buildin Riva128/RivaTNT/GeForce driver
Sound card type & driver: Creative Labs SB Live! with the linux kernel OSS driver
The output of mplayer at verbosity level 1:
MPlayer CVS-020509-15:30-2.95.3 (C) 2000-2002 Arpad Gereoffy (see DOCS!)
CPU vendor name: AuthenticAMD max cpuid level: 1
CPU: Advanced Micro Devices Athlon 4 PM Palomino/Athlon MP Multiprocessor/Athlon XP eXtreme Performance (Type: 6, Stepping: 2)
extended cpuid-level: 8
Testing OS support for SSE... yes.
Testing OS support for SSE unmasked exceptions... yes.
Tests of OS support for SSE passed.
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 0
Compiled for x86 CPU with features: MMX MMX2 3DNow 3DNowEx SSE
Reading /home/build/.mplayer/codecs.conf: can't open '/home/build/.mplayer/codecs.conf': No such file or directory
Reading /etc/codecs.conf: 34 audio & 91 video codecs
CommandLine:get_path('font/font.desc') -> '/home/build/.mplayer/font/font.desc'
'-v' '-x' '512' '-y' '348' '/mnt/cdrom/Interview With The Vampire CD#2.avi'
font: can't open file: /home/build/.mplayer/font/font.desc
Using MMX (with tiny bit MMX2) Optimized OnScreenDisplay
Font /usr/share/mplayer/font/font.desc loaded successfully! (163 chars)
Linux RTC init error: No such file or directory
Using usleep() timing
get_path('input.conf') -> '/home/build/.mplayer/input.conf'
Can't open input config file /home/build/.mplayer/input.conf : No such file or directory
Falling back on default (hardcoded) config
Playing /mnt/cdrom/Interview With The Vampire CD#2.avi
Not an URL!
File size is 579493888 bytes
Detected AVI file format!
list_end=0x2286
list_end=0x10F4
======= AVI Header =======
us/frame: 40000 (fps=25.000)
max bytes/sec: 0
padding: 0
MainAVIHeader.dwFlags: (272) HAS_INDEX IS_INTERLEAVED
frames total: 92438 initial: 0
streams: 2
Suggested BufferSize: 0
Size: 576 x 320
==> Found video stream: 0
found 'bih', 40 bytes of 40
======= STREAM Header =======
Type: vids FCC: div3 (33766964)
Flags: 0
Priority: 0 Language: 0
InitialFrames: 0
Rate: 25/1 = 25.000
Start: 0 Len: 92438
Suggested BufferSize: 45410
Quality 5000
Sample size: 0
Regenerating keyframe table for DIVX 3 video
======= VIDEO Format ======
biSize 40
biWidth 576
biHeight 320
biPlanes 1
biBitCount 24
biCompression 861292868='DIV3'
biSizeImage 552960
===========================
list_end=0x217A
==> Found audio stream: 1
found 'wf', 18 bytes of 20
======= STREAM Header =======
Type: auds FCC: (0)
Flags: 0
Priority: 0 Language: 0
InitialFrames: 1
Rate: 48000/1 = 48000.000
Start: 0 Len: 177479040
Suggested BufferSize: 24000
Quality -1
Sample size: 1
list_end=0x2286
======= WAVE Format =======
Format Tag: 8192 (0x2000)
Channels: 5
Samplerate: 48000
avg byte/sec: 48000
Block align: 1
bits/sample: 0
cbSize: 18
Unknown extra header dump: [59] [6] [0] [0] [a8] [a6] [2a] [40] [a8] [a6] [2a] [40] [0] [0] [0] [0] [0] [0]
Broken chunk? chunksize=1394 (id=JUNK)
list_end=0x225D3B1A
Found movie at 0x280C - 0x225D3B1A
Reading INDEX block, 184864 chunks for 92438 frames
Broken chunk? chunksize=0 (id=idx1)
Reading INDEX block, 184864 chunks for 92438 frames
AVI index offset: 0x2808 (movi=0x280C idx0=0x4 idx1=0x5DCC)
Auto-selected AVI audio ID = 1
Auto-selected AVI video ID = 0
AVI: Searching for audio stream (id:1)
AVI video length=397567126
VIDEO: [DIV3] 576x320 24bpp 25.00 fps 860.2 kbps (105.0 kbyte/s)
[V] filefmt:3 fourcc:0x33564944 size:576x320 fps:25.00 ftime:=0.0400
get_path('sub/') -> '/home/build/.mplayer/sub/'
Detected audio codec: [a52] drv:14 (AC3-liba52)
SUB: Detected sub file: /mnt/cdrom/Interview With The Vampire CD#2.txt
SUB: Detected subtitle file format: microdvd
SUB: Read 617 subtitles.
Initializing audio codec...
Selecting Audio Decoder: [liba52] AC3-liba52
dec_audio: Allocating 3840 bytes for input buffer
dec_audio: Allocating 6144 + 65536 = 71680 bytes for output buffer
Using SSE optimized IMDCT transform
AC3: 5.1 (3f+2r+lfe) 48000 Hz 384.0 kbit/s
A52 flags before a52_frame: 0x2A
A52 flags after a52_frame: 0xA
Using MMX optimized resampler
AUDIO: srate=48000 chans=2 bps=2 sfmt=0x10 ratio: 48000->192000
==========================================================================
vo_svga: preinit - maxframes=0
Requested video codec family [ffdivx] (vfm=5) not available (enable it at compile time!)
Opening Video Decoder: [odivx] DivX5Linux lib (odivx mode)
INFO: OpenDivX video codec init OK!
touser
pp 0
VDec: vo config request - 576 x 320, Planar YV12
[PP] Using codec's postprocessing, max q = 9
vo_debug: query(Planar YV12) returned 0x401 (i=0)
Using RIVA driver, 8192KB, Type:nv10, GeForce.
svgalib 1.9.13
svgalib: Failed to initialize mouse.
vo_debug: query(Planar I420) returned 0x0 (i=1)
vo_debug: query(Planar IYUV) returned 0x0 (i=2)
video_out->init(576x320->512x348,flags=0,'MPlayer',0x32315659)
VO: [svga] 576x320 => 512x348 Planar YV12
VO: Description: SVGAlib
VO: Author: Zoltan Mark Vician <se7en at sch.bme.hu>
Using MMX2 for colorspace transform
vo_svga: vo_dbpp == 0, bpp: 32
vo_svga: Looking for the best resolution...
vo_svga: req_w: 512, req_h: 348, bpp: 32
vo_svga: vid_mode: 17, 640x480 15bpp
vo_svga: vid_mode: 18, 640x480 16bpp
vo_svga: vid_mode: 20, 800x600 15bpp
vo_svga: vid_mode: 21, 800x600 16bpp
vo_svga: vid_mode: 23, 1024x768 15bpp
vo_svga: vid_mode: 24, 1024x768 16bpp
vo_svga: vid_mode: 26, 1280x1024 15bpp
vo_svga: vid_mode: 27, 1280x1024 16bpp
vo_svga: vid_mode: 34, 640x480 32bpp
vo_svga: vid_mode: 35, 800x600 32bpp
vo_svga: vid_mode: 36, 1024x768 32bpp
vo_svga: vid_mode: 37, 1280x1024 32bpp
vo_svga: vid_mode: 40, 1152x864 15bpp
vo_svga: vid_mode: 41, 1152x864 16bpp
vo_svga: vid_mode: 43, 1152x864 32bpp
vo_svga: vid_mode: 46, 1600x1200 15bpp
vo_svga: vid_mode: 47, 1600x1200 16bpp
vo_svga: vid_mode: 49, 1600x1200 32bpp
vo_svga: vid_mode: 61, 512x384 15bpp
vo_svga: vid_mode: 62, 512x384 16bpp
vo_svga: vid_mode: 64, 512x384 32bpp
vo_svga: vid_mode: 66, 960x720 15bpp
vo_svga: vid_mode: 67, 960x720 16bpp
vo_svga: vid_mode: 69, 960x720 32bpp
vo_svga: vid_mode: 91, 720x540 15bpp
vo_svga: vid_mode: 92, 720x540 16bpp
vo_svga: vid_mode: 94, 720x540 32bpp
vo_svga: vid_mode: 136, 512x480 15bpp
vo_svga: vid_mode: 137, 512x480 16bpp
vo_svga: vid_mode: 139, 512x480 32bpp
vo_svga: vid_mode: 64
Detected video codec: [odivx] drv:3 prio:0 (OpenDivX (MPEG-4 v2))
vo_svga: SVGAlib resolution: 512x384 32bpp - No video scaling
==========================================================================
[PP] Using codec's postprocessing, max q = 9
AutoQ: setting quality to 9
pp 90
AO: [oss] 48000Hz Stereo Signed 16-bit (Little-Endian)
AO: Description: OSS/ioctl audio output
AO: Author: A'rpi
Start playing...
ao2: 48000 Hz 2 chans Signed 16-bit (Little-Endian)
audio_setup: using '/dev/sound/dsp' dsp device
audio_setup: sample format: Signed 16-bit (Little-Endian) (requested: Signed 16-bit (Little-Endian))
audio_setup: using 2 channels (requested: 2)
audio_setup: using 48000 Hz samplerate (requested: 48000)
audio_setup: frags: 16/16 (4096 bytes/frag) free: 65536
*** [vo] Exporting mp_image_t, 576x320x12bpp YUV planar, 276480 bytes
MPlayer interrupted by signal 11 in module: decode_video
- MPlayer crashed by bad usage of CPU/FPU/RAM. Recompile MPlayer with --enable-debug and make a 'gdb' backtrace and disassembly. For details, see DOCS/bugreports.html section 5.b.
- MPlayer crashed. This shouldn't happen. It can be a bug in the MPlayer code _or_ in your drivers _or_ in your gcc version. If you think it's MPlayer's fault, please read DOCS/bugreports.html and follow instructions there. We can't and won't help unless you provide these informations when reporting a possible bug.
MPlayer interrupted by signal 11 in module: uninit_vo
svgalib: Signal 11: Segmentation fault received.
*** free_stream() called ***
The output of gdb:
Program received signal SIGSEGV, Segmentation fault.
0x4020772c in memcpy () from /lib/libc.so.6
`bt`
#0 0x4020772c in memcpy () from /lib/libc.so.6
#1 0x08063d3e in putbox (x=0, y=32, w=2147483616, h=320, buf=0x8153560 "",
prog=0) at vo_svga.c:600
#2 0x08063dc6 in fillbox (x=0, y=32, w=2147483616, h=320, c=0)
at vo_svga.c:615
#3 0x080637af in draw_osd () at vo_svga.c:430
#4 0x08075ac2 in control (vf=0x81a8318, request=7, data=0x0) at vf_vo.c:48
#5 0x0806fbe2 in decode_video (sh_video=0x81ac5b0,
start=0x81d18a0 "\t{´\036iP߶\016+[÷i!Â\036\f\215»(ßú]\220+\020´Ràã{\001Â@,Pý'÷Òÿ%7`©Jý«âù¨áð\022N£\222!\216\2032u\212n\a\023°àå©*/£DTôTÎt\233\214\"\013Y#I²\211üà\230b8\rÕþ-§¢\215º\003\217\202ýeå\201\235u×K}HJ˹\216P¦X©ÚÜcå\211ýKXÒX\"PÙåT\237w0?ÂÅh\233Ä\035$$yfîj\230äwØ\224®RÆ`¼\221ò\232Od »\"\200\226Ãä½ipq\023AÅÆMm¾¿ÏµT̼Ñ\022\224=m+\017'"..., in_size=16914, drop_frame=0) at dec_video.c:205
#6 0x0804e83e in main (argc=7, argv=0xbffffa74, envp=0xbffffa94)
at mplayer.c:1546
#7 0x401a8541 in __libc_start_main () from /lib/libc.so.6
`disass $eip-32 $eip+32`
Dump of assembler code from 0x4020770c to 0x4020774c:
0x4020770c <memccpy+60>: pop %ebp
0x4020770d <memccpy+61>: ret
0x4020770e <memccpy+62>: mov %esi,%esi
0x40207710 <memcpy>: mov 0xc(%esp,1),%ecx
0x40207714 <memcpy+4>: mov %edi,%eax
0x40207716 <memcpy+6>: mov 0x4(%esp,1),%edi
0x4020771a <memcpy+10>: mov %esi,%edx
0x4020771c <memcpy+12>: mov 0x8(%esp,1),%esi
0x40207720 <memcpy+16>: cld
0x40207721 <memcpy+17>: shr %ecx
0x40207723 <memcpy+19>: jae 0x40207726 <memcpy+22>
0x40207725 <memcpy+21>: movsb %ds:(%esi),%es:(%edi)
0x40207726 <memcpy+22>: shr %ecx
0x40207728 <memcpy+24>: jae 0x4020772c <memcpy+28>
0x4020772a <memcpy+26>: movsw %ds:(%esi),%es:(%edi)
0x4020772c <memcpy+28>: repz movsl %ds:(%esi),%es:(%edi)
0x4020772e <memcpy+30>: mov %eax,%edi
0x40207730 <memcpy+32>: mov %edx,%esi
0x40207732 <memcpy+34>: mov 0x4(%esp,1),%eax
0x40207736 <memcpy+38>: ret
0x40207737 <memcpy+39>: mov %esi,%esi
0x40207739 <memcpy+41>: lea 0x0(%edi,1),%edi
0x40207740 <memcpy+48>: mov (%esp,1),%ebx
0x40207743 <memcpy+51>: ret
0x40207744 <memcpy+52>: push %ebp
0x40207745 <memcpy+53>: mov %esp,%ebp
0x40207747 <memcpy+55>: push %edi
0x40207748 <memcpy+56>: push %esi
0x40207749 <memcpy+57>: push %ebx
0x4020774a <memcpy+58>: call 0x40207740 <memcpy+48>
End of assembler dump.
E-gards: Jimmy
More information about the MPlayer-advusers
mailing list