ggarra13 / mrv2

Professional player and review tool for vfx, animation and computer graphics.
https://mrv2.sourceforge.io
BSD 3-Clause "New" or "Revised" License
190 stars 13 forks source link

Video keeps playing even if mouse is not scrubbing on screen anymore #260

Closed Thane5 closed 1 month ago

Thane5 commented 1 month ago

Describe the bug When i hold down the mouse and move left or right, then stop, the video will keep playing into the last direction that i scrubbed into.

i think it is partially limited by how much the video has buffered already.

It is especially easy to reproduce in this gameplay recording: https://mega.nz/file/YqhkGbja#8du-UDhKrRRMch1djx0bd4bta1HXUYTDEE55-apTp78

ggarra13 commented 1 month ago

I tried your movie and it works fine for me. It keeps playing only if I was playing before scrubbing. Can you:

Do a screen recording of your movie with the F9 (Settings Panel) open so I can see what settings you have?

Sorry to be a bother.

ggarra13 commented 1 month ago

Here's a screen capture of my workflow. I start with the video stopped and tried scrubbing with just 1 Gb of cache and defaults Read Ahead/Read Behind.

https://mega.nz/file/KToCzQqJ#BMtDkPGCSI6Na6M5uCV7Zx3_CVkRZj1SusFCIUe6BSE

AltaArts commented 1 month ago

@ggarra13 :

Here is a small screen cap showing the difference we see. I think the discrepancy in what you are showing is due to when you are un-clicking the mouse button. On my captures, I always had the mouse clicked and then scrubbed back and forth.

"Scrub with Audio" enabled:

if you hold the mouse button and move right it starts scrubbing. But if you stop moving the mouse but keep the mouse clicked, it will keep playing that direction. Once you release the button the playback will stop. I think that is not what the user would expect.

"Scrub with Audio" disabled:

Hold mouse button and move to the right, the scrub only happens while the mouse is actually moving, and then stops when the mouse stops moving. I think that is what the use expects.

For us, the Scrub with Audio turned off works well as we do not tend to need the audio side during scrubbing. But in a perfect world I guess the second method would have audio as well. The second method (audio off) also works better with external jog wheels.

https://github.com/ggarra13/mrv2/assets/86539171/4c6d2fc7-dd5c-4a86-850d-cc92c7bd25c7

Hope it helps.

Thanks much.

ggarra13 commented 1 month ago

@Thane5 Thank you very much for the sample. @AltaArts And a big thanks to you for taking the time to show the issue very clearly. I was indeed not seeing the problem as I am used to releasing the mouse button while scrubbing.

Sadly, I don't have a solution to get both things working nicely together at this point in time, thou.

No GUI toolkit sends a message when there are no events on the user's side. Only when there's some action like moving the mouse, pressing or releasing the button. I can think I might be able to work around it with a timer, albeit I am not keen on the solution as it is not bullet proof and makes the code messy. I will have to experiment to see if that works.

Currently, on the upcoming v1.2.1, you can get the stopping scrubbing behavior if you do any of these:

1) Load a movie or sequence with no audio. 2) Mute the audio temporarily by toggling off the speaker on the timeline playback bar. 3) Release the mouse after dragging. 4) Turning off the Scrub with Audio in the Preferences.

AltaArts commented 1 month ago

That sounds good to me. Again, disabling Scrub with Audio works perfectly fine for us.

Honestly, we have found MRV2 is the best viewer out there when using an external jog wheel since it is not just using key-bindings.

Thanks for looking into it.

JRB.

ggarra13 commented 1 month ago

@Thane5 @AltaArts I managed to improve the behavior of scrubbing with audio so that, if you start it from a Stop state, it will play back audio AND stop as soon as you stop moving the mouse. The only limitations is that: you have to start from a Stop position.

Here are binaries of beta v1.2.1 for you guys to try:

Windows .exe: https://mega.nz/file/rahjFATC#qx3mAr7p9oM02KHjPZdODwGQ0IJk51sWf29143crtWo

Windows .zip: https://mega.nz/file/aLBSVZiJ#3QkIZagQqQmg-mygVBkADlY6YHvlewAScHdu4aKrc9A

Linux .deb: https://mega.nz/file/iD5FmaxT#9MR_85xmTc1Pmh4iqQsJBgQsKNZuyjzT_uYXj5zh8kQ

Linux .rpm: https://mega.nz/file/zLonhILL#o1vlxk5I2aK0KDDSIFq_LAFwMk9jw57xnYYB3l7cd_w

Linux .tar.gz: https://mega.nz/file/XGhByL6R#LpRKaIZQKAgFih6gyb0GsJitUbu4p5raxFeFXLLsxMQ

macOS amd64: https://mega.nz/file/uWxDAQ7C#EvuqxR9o-jZLmogLB6nuTrnXhsIWP9WnxfreE4Lc-fs

macOS arm64: https://mega.nz/file/bbBxzY6J#5R8bSWrLJIhVnqdfIVwyay_WbTr7LM9AnnDKAwyjRDw

AltaArts commented 1 month ago

Wow, that was super fast! I downloaded 1.2.1 (Win10 exe) and it seems to work perfectly here. I tried with and without Scrub with Audio and with .mov's and .exrs. Here are my thoughts:

This is my mapping to my LoupeDeck CT:

This is how I see it react with Scrub with Audio enabled:

I am very happy with the way 1.2.1 works.

Are there any other things that have "broken" with this test version, or can we use it as it is (1.2.1)?

Again, thanks for working on it.

ggarra13 commented 1 month ago

Are there any other things that have "broken" with this test version, or can we use it as it is (1.2.1)?

You can use it as it is. It actually fixes codec support which was broken in v1.2.0. I plan to do an official release of v1.2.1 by the end of the week.

AltaArts commented 1 month ago

Fab! I will. Thanks much.

ggarra13 commented 1 month ago

Fixed in v1.2.1.