-
Notifications
You must be signed in to change notification settings - Fork 695
gapless: Make play/next/previous gapless #1306
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I would suggest reconsidering whether sticking to playbin is optimal wrt expected and consistent behaviour across various platforms. Right now, it seems to me current implementation of this class can choose audio output parameters quite frivolously, e.g. cut bit depth of audio track (like 24->16). That's what happens on Raspbian (but not on i386). Of course you might apply some dirty workaround like this one:
But as mentioned earlier it's ugly. IMO bitperfect and gapless playback are the two most critical aspects of any reasonable hi-fi player, and RPi+Mopidy has a great potential to become a reference setup in hi-fi community. So this issue deserves at least rethinking. Thx. |
To be honest I don't disagree, and way back when we did have a non-playbin solution for all of this. However, we have enough changes in flight in this area between converting to gapless and switching to off gst 0.10. So for the very short term I would like to postpone the idea, and then in a release or two we should revisit this. Could you open a new bug for switching off playbin? |
We should also add pause to the list of things to check. Likely we need to change track back and then pause, and also not emit any track change related events. |
I've checked this, and pressing next still breaks streams. So it being fixed by gst1 must have been something else or me testing incorrectly. So we still need to fake this using EOS, or see if something like #1316 can work around it. |
This involves using EOS events to trigger all track changes, or no longer using playbin. Since we don't want to ditch playbin just now it basically works out to having to trigger an EOS in audio, and then just expand our about-to-finish logic to handle play/next/previous cases. Additionally we will need to flush any queues by doing a flushing seek without start or end set.
Once this is solved we will have true gapless with respect to streaming.
The text was updated successfully, but these errors were encountered: