After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 579874 - Totem unable to play audio files over Bluetooth
Totem unable to play audio files over Bluetooth
Status: RESOLVED FIXED
Product: totem
Classification: Core
Component: general
2.26.x
Other All
: Normal normal
: ---
Assigned To: General Totem maintainer(s)
General Totem maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2009-04-22 19:09 UTC by Daniel Qarras
Modified: 2010-02-18 16:36 UTC
See Also:
GNOME target: ---
GNOME version: 2.25/2.26


Attachments
Fix reading from ObexFTP (1.16 KB, patch)
2010-02-18 10:16 UTC, Bastien Nocera
committed Details | Review

Description Daniel Qarras 2009-04-22 19:09:54 UTC
Please describe the problem:
When connecting a phone with audio files over Bluetooth to a computer files can
be browsed, uploaded, and downloaded normally. When double clicking on an audio
file Totem starts but doesn't start playing the file complaining that perhaps
no read permissions for the file.


Steps to reproduce:
1. Connect a device with audio files over Bluetooth
2. Browse the files, make sure they are readable
3. Doubleclick on an audio file, see how playback fails


Actual results:
Playback fails.

Expected results:
Audio is played.

Does this happen every time?
Always.

Other information:
When checking recent files it lists the audio files as "obex://..."
Comment 1 Philip Withnall 2009-04-22 19:23:56 UTC
If you run Totem from the terminal with `totem --debug`, are any error messages printed out when it fails to play over Bluetooth?
Comment 2 Daniel Qarras 2009-04-23 19:52:18 UTC
Thanks for looking into this.

It actually turns out that both Totem and Rhythmbox have the same problem. The error window says:


An error occurred

Could not open location; you might not have permission to open the file.


And in recent documents there is a new entry:


obex: file.mp3


Both players print out similar error when ran in debug mode:


localhost:~/Desktop> totem --debug

(totem:2931): Gtk-WARNING **: Operation not supported by backend

(totem:2931): Gtk-WARNING **: Operation not supported by backend

(totem:2931): Gtk-WARNING **: Operation not supported by backend
** Message: no file info

(totem:2931): GStreamer-WARNING **:
Trying to join task 0x9fb0a98 from its thread would deadlock.
You cannot change the state of an element from its streaming
thread. Use g_idle_add() or post a GstMessage on the bus to
schedule the state change from the main thread.

** Message: Error: Could not open file "/home/dq/.gvfs/Nokia E75/E:/Music/file.mp3" for reading.
gstfilesrc.c(1051): gst_file_src_start (): /GstPlayBin:play/GstFileSrc:source:
system error: Input/output error


localhost:~/Desktop> totem --debug

(totem:8740): Gtk-WARNING **: Operation not supported by backend

(totem:8740): Gtk-WARNING **: Operation not supported by backend

(totem:8740): Gtk-WARNING **: Operation not supported by backend
(totem:8740): Gtk-WARNING **: Operation not supported by backend
** Message: no file info
** Message: Error: Could not open file "/home/dq/.gvfs/Nokia E75/E:/Music/file.mp3" for reading.
gstfilesrc.c(1051): gst_file_src_start (): /GstPlayBin:play/GstFileSrc:source:
system error: Input/output error
Comment 3 Bastien Nocera 2009-04-23 23:00:31 UTC
Does gst-launch with playbin (or playbin2) work when you pass the gvfs URI (instead of the local file path via fuse)?
Comment 4 Daniel Qarras 2009-05-05 21:43:46 UTC
> Does gst-launch with playbin (or playbin2) work when you pass the gvfs URI
> (instead of the local file path via fuse)?

Sorry but I don't know how a correct gvfs URI would like in this case. I tried several variations but received always same kind of errors:


localhost:~> ls .gvfs/Nokia\ E75/E:/Music/file.mp3                   
.gvfs/Nokia E75/E:/Music/file.mp3
localhost:~> gst-launch playbin uri=obex://Nokia\ E75/E:/Music/file.mp3
Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPlayBin:playbin0/GstGioSrc:source: Could not open resource for reading.
Additional debug info:
gstgiosrc.c(313): gst_gio_src_start (): /GstPlayBin:playbin0/GstGioSrc:source:
Could not open location obex://Nokia%20E75/E:/Music/file.mp3 for reading: The specified location is not mounted
Setting pipeline to NULL ...
FREEING pipeline ...


Thanks.
Comment 5 Daniel Qarras 2009-09-06 13:05:21 UTC
Hi, any news on this? This is still issue with latest F11 + updates.

Thanks!
Comment 6 Bastien Nocera 2009-10-06 17:55:23 UTC
That URI is completely wrong:
obex://Nokia\ E75/E:/Music/file.mp3

should be something like:
obex://[Mac address]/E:/Music/file.mp3
Comment 7 Daniel Qarras 2009-10-06 20:21:10 UTC
Thanks for the tip, it seems that there's something fishy going on with gvfs.

I started to browse my phone with GNOME's Bluetooth Manager and browsing works all ok. While that session was still active I tried the following commands:

localhost:~> gvfs-mount -l | grep -A 1 Nokia                     
Mount(0): Nokia E75 -> obex://[00:1E:3A:11:22:33]/
  Type: GDaemonMount
