Kodi Community Forum

Full Version: Is DAAP no longer supported - if so, why is it still listed as a source option?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I am a little unclear as to the current state of DAAP support in XBMC.

I currently run XBMC installed via XBMC's stable PPA on Ubuntu 10.10 i686, there is no SVN revision in the sys info, it only says Built on Mar 9 2011 (Git:Unknown).

I am running the mt-daapd DAAP server, availalbe in the Ubuntu 10.10 repos. I am able to add it as a source by selecting: Add Source > Add network location and choosing iiTunes music share (DAAP) as the Protocol.

I can play files when not in library mode, but in library mode I get a playback error. To reproduce, simply add a DAAP server as a source, scan it to the library, browse the library and try to play a song. I only have MP3s, so I don't know if it happens to other codecs as well.

My debug log file from this is here if you are interested: http://www.prupert.co.uk/scripts/xbmc.log careful, it is 16,000 lines long and 1.5MB in size, though here is a snippet of the log when it fails to play:
Code:
22:59:32 T:3021027200 M:2606047232   DEBUG: new file set audiostream:0
22:59:32 T:3021027200 M:2606047232   DEBUG: CPlayerCoreFactory::GetPlayers(musicdb://3/1410/33979.mp3?session-id=5)
22:59:32 T:3021027200 M:2606047232   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: system rules
22:59:32 T:3021027200 M:2606047232   DEBUG: CPlayerSelectionRule::GetPlayers: matches rule: system rules
22:59:32 T:3021027200 M:2606047232   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: rtv
22:59:32 T:3021027200 M:2606047232   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: hdhomerun/myth/rtmp/mms/udp
22:59:32 T:3021027200 M:2606047232   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: lastfm/shout
22:59:32 T:3021027200 M:2606047232   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: rtsp
22:59:32 T:3021027200 M:2606047232   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: streams
22:59:32 T:3021027200 M:2606047232   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: dvd
22:59:32 T:3021027200 M:2606047232   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: dvdfile
22:59:32 T:3021027200 M:2606047232   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: dvdimage
22:59:32 T:3021027200 M:2606047232   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: sdp/asf
22:59:32 T:3021027200 M:2606047232   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: nsv
22:59:32 T:3021027200 M:2606047232   DEBUG: CPlayerCoreFactory::GetPlayers: matched 0 rules with players
22:59:32 T:3021027200 M:2606047232   DEBUG: CPlayerCoreFactory::GetPlayers: adding audiodefaultplayer (3)
22:59:32 T:3021027200 M:2606047232   DEBUG: CPlayerCoreFactory::GetPlayers: for video=0, audio=1
22:59:32 T:3021027200 M:2606047232   DEBUG: CPlayerCoreFactory::GetPlayers: adding player: PAPlayer (3)
22:59:32 T:3021027200 M:2606047232   DEBUG: CPlayerCoreFactory::GetPlayers: for video=1, audio=1
22:59:32 T:3021027200 M:2606047232   DEBUG: CPlayerCoreFactory::GetPlayers: adding player: DVDPlayer (1)
22:59:32 T:3021027200 M:2606047232   DEBUG: CPlayerCoreFactory::GetPlayers: added 2 players
22:59:32 T:3021027200 M:2606047232   ERROR: CAudioDecoder: Unable to Init Codec while loading file musicdb://3/1410/33979.mp3?session-id=5
22:59:32 T:3021027200 M:2606047232   ERROR: Playlist Player: skipping unplayable item: 29, path [musicdb://3/1410/33979.mp3?session-id=5]
22:59:32 T:3021027200 M:2606047232   DEBUG: Playlist Player: one or more items failed to play... aborting playback

It looks like there is no player capable of playing the DAAP protocol in library mode.

I was all set to post a bug report, when I did a few forum searches first.

I found these posts:

http://forum.xbmc.org/showthread.php?tid...light=daap
http://forum.xbmc.org/showthread.php?tid...light=daap
http://forum.xbmc.org/showthread.php?tid...light=daap
http://forum.xbmc.org/showthread.php?tid...light=daap
http://forum.xbmc.org/showthread.php?tid...light=daap

Showing this problem is impacting all platforms and it has got no response from the devs, though admitedly most of these error reports weren't even following the basic guidelines for error reporting.

I then came across this post:

http://forum.xbmc.org/showthread.php?tid...light=daap

Which seems to indicate that as far as the devs are concerned, DAAP is no longer supported.

If this is the case, why then is it still listed as a Network Location and why is there no mention on the DAAP XBMC wiki page (http://wiki.xbmc.org/index.php?title=ITunes_(DAAP)) that support has been fazed out?

I know it is great to continue to add support for new features and platforms, but if this means phasing out other features, it is important to document that as well.

It'd be great to get a final viewpoint on this, because if DAAP isn't supported, I'd love to know what people do to share one common music library across multiple devices with one common playcount record (as XBMC's shared SQL solution doesn't yet seem to support playcount and there is no way marry this solution to syncing with a portable device like an Android phone or iPod).
I suspect (and you're probably in a better position than me to find out) that the reason is because you lose the session-id - i.e. whatever is in the library (check the files/path tables) is missing information in order to actually find the song to play it.

If you can sort that out, then we'd be happy to have it fixed. Effectively you require a stable URL so that given the URL you can play the song.

Cheers,
Jonathan
Hi

Thanks very much for the reply.

I'll have a look through the database and see what I can find. I am not that familiar with mysql, but I am sure I can find something on the net to let me have a basic look at the table.

I'll let you know what I find.

Cheers
So, been doing some digging.

The only difference between what I can see in the library when it doesn't play and what XBMC access direct from the daap server when it does play is the session-id changes.

Here is the log when it succeeds by manually browsing the daap server:

Code:
00:08:23 T:3079452528 M:411508736    INFO: PAPlayer: Playing daap://192.168.1.127:3689/databases/1/items/2.mp3?session-id=13
00:08:23 T:3079452528 M:411508736   DEBUG: PAPlayer: Creating new audio renderer
00:08:23 T:3079452528 M:411815936    INFO: AudioRendererFactory:  not a explicit device, trying to autodetect.
00:08:23 T:3079452528 M:411815936   DEBUG: RemoveActiveDevice - Removing device 1
00:08:23 T:3079452528 M:411815936   DEBUG: CGUIAudioManager::DeInitialize
00:08:25 T:3079452528 M:411496448   DEBUG: SetActiveDevice - SetActiveDevice from 0 to 2
00:08:25 T:3079452528 M:411496448   DEBUG: RemoveActiveDevice - Removing device 0
00:08:25 T:3079452528 M:411230208   DEBUG: PulseAudio: Context authorizing
00:08:25 T:3079452528 M:411230208   DEBUG: PulseAudio: Context setting name
00:08:25 T:3079452528 M:411230208   DEBUG: PulseAudio: Context ready
00:08:25 T:3079452528 M:411230208   DEBUG: PulseAudio: Stream ready
00:08:25 T:3079452528 M:411230208   DEBUG: PulseAudio: Default buffer attributes, maxlength=4194304, tlength=44100, prebuf=40576, minreq=3528
00:08:25 T:3079452528 M:411230208   DEBUG: PulseAudio: Choosen buffer attributes, maxlength=4194304, tlength=44100, prebuf=35280, minreq=3528
00:08:25 T:3079452528 M:411230208   DEBUG: CPulseAudioDirectSound::Initialize - Channels: 2 - SampleRate: 44100 - SampleBit: 16 - Resample false - IsMusic true - IsPassthrough false - audioDevice: default
00:08:25 T:2764012400 M:411230208   DEBUG: thread start, auto delete: 0
00:08:25 T:2764012400 M:411230208   DEBUG: PAPlayer: Thread started
00:08:25 T:3079452528 M:411230208   DEBUG: CAnnouncementManager - Announcement: PlaybackStarted from xbmc


And here it is when it fails when using the library:

Code:
00:20:09 T:3077564272 M:419921920   DEBUG: new file set audiostream:0
00:20:09 T:3077564272 M:419921920   DEBUG: CPlayerCoreFactory::GetPlayers(musicdb://4/7079.mp3?session-id=10)
00:20:09 T:3077564272 M:419921920   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: system rules
00:20:09 T:3077564272 M:419921920   DEBUG: CPlayerSelectionRule::GetPlayers: matches rule: system rules
00:20:09 T:3077564272 M:419921920   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: rtv
00:20:09 T:3077564272 M:419921920   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: hdhomerun/myth/rtmp/mms/udp
00:20:09 T:3077564272 M:419921920   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: lastfm/shout
00:20:09 T:3077564272 M:419921920   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: rtsp
00:20:09 T:3077564272 M:419921920   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: streams
00:20:09 T:3077564272 M:419921920   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: dvd
00:20:09 T:3077564272 M:419921920   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: dvdfile
00:20:09 T:3077564272 M:419921920   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: dvdimage
00:20:09 T:3077564272 M:419921920   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: sdp/asf
00:20:09 T:3077564272 M:419921920   DEBUG: CPlayerSelectionRule::GetPlayers: considering rule: nsv
00:20:09 T:3077564272 M:419921920   DEBUG: CPlayerCoreFactory::GetPlayers: matched 0 rules with players
00:20:09 T:3077564272 M:419921920   DEBUG: CPlayerCoreFactory::GetPlayers: adding audiodefaultplayer (3)
00:20:09 T:3077564272 M:419921920   DEBUG: CPlayerCoreFactory::GetPlayers: for video=0, audio=1
00:20:09 T:3077564272 M:419921920   DEBUG: CPlayerCoreFactory::GetPlayers: adding player: PAPlayer (3)
00:20:09 T:3077564272 M:419921920   DEBUG: CPlayerCoreFactory::GetPlayers: for video=1, audio=1
00:20:09 T:3077564272 M:419921920   DEBUG: CPlayerCoreFactory::GetPlayers: adding player: DVDPlayer (1)
00:20:09 T:3077564272 M:419921920   DEBUG: CPlayerCoreFactory::GetPlayers: added 2 players
00:20:09 T:3077564272 M:419921920   ERROR: CAudioDecoder: Unable to Init Codec while loading file musicdb://4/7079.mp3?session-id=10
00:20:09 T:3077564272 M:419921920   ERROR: Playlist Player: skipping unplayable item: 101, path [musicdb://4/7079.mp3?session-id=10]

Weirdly here, I chose the same song, but the file name is totally different, so I am thinking there is also an error in the library import as well. Are you able to tell me what the "musicdb://4/" refers to, is the 4 the 4th path entry in the music db? If it is, then it is using the wrong path, it should be 2. Also, I notice in the SQL db, in the path table, one of the paths (the one that works when playing in non-library mode) doesn't have a strHash...., is this important?

So, it is recording a session-id, but maybe it is getting the path wrong?
I've taken a quick look in the DB too.
The entries seem to be correct and the Web Interfaces are able to display and play from the library as it should be.
The 'musicdb://...' call seems to resolve a wrong path.
soulchar Wrote:I've taken a quick look in the DB too.
The entries seem to be correct and the Web Interfaces are able to display and play from the library as it should be.
The 'musicdb://...' call seems to resolve a wrong path.

That is also the conclusion I have come to (though interesting that the web interface gets it right, i did't know that).

Unfortunately, I can't as yet decipher the music db entry that is called when trying to play from the library via the GUI.

Looks like we are on the right path to getting this fixed though.

Devs, how can we progress this and help to get it fixed?
This is just a little gentle BUMP.

How can we progress this futher devs to help get this fixed, since it seems to be a problem with the path location entered in the library when scanning DAAP shares....?

Do we need to submit this to a spearate bugzilla / trac site?

I'd love to submit a fix myself if I could, but my coding skills stop at basic VBA in Excel, Syntax in SPSS and Bash in Linux, so I can't help much on that front.
This bug is tracked for 2 years now:
http://trac.xbmc.org/ticket/6540

I think there not enough people who are using a daap server, so it is not important enough Sad
Ahh, bugger, that's a shame. Still can't get why people don't use DAAP more, since it seems like the best solution for multi-PC set-ups.
Maybe you should update the ticket with your findings and some devs might be triggered to fix your problems.
Maybe I am being really dumb, but I can't see anyway to register and thus login to post comments to the bug.......