YepIt is repaired.
Does it means "make package-win32-base" is fixed or the "Screen saver & power saving killed by VLC" is fixed?j-b wrote:
It is repaired.
It means make package-win32-base is fixed. I will do public test release next week so people can test it (so this won't make to 0.9.5).Does it means "make package-win32-base" is fixed or the "Screen saver & power saving killed by VLC" is fixed?
Thank you for posting this workaround. I can verify this fixed the problem for me too. 0.9.4 with WinXP SP2 also.Still using 0.9.4, but I did notice something wierd. You can re-enable your monitor power settings if you also set a screensaver. Also, monitor power settings work properly after VLC is used if a screensaver is on.
So, just a run down of what I found (to make things clear):
1) Monitor set to power off after x period of time, but no screensaver set. Using VLC will disable monitor power saving. Power settings for monitor only reset if a screensaver is activated or system rebooted.
2) Monitor set to power off after x period of time, screensaver set to activate after y period of time, where y is longer than x. Using VLC will not disable monitor power saving and the monitor will shut off normally.
I didn't conduct this scientifically (I sort of found this via a fluke), so if someone can verify this, I'm sure the VLC team would appreciate it. I'll try out a couple of other things later and post my findings here.
Using 0.9.4 with WinXP SP2.
Sorry for double posting, but I wanted to make sure, that this is also read.Ok, here is the first release.
http://rapidshare.com/files/158307762/v ... e.zip.html
or
http://www.megaupload.com/?d=U0KBVYTE
I removed all old SPI_SETxxx code. Now I use sendinput with VK__none_ and hopefully it works better. VK__none_ is send once in 55 drawing events, so it shouldn't flood things. 55 was chosen because lowest screen saver time is one minute and if video FPS is 1, it won't activate (currently VLC doesn't play low FPS video at all so the value could be bigger).
Changes are made to WinGDI, DirectX and DirectX 3D output modules. There wasn't any screensaver code in OpenGL output, and I haven't tested with OpenGL.
This build has some other issues (like assert crash on shutdown sometimes) but these aren't related to screensaver changes so only report screensaver or powersaving related issues to here.
Code: Select all
Procedure.i Hook_DisableScreenSaver (nCode, wParam, lParam)
If nCode >= 0
If nCode = #HCBT_SYSCOMMAND
If wParam = #SC_SCREENSAVE
Debug "#SC_SCREENSAVE blocked ... "
ProcedureReturn 1
EndIf
EndIf
EndIf
ProcedureReturn CallNextHookEx_(0, nCode, wParam, lParam)
EndProcedure
Code: Select all
hHook = SetWindowsHookEx_(#WH_CBT, @Hook_DisableScreenSaver(), GetModuleHandle_(0), GetCurrentThreadId_())
Code: Select all
UnhookWindowsHookEx_(hHook)
Code: Select all
Procedure.i Hook_DisableMonitorPowerOff (nCode, wParam, lParam)
If nCode >= 0
If nCode = #HCBT_SYSCOMMAND
If wParam = #SC_MONITORPOWER
Debug "#SC_MONITORPOWER blocked ... "
ProcedureReturn 1
EndIf
EndIf
EndIf
ProcedureReturn CallNextHookEx_(0, nCode, wParam, lParam)
EndProcedure
Yes, the message is sent around every sec if a program replies to the first one with -1, and in that case the program must continue to reply to prevent the screensaver to start with a maximum delay of about 5 secs (if there is no keyboard/mouse activity which reset the screensaver countdown).If SC_SCREENSAVE is posted to every program running, some loop jammed program wouldn't handle it all. That would prevent screensaver completely, so I assume there is certain very short time limit to answer to that message. And on some performance critical situations, VLC might not handle it fast enough.
Return to “VLC media player for Windows Troubleshooting”
Users browsing this forum: Google [Bot] and 54 guests