localhost:~> gvfs-ls ~/.gvfs/Nokia\ E75/E:/Music/ | grep file.mp3
file.mp3
localhost:~> gvfs-ls ~/.gvfs/Nokia\ E75/E:/Music/file.mp3
Error: Path not found
localhost:~> gvfs-info -f .gvfs/Nokia\ E75/E:/Music/file.mp3
attributes:
  standard::type: 1
  standard::content-type: audio/mpeg
  standard::name: file.mp3
  standard::icon: audio-mpeg, gnome-mime-audio-mpeg, audio-x-generic, text-x-generic
  standard::display-name: file.mp3
  standard::size: 4292485
  access::can-read: TRUE
  access::can-write: TRUE
  time::modified: 1195604114
  time::modified-usec: 0
  filesystem::free: 42684416
  filesystem::size: 88895488
  filesystem::type: obexftp
  gvfs::backend: obex
localhost:~> gvfs-ls ~/.gvfs/Nokia\ E75/E:/Music/file.mp3   
Error: Path not found
localhost:~> gvfs-cat ~/.gvfs/Nokia\ E75/E:/Music/file.mp3 | mpg123 -q -
^C
localhost:~> gvfs-ls ~/.gvfs/Nokia\ E75/E:/Music/ | grep file.mp3    
Error: Conflict error
localhost:~> gvfs-info -f .gvfs/Nokia\ E75/E:/Music/file.mp3            
attributes:
  standard::type: 1
  standard::content-type: audio/mpeg
  standard::name: file.mp3
  standard::icon: audio-mpeg, gnome-mime-audio-mpeg, audio-x-generic, text-x-generic
  standard::display-name: file.mp3
  standard::size: 4292485
  access::can-read: TRUE
  access::can-write: TRUE
  time::modified: 1195604114
  time::modified-usec: 0
  filesystem::free: 42684416
  filesystem::size: 88895488
  filesystem::type: obexftp
  gvfs::backend: obex
localhost:~> gst-launch playbin uri="obex://[00:1E:3A:11:22:33]/E:/Music/file.mp3"
Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPlayBin:playbin0/GstGioSrc:source: Could not open resource for reading.
Additional debug info:
gstgiosrc.c(324): gst_gio_src_get_stream (): /GstPlayBin:playbin0/GstGioSrc:source:
Could not open location obex://[00:1E:3A:11:22:33]/E:/Music/file.mp3 for reading: Another operation in progress
Setting pipeline to NULL ...
Freeing pipeline ...
localhost:~> gst-launch playbin uri="obex://[00:1E:3A:11:22:33]/E:/Music/file.mp3"
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /GstPlayBin:playbin0/GstGioSrc:source: Could not open resource for reading.
Additional debug info:
gstgiosrc.c(324): gst_gio_src_get_stream (): /GstPlayBin:playbin0/GstGioSrc:source:
Could not open location obex://[00:1E:3A:11:22:33]/E:/Music/file.mp3 for reading: Conflict error
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
localhost:~> gst-launch playbin uri="obex://[00:1E:3A:11:22:33]/E:/Music/file.mp3"
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /GstPlayBin:playbin0/GstGioSrc:source: Could not open resource for reading.
Additional debug info:
gstgiosrc.c(324): gst_gio_src_get_stream (): /GstPlayBin:playbin0/GstGioSrc:source:
Could not open location obex://[00:1E:3A:11:22:33]/E:/Music/file.mp3 for reading: Conflict error
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
localhost:~> gvfs-ls ~/.gvfs/Nokia\ E75/E:/Music/ | grep file.mp3
file.mp3
localhost:~> gvfs-ls ~/.gvfs/Nokia\ E75/E:/Music/ | grep file.mp3
file.mp3
localhost:~> gvfs-ls ~/.gvfs/Nokia\ E75/E:/Music/ | grep file.mp3    
Error: Conflict error

The above "gvfs-cat ... | mpg123 -q -" worked, ie, I heard the audio all ok.
Comment 8 Daniel Qarras 2009-10-23 20:27:24 UTC
This still happens with Fedora 12 Beta using versions

totem-2.28.1-3.fc12.i686
gvfs-1.4.1-1.fc12.i686
Comment 9 Daniel Qarras 2009-11-18 18:25:53 UTC
This is still an issue with Fedora 12 + updates as of 2009-11-18.
Comment 10 Bastien Nocera 2010-02-18 10:16:41 UTC
Created attachment 154116 [details] [review]
Fix reading from ObexFTP

Only works with the new osso-gwobex ObexFTP backend, but works
well enough.
Comment 11 Bastien Nocera 2010-02-18 10:18:07 UTC
You'll need to use the ObexFTP backend from bug 609340, but it works now.

commit e7d13ff52e591c030f0e4413e105e6ae79fcccaa
Author: Bastien Nocera <hadess@hadess.net>
Date:   Thu Feb 18 10:13:23 2010 +0000

    Fix reading from ObexFTP
    
    Only works with the new osso-gwobex ObexFTP backend, but works
    well enough.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=579874
Comment 12 Daniel Qarras 2010-02-18 16:36:49 UTC
Very nice, thanks! I install osso-gwobex from Koji and once a Totem build with the fix above is available in Koji I'll test this. If I remain quiet you can conclude that I'm very happy with this :)