[MPlayer-dev-eng] machine lockup due to xv driver

pl p_l at gmx.fr
Wed Jul 24 10:23:46 CEST 2002


On Wed, Jul 24, 2002 at 01:10:36AM -0400, Nilmoni Deb wrote:
> 
> This is in reference to my earlier post in
> 
> http://mplayerhq.hu/pipermail/mplayer-users/2002-July/018457.html
> 
> My investigattion shows that till cvs 2002/7/19, things are ok but the cvs
> of 2002/7/20 is consistently leading to machine lockup when mplayer is run
> with "-vo xv". I found out (after 10 manual resets, the hard way) that 
> this is due to the changes made for audio and video equalizer handling.
> 
> Here's the tests I ran.
> 
> Test1
> -----
> - get cvs of 2002/7/19
> - version of mplayer.c is 1.527
> - update these files manually: 
> 	video_out.c (1.53), video_out.h (1.37), vo_xv.c (1.105)
> 
> This one has no problems.
> 
> Test2
> -----
> Do everything in test1 and also update mplayer.c to v1.528.
> 
> This one caused hard lockup.
> 
> 
> This means the changes in mplayer.c _alone_ (between v1.527 and v1.528) 
> are triggerring the savage driver bug. It may be working with mga g400
> [x]mga,xv,xvidix and radeon xv,xvidix etc. but its failing with
> the prosavage km133 xv. 
> 
> So I commented out line 1387 of mplayer.c (cvs version v1.528), which is:
> 
> 	set_video_eq( v_hw_equ_cap );
> 
> This change made the lockup problem go away which means something in the
> function set_video_eq( int cap ) is going wrong and causing the lockup.
> 
> While this new problem may be hard to solve, if left unattended, users
> of km133 prosavage video (and other similar chipsets) will be stuck
> forever. I am ready to test out each revision (at the cost of manual
> resets!!), only if somebody is ready to address the issue.
> 
> Here's a part of the output of xvinfo on my system:
> 
>     number of attributes: 5
>       "XV_COLORKEY" (range 0 to 16777215)
>               client settable attribute
>               client gettable attribute (current value is 66046)
>       "XV_BRIGHTNESS" (range -128 to 127)
>               client settable attribute
>               client gettable attribute (current value is 0)
>       "XV_CONTRAST" (range 0 to 255)
>               client settable attribute
>               client gettable attribute (current value is 128)
>       "XV_SATURATION" (range 0 to 255)
>               client settable attribute
>               client gettable attribute (current value is 128)
>       "XV_HUE" (range -180 to 180)
>               client settable attribute
>               client gettable attribute (current value is 0)
> 
> 
> Compare this with the initial values (in video_out.c)
> 
> int vo_gamma_brightness=-101;
> int vo_gamma_saturation=-101;
> int vo_gamma_contrast=-101;
> int vo_gamma_hue=-101;
> 
> Obviously, vo_gamma_saturation and vo_gamma_contrast are outside their
> permitted range. Could this be the problem ?

It is a problem. I reported the bug on the -cvs mailing list as it was
triggered with nvidia drivers. Pontscho commited a quick workaround for
nvidia but the initialization does not seem fixed :/

You might try replacing in libvo/vo_xv.c:
                    if(!port_value && use_reset) continue
by a
                    if(port_value < -100 || port_value > 100) continue;

This should prevent out of range values from being sent to your xv driver
which should ignore them instead of crashing.

-- 
Best regards,
  pl



More information about the MPlayer-dev-eng mailing list