Files with a "#" in the path/filename fail to play

Bug #374305 reported by Stephan Raue
30
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Moovida
Invalid
High
Fernando Casanova

Bug Description

elisa plays no files with a "#" in path/filenames

when i am try play files with a "#" in path/filenames elisa dont play this file. i have reported this bug on gstreamer bugzilla, because gstreamer dont play this files too. gstreamer developers say the application must convert this "#" to %23 (see http://bugzilla.gnome.org/show_bug.cgi?id=581620 and http://sourceforge.net/mailarchive/message.php?msg_name=49E66FD7.7000200%40openelec.tv)

Tags: playback

Related branches

Revision history for this message
laura burbaite (lburbaite) wrote :

Bug Valid.
Tested on Windows 7, release V 1.0.8
I have created a folder with ´#bjork´ with and folder with ´bjork´. I could play the file from ´bjork´ folder and couldn´t from ´#bjork´
Tried with just one file the folder it plays all files except the file with # simbol. I get Gstreamer error. Screen shot attached.

Changed in moovida:
status: New → Confirmed
importance: Undecided → Medium
Revision history for this message
Olivier Tilloy (osomon) wrote :

I can also reproduce with the latest version of Moovida (1.0.8) on Ubuntu Karmic.
Both indexing and playback fail, due to gstreamer not being passed a correctly escaped URI.

Here is an example error log:

WARN MainThread default Nov 04 13:13:08 Gstreamer Resource not found.:gstgnomevfssrc.c(858): gst_gnome_vfs_src_start (): /GstPlayBin:playbin2/GstGnomeVFSSrc:source:
Could not open vfs file "file:///home/osomon/Musique/truc/truc#2.mp3" for reading: File not found (1) (elisa/plugins/poblesec/player_video.py:611)

WARN MainThread default Nov 04 13:13:15 Gstreamer Could not open resource for reading.:gstgnomevfssrc.c(862): gst_gnome_vfs_src_start (): /GstPlayBin:playbin2/GstGnomeVFSSrc:source:
Could not open vfs file "file:///home/osomon/Musique/truc/#truc3.mp3" for reading: Is a directory (25) (elisa/plugins/poblesec/player_video.py:611)

Revision history for this message
Olivier Tilloy (osomon) wrote :

The local resource provider should escape "#" to "%23" when building MediaUri objects to pass to gstreamer.

summary: - elisa plays no files with a "#" in path/filenames
+ Files with a "#" in the path/filename fail to play
Revision history for this message
Olivier Tilloy (osomon) wrote :

Raising the importance as it prevents media indexing AND playback for some files.

Changed in moovida:
importance: Medium → High
Revision history for this message
Olivier Tilloy (osomon) wrote :

Escaping the unsafe characters in filepaths can be achieved using urllib.quote (http://docs.python.org/library/urllib.html#urllib.quote).

Changed in moovida:
milestone: none → bug-fixing-day
Changed in moovida:
assignee: nobody → Fernando Casanova (fcasanova)
Changed in moovida:
status: Confirmed → In Progress
Revision history for this message
Fernando Casanova (fcasanova) wrote :

I found the entry points to fix this Bug.
This bug will probably be fixed next Friday.

Revision history for this message
Fernando Casanova (fcasanova) wrote :

The problem comes from the fact we DON'T quote the paths we send to gstreamer.
We had 2 solutions to fix this:
 - either we quote the paths in the MediaUri and unquote them each time we need to perform a os.path.something
 - or we only quote before sending to gstreamer (player and metadata retrievers).
We decided to go for the second option.

tags: added: playback
Revision history for this message
Fernando Casanova (fcasanova) wrote :

Patch sent for review:
https://www.moovida.com/quality/review/request/%<email address hidden>%3E

Changed in moovida:
milestone: bug-fixing-day → 1.0.9
Changed in moovida:
milestone: 1.0.9 → bug-fixing-day
Revision history for this message
Fernando Casanova (fcasanova) wrote :

Patch merged, however, I cannot mark this bug as solved because images cannot be "played" when they contain a sharp "#" sign.
Needs more investigation, but I think I found the culprit: the MediaUri stores the path up till the sharp sign!
Then the path is used by the cache (elisa-core/elisa/core/utils/caching.py) with a os.path.exists raising an error that the queueing system doesn't report...
't was a tough one to find... I ll fix next Friday.

Olivier Tilloy (osomon)
Changed in moovida:
status: In Progress → Fix Committed
Olivier Tilloy (osomon)
Changed in moovida:
milestone: bug-fixing-day → 1.0.10
Stephan Raue (sraue)
Changed in moovida:
status: Fix Committed → Fix Released
status: Fix Released → Fix Committed
Revision history for this message
dino99 (9d9) wrote :

The latest free moovida 1.09 does not get any maintenance since a while. Now moovidadb.com is supporting Linux and support can be found at : http://www.fluendo.com/faq/

Changed in moovida:
status: Fix Committed → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.