bitfocus / companion-module-studiocoast-vmix

Studiocoast vMix module for Bitfocus Companion
MIT License
32 stars 10 forks source link

replay remaining time displays total duration of recording instead #219

Open BryanCrotaz opened 1 year ago

BryanCrotaz commented 1 year ago

Input 7 & 8 are my two replay channels

Set a button text to $(vmix:input_7_remaining_ss)

Expected Displays remaining duration of current replay event. If the event is 5 seconds long, expect the button to count down from 5 to 0.

Actual Displays total recorded duration. Pause recording and time stops ticking. Start recording again and time starts ticking again.

thedist commented 1 year ago

The vMix API only provides data on the Duration (total runtime of the replay recording), and Position (Current point within that recording), and the time remaining variable is simply duration - position.

vMix does not provide us ANY data about replay events. We don't know how many events there are, their start/stop points, which may be playing, how long is left on the current event/group of events, etc... We can't display data that vMix doesn't provide us with.

BryanCrotaz commented 1 year ago

So what does the input_replay_remaining variable output by this module represent? I would have thought it would be as you described, duration

But instead it appears to be total recorded time. It counts up including during playback.

thedist commented 1 year ago

As long as the replay is recording, the duration of that input will increase.

The position will change based on the playhead. So if you play an event the playhead will jump to that position and increase until the end of the event.

A couple things to keep in mind, there are 2 replay channels, so input_replay_remaining will be whichever input you have named replay. If the A and B replay channels are not linked they will be independent of eachother so will have different remaining times. Also, there's an option to Show live sources in Replay A and B when in Live mode, while this will look like the replay inputs are playing it does not impact the playhead and so will not change the position.

If you look at the Instant Replay Controller in vMix, the playhead at the bottom is the position, so if input_replay_remaining is counting up, that would indicate you're either recording and the playhead isn't playing forward at the same speed. or you're playing in reverse.

BryanCrotaz commented 1 year ago

Ah so remaining is to the end of the recording, not to the end of the current event. Well that's a shame. Not quite sure why that would be useful!

I wanted to trigger automatically cutting back to the previous content when the event finished. I guess that isn't possible without new info from the VMix api.