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
[bugfix] Stack Regression: synchronize m_itemCurrentFile with player state #13298
Conversation
m_appPlayer.ClosePlayer(); | ||
if (m_itemCurrentFile != nullptr) | ||
{ | ||
// wait for m_itemCurrentFile being reset to nullptr (asynch job) |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
xbmc/Application.cpp
Outdated
m_appPlayer.ClosePlayerGapless(newPlayer); | ||
if (m_appPlayer.HasPlayer()) | ||
{ | ||
if (m_appPlayer.CanClosePlayerGapless(newPlayer, item)) |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
|
||
bool gaplessSupported = player->m_type == "music" || (player->m_type == "video" && !item.IsDiscImage() && !item.IsDVDFile()); | ||
gaplessSupported = gaplessSupported && (playername == player->m_name); | ||
return gaplessSupported; |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
// but if we do not stop it, we can not distinguish callbacks from previous | ||
// item and current item, it will confused us then we can not make correct delay | ||
// callback after the starting state. | ||
CloseFile(true); |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
closing in favor of #13301 |
Description
As reported on the team slack channel, when playing music hitting "next" lost current item information.
Upon deeper investigation, the culprit was with how m_itemCurrentFile is not properly synchronized with player state. This PR addresses that issue.
Additionally two special issues had to be dealt with:
Motivation and Context
see above
How Has This Been Tested?
extensive mix of music, video, dvd, stacks, iso stacks.
Screenshots (if appropriate):
Types of change
Checklist: