OK I did bunch of testing with some windows builds I have laying around. My testing methodology was start a mixed smartplaylist by uisng the <p>lay action in the music window playlists node. When playing started I accepted fullscreenvideo window (auto launches if musicvideo is the first item in the musicplaylist) or tabbed into visualisation (if song is the first item in the list). I tested mixed playlist where a song was the first item, and also when a musicvideo was the first item. I also tabbed out of visualisation/full screen video and opened musicplaylist window, but was always in visualisation/full screen video when the playing item ended, next item stated.
Of the builds I have, 18 A1 171225 x86 was the last one that seemed to work correctly. 18 A1 180106 x86 exhibited the error in that:
1. When the first item in the mixed playlist was a musicvideo, when the item ended and the next item was a song, the song would play in videoplayer (Player.HasVideo is true). A frame from the preceding musicvideo was displayed in full screen video window. Using the <y> key (choose player) I was given the options of PAPlayer (default) and videoplayer. If I selected PAPlayer the song would switch to visualisation window and start playing in PAPlayer (Player.HasAudio is true).
2. When the first item in the mixed playlist was a song, when the item ended and the next item was a musicvideo, the musicvideo would play (audio track only of course) in PAPlayer and visualisation window was available. Using the <y> key (choose player) the only option was videoplayer. Selecting that caused playback to end.
It's getting late. Tomorrow I will pull a couple logs from the 180106 build. I also have an 180106 x64 build I can try but don't think that will make any difference.
Update:
I looked at some logs. The playlist is song song musicvideo song song musicvideo musicvideo ...
In both instances CPlayerCoreFactory::GetPlayers process the first song and finds PAPlayer and VideoPlayer
A PAPlayer thread is started and the first two items (songs) are played and the PAPlayer thread exits
CPlayerCoreFactory::GetPlayers is called again for the 3rd item (musicvideo)and again VideoPlayer and PAPlayer are found.
This is where the logs diverge.
In 171225 next is logged VideoPlayer::Openfile: videodb://musicvideos/titles/36?xsp={...}
While in 180106 instead a new PAPlayer thread is started, and that thread just does "Playback started" then OnPlayBackEnded" and terminates.
Things get a bit squirrelly after that as the next item is a song but again the PAPlayer thread starts and exits immediately. Same thing for the next item, also a song, and again the next several items, musicvideos. Finally on a musicvideo item (9th in the list) when the PAPlayer thread starts, it actually starts playback of a musicvideo.
Kodi 18 171225
Kodi 18 180106
Update 2: It seems like PR#13301 touches the code during the 25 Dec - 06 Jan timeframe.
scott s.
.