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:
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.
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/Teethgrin der.mp3 c:375:gst_ file_src_ set_location: uri : file:// /home/john/ .gvfs/music% 20on%20lion/ Music/Therapy/ Therapy% 20-%20Nurse/ Teethgrinder. mp3
0:00:00.722418749 2515 0x7ffd6bfd3730 INFO filesrc gstfilesrc.
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/Teethgrin der.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.