savonet/liquidsoap

[Feature Request] : Cross - Next track duration

Opened this issue · 1 comments

Currently, the source.duration() during a cross will return the cross duration, where in most cases we want the duration of the 'next' track. This is particularly problematic when rendering visuals like a progress bar.

At the moment I'm working around this by using the b.metadata available in the transition function to get the duration of the next track as soon as the transition starts ie: request.duration(resolve_metadata=false, b.metadata["filename"]).

This gets close, but can run into issues when the transition function is dynamic, take 'smart cross' for example, where the transition may be a sequence rather than an add.

It would be nice if the .ml implementation of cross could report the duration of the next-track when the next-track's transition in begins

Thanks for submitting. We've historically always had concerns regarding not just remaining time but also track marks: when should track marks be injected when doing crossfades?

I imagine that, ideally, this should be similar to when the metadata changes.

I'll see what I can do for this upcoming release.