[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