I've noticed this in the past and I've finally just decided to actually vocialise this issue. When idle (movie is on screen but paused) I've noticed that VLC will have an abnormally high CPU (5-10%). It's not doing anything but just waiting, so I would expect that it would have a idle CPU of 0 to mayby 0.5%. So, what it is doing? Some sort of spin lock?
I've got some dump files of the issue (three taken within 10 seconds of each other), if that helps. Version that I'm using is 3.0.8 Ventinari jenkins@8a458393186d on Windows 8.1. Looking at the threads using Process Explorer, the following is the call stack of the thread eating the CPU:
Code: Select all
ntoskrnl.exe!KeSynchronizeExecution+0x2106
ntoskrnl.exe!KeWaitForMultipleObjects+0x135e
ntoskrnl.exe!KeWaitForMultipleObjects+0xdd9
ntoskrnl.exe!KeWaitForMutexObject+0x373
ntoskrnl.exe!KeStallWhileFrozen+0x1feb
ntoskrnl.exe!__misaligned_access+0x13fd
ntoskrnl.exe!KeWaitForMultipleObjects+0x152f
ntoskrnl.exe!KeWaitForMultipleObjects+0xdd9
ntoskrnl.exe!InitializeSListHead+0xbc7
ntoskrnl.exe!EtwRegister+0x212
ntoskrnl.exe!_setjmpex+0x6553
wow64cpu.dll!TurboDispatchJumpAddressEnd+0x598
wow64cpu.dll!TurboDispatchJumpAddressEnd+0x46e
wow64.dll!Wow64LdrpInitialize+0x23a
wow64.dll!Wow64LdrpInitialize+0x172
ntdll.dll!LdrInitializeThunk+0x12b
ntdll.dll!LdrInitializeThunk+0xe
ntdll.dll!NtWaitForAlertByThreadId+0xc
KERNELBASE.dll!SleepConditionVariableCS+0x20
libvlccore.dll!vlc_rand_bytes+0xa20
Code: Select all
KERNELBASE.dll!InitOnceExecuteOnce+0x17
Restarting vlc results in the same issue, so it is very reproducible. If I've not not paused a playing a video, i.e. I'm looking at the playlist, I get an expected CPU profile close to 0%.
I don't always finish watching a video, but would like to continue where I left off, so pausing it is a good option. I've also noticed that the continue from last place I stopped is kinda flaky (can lose its spot easily) so that isn't really an option.
Thanks for any help in advance.
A