-
-
Notifications
You must be signed in to change notification settings - Fork 6.3k
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
Fix state not saved after #5842 if playing from "Recently added". #5958
Conversation
@Montellese or @mkortstiege could you confirm that this is correct? |
Looks valid but i really wonder why recently added items are wrapped in a playlist instead of "just" played. Is there a reason for this behavior? |
Depending on how you start playback within the GUI, there are even more cases where an item gets wrapped into a playlist. I confirm that this change is correct. |
@mkortstiege: Everything should be put into a playlist for playback. There are parts in our code that work based on the assumption that if something is playing there also must be a playlist that contains this item. I've seen quite a few issues with cases where this is not true (playing from skin widgets was one of them). @anaconda: Could it happen that |
410731c
to
84a118f
Compare
(Rebased.) Apart from this PR, it's not used outside of PlaylistPlayer.cpp currently. It explicitly checks for size() <= 1, so no, it can't be true in other cases. |
I'm not sure if we are talking about the same thing. It doesn't really matter where it is used but the question is under what circumstances does it return true. It doesn't really only return true when playing something from recently added but probably also when simply playing a single movie from the library. |
Yeah, that was just me thinking loudly...
That'd be fine too. However, current logic is fine when playing an item from the library ( tl;dr I believe |
84a118f
to
e98d6ab
Compare
OK. I didn't have time to look at the code in detail. I just wanted to be sure this was thought through for most/all possible cases. |
IMO This is a major issue that affects a huge number of users. Isn't this considered for 14.0? |
no it's not considered as there is no agreement on proper fix. |
e98d6ab
to
8b400c7
Compare
Updated to only ignore video playlists as I've noticed an issue with music playlists with this PR (why does music work differently...). As I already store the playlist I've switched to size() instead of IsSingleItemNonRepeatPlaylist() - previous comment, in general, still applies. |
Saw this issue popping up in the following threads too: People that don't know how to compile with this fix are running the nightly's to cope with this issue atm. Moving towards 14.1 and no sign of progress in fixing this seems strange. If I'm not mistaken this PR fixes the regression for current state of confluence recently added homescreen items or third party skin widget items, while not breaking the way-to-go method of creating a playlist for any video played even if it's a single item. So why don't you merge this already and ping ronie to create playlists for items played from the home screen? |
@piejanssens it was not (yet) merged because it could cause other regressions. This needs to be pretty damn sure before it gets merged to 14.1 |
Who can vouch for this? @Montellese maybe? |
What about giving this a try (this is for master) and only backport to Helix if no issues are reported. However, this has been in Milhouse builds for 3 weeks now. |
Another few mentions of this bug highlighting scale of users being affected by this in support threads. I'm not sure the scale of this issue has been properly realised. Starting videos from home shelf is commonplace, and this bug effectively breaks resume points for those users. Resume points are a key feature. This fix missed 14.0 and it looks like its going to miss 14.1 too? :( |
Did not see this PR. But @Montellese I got hundred of reports that resume point does no more work on Kodi. This is a major break as really a lot of people does use JSON to start medias. If I can test or validate things, please tell but this and Webserver crashses on Kodi have made lot's of users unhappy :( |
Can anyone provide a windows build of the latest Helix branch with this commit patched onto it? |
@piejanssens if I did this right, one will be available on http://mirrors.xbmc.org/test-builds/win32/ as "Helix-fix-5842-testing" within an hour. |
It's there. Thanks @NedScott. |
There are builds for all platforms if other people want to test with Win, OS X, Android, or iOS. Just look for "Helix-fix-5842-testing" in the respective OS folder for http://mirrors.xbmc.org/test-builds/ |
I'll test Win, OS X and iOS. STATUS - watched status for widgets Anything missing or irrelevant for testing? |
Per Tolriq, also test playing back something using a smartphone/tablet remote, which should use the JSON-RPC api. In other words, use the a remote (such as Yatse) and launch the video file from the remote, rather than navigating to it on Kodi's GUI. Since this is having a big impact on users right now, I've thrown up the Helix+Recentlyadded-fix builds in the v14.1 testing thread: http://forum.kodi.tv/showthread.php?tid=213108 If desired, I can also start a thread with v15/master+Recentlyadded-fix and ask users to test that as well. |
Return from holidays for me and tons of things to catch up but will also make some testing next week. |
After some testing (Only JSON) I can confirm that the build Helix-fix-5842-testing does fix the JSON related problems about resume point not being set when using Player.Open. Would love this fix in 14.1 to avoid tons of mails per week :) |
Seems enough people have tested this. Time for merge and backports? @Montellese @mkortstiege |
Finally had the time to look at this. I don't think that this is the best fix but I don't have any better ideas either right now so I'm ok with this. Maybe add a remark to the comment that this needs to be re-visited. |
8b400c7
to
69e2b9f
Compare
|
Thanks. |
Fix state not saved after #5842 if playing from "Recently added".
This patch leads to regression. Assume you have a folder with two videos, default zoom is 1.0 for both.
When one video is played, and I start the next one without stopping the first one, settings of first video get overwritten by settings of second video. |
Did you git bisect to determine this? Saving file settings is indeed quite messed up, see the comment this PR adds to Application.cpp. |
At first, https://github.com/xbmc/xbmc/blob/master/xbmc/Application.cpp#L3845 is not a culprit. This line does correct saving of settings for previous video. But then https://github.com/xbmc/xbmc/blob/master/xbmc/Application.cpp#L4399 does incorrect saving of settings because this time https://github.com/xbmc/xbmc/blob/master/xbmc/utils/SaveFileStateJob.cpp#L129 leads to applying next video settings to previous video (progressTrackingFile is still previous video). So settings for previous video are rewritten by settings of next video. This is what issue #5842 about. I put my comment here, because this PR leads to regression. If the line https://github.com/xbmc/xbmc/blob/master/xbmc/Application.cpp#L4398 looks like If that line looks like before: |
Thanks. I'll try to look into this - unfortunately I'm pretty busy right now (and I will be for a while). |
See:
Playing something from "Recently added" creates a play list with a single item. Oops.
Needs backport to Helix