In VLC 2, "next frame" was quite slow, so you could easily step frames by tapping "E". In VLC 4, you almost get full playback speed when holding "E" and you almost can't tap quickly enough to step a single frame.
Suggest to make the delay after pressing "E" the first time several hundred milliseconds, and then after that the delays can be as short as possible.
VLC version 4.0.0-dev Otto Chriek (4.0.0-dev-565-g7cf5d92e)
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
E works fine, but E has become very fast in VLC 4, so even if you tap E incredibly fast in attempt to step just one frame, you may still risk that it steps two frames, or maybe even three.
(Holding down E in VLC 4 actually plays the video faster than normal playback! Whereas in VLC 2, holding down E played the video at just a few frames per second)
VLC should have a "next frame" function that lets the user step ONE frame -- easily! My suggestion:
User holds E
VLC steps a single frame
A timer of 500 ms counts down
VLC steps another frame when the timer reaches zero
VLC steps another frame (short or no delay)
Ditto ad infinitum
Alternatively, introduce a new key (Shift + E or something) that steps just ONE frame per key down:
User presses or holds the key
VLC steps one frame
(Nothing more happens until user lets go of the key)
Are we talking past each other? My report is that it's difficult / impossible to step ONE frame at a time, because E is so fast in VLC 4, that it easily step 2-3 frames before you even manage to release the key.
How do I, as a user, step ONE frame in VLC 4? My current action is to press and release E insanely fast and pray to the laws of chance it doesn't skip more than one frame. But I really have no control over this.
What I would like, is a stress-free, reliable way to skip frames. One keypress. One frame.
I have no problem with the E shortcut on macOS, there is, as expected, a slight delay before key-repeat kicks in and it would skip more than one frame.
Ah. I think I realise the cause now. I have Key Repeat "Fast" and Delay Until Repeat "Short" in System Preferences. This I've always had for all my computing years because I'm a fast typer.
However, with VLC 4, controlled frame stepping becomes impossible. I would still argue that E should step one frame, and then wait for key release and key repress before stepping another frame.
Holding (and occasionally releasing) E to sort of sweep or stumble through a movie doesn't seem useful or user friendly. I'd use the playback speed slider for continuous slow playback through a scene.
If I set "Key Repeat" to "Off" in macOS System Preferences, E works like expected: It steps one frame per press. (You have to let go of the key and press again to step another frame).
However, no-one has "Key Repeat" set to "Off". Then you can't hold down cursor keys to scroll through code, etc. So VLC must be changed to step one key per press, regardless of OS settings.
I don't know the keyboard programming interfaces for individual desktop OS-es, but it sounds like your checking for an event which sends "pulses" of keys that adheres to the system setting mentioned.
I know from iOS and JavaScript you can check directly for "key down" and "key up", so by using simple boolean logic, you can refuse to skip more frames until the user has released the key and pressed it again.
If this requires special case programming for each OS just for this key/function, I agree that it's maybe not worth it. But if generic code can be made, it doesn't take many lines of code.
At any rate, the way E works now is not very useful, because with "Fast" repeat speed, the video actually plays faster than normal playback -- which it didn't do in VLC 2, probably due to optimisations in VLC 4.