Summary: | can't play files with # in the filename | ||
---|---|---|---|
Product: | [Frameworks and Libraries] Phonon | Reporter: | Mikko C. <mikko.cal> |
Component: | Xine backend | Assignee: | Matthias Kretz <kretz> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | a.m.p.boelens, ch_schmidt, dawan, dflogeras2, diego.ml, fomin.develop, jakob.kummerow, jesperol, kde, kvikende, kz24bls02, mmk+bugs, sahilahuja, schwab, tictoc |
Priority: | NOR | ||
Version: | 4.3.0 (KDE 4.2.0) | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 4.4.1 | |
Sentry Crash Report: | |||
Attachments: | proposed simple patch, including only # |
Description
Mikko C.
2009-06-01 18:10:46 UTC
And this is the output of Dragon Player trying to play the same file, which it can't play: dragonplayer(13472)/phonon (KDE plugin) Phonon::KioMediaStream::KioMediaStream: dragonplayer(13472)/phonon (KDE plugin) Phonon::KioMediaStream::reset: dragonplayer(13472)/phonon (KDE plugin) Phonon::KioMediaStream::reset: dragonplayer(13472)/kio (Slave) KIO::Slave::createSlave: createSlave "file" for KUrl("file:///mnt/mybook/Mp3/A/Air - [2001] 10000 Hz Legend/03 - Radio %231.mp3") dragonplayer(13472)/kio (KIOConnection) KIO::ConnectionServer::listenForRemote: Listening on "local:/tmp/ksocket-mikko/dragonplayerH13472.slave-socket" dragonplayer(13472)/phonon (KDE plugin) Phonon::KioMediaStreamPrivate::_k_bytestreamSeekDone: 0 dragonplayer(13472)/phonon (KDE plugin) Phonon::KioMediaStreamPrivate::_k_bytestreamFileJobOpen: 8860351 xine is asking to seek behind the end of the data stream dragonplayer(13472)/phonon (KDE plugin) Phonon::KioMediaStream::seekStream: 8860223 = 8860223 dragonplayer(13472)/phonon (KDE plugin) Phonon::KioMediaStreamPrivate::_k_bytestreamData: seeking: do nothing dragonplayer(13472)/phonon (KDE plugin) Phonon::KioMediaStreamPrivate::_k_bytestreamSeekDone: 8860223 dragonplayer(13472)/phonon (KDE plugin) Phonon::KioMediaStreamPrivate::_k_bytestreamData: empty data: stopping the stream dragonplayer(13472)/phonon (KDE plugin) Phonon::KioMediaStream::seekStream: no job/job finished -> recreate it dragonplayer(13472)/phonon (KDE plugin) Phonon::KioMediaStream::reset: dragonplayer(13472)/kio (Slave) KIO::Slave::kill: killing slave pid 13400 ( "file://" ) dragonplayer(13472)/phonon (KDE plugin) Phonon::KioMediaStream::seekStream: 0 = 0 dragonplayer(13472)/kio (Slave) KIO::Slave::createSlave: createSlave "file" for KUrl("file:///mnt/mybook/Mp3/A/Air - [2001] 10000 Hz Legend/03 - Radio %231.mp3") dragonplayer(13472)/kio (KIOConnection) KIO::ConnectionServer::listenForRemote: Listening on "local:/tmp/ksocket-mikko/dragonplayerJ13472.slave-socket" dragonplayer(13472)/phonon (KDE plugin) Phonon::KioMediaStreamPrivate::_k_bytestreamSeekDone: 0 dragonplayer(13472)/phonon (KDE plugin) Phonon::KioMediaStreamPrivate::_k_bytestreamFileJobOpen: 8860351 dragonplayer(13472)/phonon (KDE plugin) Phonon::KioMediaStream::enoughData: *** Bug 196355 has been marked as a duplicate of this bug. *** I just had a look into the phonon source code and noticed that there is already some special treatment for non-alphanumerical characters in place there, but the listing of these cases isn't quite complete... Proposed fix: In the file branches/phonon/4.3/xine/mediaobject.cpp, in the if-clause in line 324, append " || c == '#'", making the line look like this: if (c & 0x80 || c == '\\' || c < 32 || c == '%' || c == '#') { After recompiling phonon with this change, both dragon player and amarok were able to play a file containing # in its name :-) Additional thought: If someone thinks it's necessary, obviously one could also include any other characters that aren't working as of now into this list (I didn't test any others except #). Maybe it would be even better to just extend the range of ASCII codes to some value above 32, i.e. to change the whole line to: if (c & 0x80 || c == '\\' || c < 44) { This would mean to include all of the following characters (note the space at the beginning): !"#$%&'()*+ Created attachment 34522 [details]
proposed simple patch, including only #
does this patch apply to phonon/xine/mediaobject.cpp or phonon/phonon/mediaobject.cpp ? (In reply to comment #5) > does this patch apply to phonon/xine/mediaobject.cpp or > phonon/phonon/mediaobject.cpp ? the patch applies to phonon/xine/mediaobject.cpp as found here: http://websvn.kde.org/branches/phonon/4.3/xine/mediaobject.cpp?revision=924144&view=markup I can confirm the patch applies and works fine also with phonon from trunk. Please apply it upstream. Thanks Comment on attachment 34522 [details]
proposed simple patch, including only #
see post #3 for additional comments.
*** Bug 197035 has been marked as a duplicate of this bug. *** fixed in rev 983650 http://websvn.kde.org/?view=rev&revision=983650 *** Bug 197349 has been marked as a duplicate of this bug. *** *** Bug 197583 has been marked as a duplicate of this bug. *** *** Bug 198745 has been marked as a duplicate of this bug. *** *** Bug 199182 has been marked as a duplicate of this bug. *** *** Bug 200585 has been marked as a duplicate of this bug. *** *** Bug 205519 has been marked as a duplicate of this bug. *** *** Bug 206923 has been marked as a duplicate of this bug. *** *** Bug 208904 has been marked as a duplicate of this bug. *** *** Bug 210704 has been marked as a duplicate of this bug. *** *** Bug 210903 has been marked as a duplicate of this bug. *** *** Bug 211355 has been marked as a duplicate of this bug. *** *** Bug 213700 has been marked as a duplicate of this bug. *** *** Bug 214731 has been marked as a duplicate of this bug. *** *** Bug 224945 has been marked as a duplicate of this bug. *** *** Bug 229188 has been marked as a duplicate of this bug. *** |