[MPlayer-users] Many bugs with v4l :-(
David Kuehling
dvdkhlng at gmx.de
Wed Feb 19 18:36:48 CET 2003
Hi,
just some days ago I downloaded mplayer-0.90pre4 and encountered two
new bugs. I could verify all those bugs with the cvs snapshot of
20030219.
Bug #1: mencoder crashes when using denoise3d but only if -oac is
mp3lame
cmd: mencoder -tv on:driver=v4l:norm=pal:width=640:height=480 -ovc lavc -lavcopts vcodec=mpeg4 -oac mp3lame -lameopts aq=9:cbr:br=224 -o test.avi -vop denoise3d -v
[...]
MP3 audio selected
Building audio filter chain for 44100Hz/1ch/16bit -> 44100Hz/1ch/16bit...
[libaf] Adding filter dummy
[dummy] Was reinitialized, rate=44100Hz, nch = 1, format = 0x00000001 and bps = 2
[dummy] Was reinitialized, rate=44100Hz, nch = 1, format = 0x00000001 and bps = 2
Writing AVI header...
Program received signal SIGFPE, Arithmetic exception.
[Switching to Thread 1024 (LWP 11301)]
main (argc=16, argv=0xbffffac4) at mencoder.c:840
840 if(lame_param_scale>0) {
(gdb) bt
#0 main (argc=16, argv=0xbffffac4) at mencoder.c:840
(gdb) list
835 } else { // CBR:
836 if(lame_param_br>0) lame_set_brate(lame,lame_param_br);
837 }
838 if(lame_param_mode>=0) lame_set_mode(lame,lame_param_mode); // j-st
839 if(lame_param_ratio>0) lame_set_compression_ratio(lame,lame_param_ratio);
840 if(lame_param_scale>0) {
841 printf("Setting audio input gain to %f\n", lame_param_scale);
842 lame_set_scale(lame,lame_param_scale);
843 }
844 #if HAVE_MP3LAME >= 392
(gdb) print $pc
$2 = (void *) 0x8063a35
(gdb) disas $pc-18 $pc+16
Dump of assembler code from 0x8063a23 to 0x8063a45:
0x8063a23 <main+5247>: fstps (%esp,1)
0x8063a26 <main+5250>: mov 0xffffecd0(%ebp),%ecx
0x8063a2c <main+5256>: push %ecx
0x8063a2d <main+5257>: call 0x8061150 <lame_set_compression_ratio>
0x8063a32 <main+5262>: add $0x10,%esp
0x8063a35 <main+5265>: fldz
0x8063a37 <main+5267>: flds 0x827d150
0x8063a3d <main+5273>: fcomi %st(1),%st
0x8063a3f <main+5275>: fstp %st(1)
0x8063a41 <main+5277>: jbe 0x8063a76 <main+5330>
0x8063a43 <main+5279>: add $0xfffffffc,%esp
End of assembler dump.
(gdb) info reg
feax 0xffffffff -1
ecx 0x83f6128 138371368
edx 0x840bb10 138459920
ebx 0x840bb10 138459920
esp 0xbfffe6a4 0xbfffe6a4
ebp 0xbffffa5c 0xbffffa5c
esi 0x83f6128 138371368
edi 0x8397220 137982496
eip 0x8063a35 0x8063a35
eflags 0x10286 66182
cs 0x23 35
ss 0x2b 43
ds 0x2b 43
es 0x2b 43
fs 0x0 0
gs 0x0 0
fctrl 0x372 882
fstat 0x81a1 33185
ftag 0xffff 65535
fiseg 0x23 35
fioff 0x80f5c17 135224343
foseg 0x2b 43
fooff 0xbfffe5e8 -1073748504
fop 0x7bd 1981
xmm0 {f = {0x0, 0x0, 0x0, 0x0}} {f = {-nan(0x7fffff),
-nan(0x7fffff), -nan(0x7fffff), -nan(0x7fffff)}}
xmm1 {f = {0x0, 0x0, 0x0, 0x0}} {f = {-nan(0x7fffff),
-nan(0x7fffff), -nan(0x7fffff), -nan(0x7fffff)}}
xmm2 {f = {0x0, 0x0, 0x0, 0x0}} {f = {-nan(0x7fffff),
-nan(0x7fffff), -nan(0x7fffff), -nan(0x7fffff)}}
xmm3 {f = {0x0, 0x0, 0x0, 0x0}} {f = {-nan(0x7fffff),
-nan(0x7fffff), -nan(0x7fffff), -nan(0x7fffff)}}
xmm4 {f = {0x0, 0x0, 0x0, 0x0}} {f = {-nan(0x7fffff),
-nan(0x7fffff), -nan(0x7fffff), -nan(0x7fffff)}}
xmm5 {f = {0x0, 0x0, 0x0, 0x0}} {f = {-nan(0x7fffff),
-nan(0x7fffff), -nan(0x7fffff), -nan(0x7fffff)}}
xmm6 {f = {0x0, 0x0, 0x0, 0x0}} {f = {-nan(0x7fffff),
-nan(0x7fffff), -nan(0x7fffff), -nan(0x7fffff)}}
xmm7 {f = {0x0, 0x0, 0x0, 0x0}} {f = {-nan(0x7fffff),
-nan(0x7fffff), -nan(0x7fffff), -nan(0x7fffff)}}
mxcsr 0x1f80 8064
orig_eax 0xffffffff -1
Bug #2: mplayer hangs when trying to seek with v4l input
cmd: mplayer -vo x11 -tv on:driver=v4l:width=640:height=480
after pressing arrow key, mplayer hangs; so I send it SIGINT:
Program received signal SIGINT, Interrupt.
[Switching to Thread 1026 (LWP 11195)]
0x4045bdc1 in nanosleep () from /lib/libc.so.6
(gdb) bt
#0 0x4045bdc1 in nanosleep () from /lib/libc.so.6
#1 0x40485e6e in usleep () from /lib/libc.so.6
#2 0x08125a7d in video_grabber (data=0x83a6d20) at tvi_v4l.c:1265
#3 0x403530ba in pthread_start_thread () from /lib/libpthread.so.0
#4 0x40353101 in pthread_start_thread_event () from /lib/libpthread.so.0
(gdb) frame 2
#2 0x08125a7d in video_grabber (data=0x83a6d20) at tvi_v4l.c:1265
1265 usleep(10000);
(gdb) list
1260 {
1261 for (i = 0; i < priv->nbuf && !priv->shutdown; i++, framecount++) {
1262
1263 if (priv->immediate_mode) {
1264 while (priv->video_cnt == priv->video_buffer_size_max) {
1265 usleep(10000);
1266 if (priv->shutdown) {
1267 return NULL;
1268 }
1269 }
Hope this helps. BTW is there any possibility to update my CVS snapshot
without having to download the whole 3Mb tar every day? This really
is a nuisance with my 56k modem.
David
--
GnuPG public key: http://user.cs.tu-berlin.de/~dvdkhlng/dk.gpg
Fingerprint: B17A DC95 D293 657B 4205 D016 7DEF 5323 C174 7D40
More information about the MPlayer-users
mailing list