Comment 9 for bug 977866

Revision history for this message
John Leach (johnleach) wrote :

I've done some more digging. Using the gstreamer debugging options, I've at least identified a difference between totem and rhythmbox here.

I can see totem somehow translates the smb:// url to the fuse mount path and just uses the filesrc gstreamer source element to read the file (and can successfully play it):

0:00:00.722405619 2515 0x7ffd6bfd3730 INFO filesrc gstfilesrc.c:374:gst_file_src_set_location: filename : /home/john/.gvfs/music on lion/Music/Therapy/Therapy - Nurse/Teethgrinder.mp3
0:00:00.722418749 2515 0x7ffd6bfd3730 INFO filesrc gstfilesrc.c:375:gst_file_src_set_location: uri : file:///home/john/.gvfs/music%20on%20lion/Music/Therapy/Therapy%20-%20Nurse/Teethgrinder.mp3

rhythmbox doesn't use the fuse mount - instead using the gio_src gstreamer source element. It appears to be continue reading it fine, though as explained above the output goes silent after about 1 or 2 seconds.

0:00:01.292036091 2468 0xf8c8d0 DEBUG gio_src gstgiosrc.c:335:gst_gio_src_get_stream:<source> opened location smb://lion/music/Music/Therapy/Therapy%20-%20Nurse/Teethgrinder.mp3

But I can have gstreamer play the file successfully using giosrc using gst-launch:

gst-launch-0.10 giosrc location="smb://lion/music/Music/Therapy/Therapy - Nurse/Teethgrinder.mp3" ! flump3dec ! autoaudiosink

I've attached debug logs of my gst-launch and the rhythmbox commands attempting to play the same file - using the options GST_DEBUG_NO_COLOR=1 GST_DEBUG="gio_src:5,gio_base_src:5,basesrc:5,gnomevfs:5,filesrc:5"

There are some differences between the two, but I'm not sure what is relevant. In particularly, one appears to be in push mode and one pull. They both read the file in 4k chunks, but rhythmbox does it from a weird initial offset for some reason (perhaps due to it reading metadata info though). Nothing obviously conclusive to me though.