[Mplayer-users] mpeg 16bpp bug - HELP US

Nick Kurshev nickols_k at mail.ru
Sun May 6 13:03:37 CEST 2001


>>About the MMX bug:
>>xv: is OK
>>x11: black screen with sound and OSD
>>sdl: is OK
>>xv: there is no XVideo extension on this depth, strange...
>>x11: is OK (much faster, than x11 on 24bpp or 16bpp without MMX)
>>sdl: is OK, but uses software
>>xv: is OK
>>x11: is OK
>>sdl: is OK
>>xv: no XVideo
>>x11: is OK (slower than with MMX)
>>sdl: is OK - software
>>This bug appears only in 16bpp X11 output. At least at my machine

>SDL has its own YV12->RGB converter, and Xv doesn't require it.
>So only X11, DGA, SVGA and fbdev uses it.
>I spent some time reading that MMX code (i don't know much about MMX)
>and found 3 possible reason:
>1. bad compiler  - can you please send me your binary (with MMX enabled)?
>   i'll try it, if it fails here then problem is in your gcc/as
>   (gcc 2.96 is known to be buggy, and your ld version is also strange,
>   I have 2.9.1 here...)
>2. unsupported MMX instructions - i've seen that movq/movntq is used to
>   store results, if they fail, no image at all. so it's possible too.
>   i hope that Nick or other MMX guru will help me in this.
>3. data alignment. there are some comments about constants must be 8-byte
>   aligned. but there are no special things to ensure this. btw I think
>   that it must work without the alignment too, but slower. Nick?
>1. and 3. should be decided when I try your binary. 2. should be shooted,
>because i got such reports from dual P3 too.
>Also, I've found that MMX is not used for 15bpp. SO 15bpp is always C,
>this way it works.
>(I remembered that 15 and 16 bpp code is the same, and only tables differ.
>it's true for C version, but MMX version doesn't use tables)

O'k - I study code.
1. As I see - there is no segfault (x11: black screen with sound and OSD) since sound exist and stream
is played but without pictures.
2. Only x11 (from x11, xv, sdl) uses rgb15to16mmx and yuv2rgb_mmx.
3. What gcc, gas and ld were used during building project?
4. In general all MMX opcodes (except SSE xmmx related) must work with unaligned data
but on Intel chips they will work slower than non-MMX optimized code. (Alignment is
very significand for Intel chips and less significand for AMD ones).

Resume: IMHO problem in gas. Lets Lukas "havner" Pawelczyk install binutils-2.10.1 if
he does not have it installed.

Best regards! Nick

Mplayer-users mailing list
Mplayer-users at lists.sourceforge.net

More information about the MPlayer-users mailing list