Summary: | fails to properly play files with names containing '#' character | ||
---|---|---|---|
Product: | [Applications] kaffeine | Reporter: | Fathi Boudra <fabo> |
Component: | general | Assignee: | Christophe Thommeret <hftom> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | ana, bluedzins, christiand59, dju, helenius.toni, mhall, tanarro |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Debian testing | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | Escape URLs passed at the command line or file->open |
Description
Fathi Boudra
2006-04-16 20:45:22 UTC
This probably means Kaffeine is not parsing its command-line arguments correctly. While that seems like a possibility, I wouldn't count on it. '#'s in filnames likewise cause Xine-UI to generate spurious errors; they just do not happen to inhibit the file from being played. In addition I should mention that versions of kaffeine prior to 0.8.xx release generated spurious errors but still were able to play the files. Does the same problem happen for ? in filenames? > This probably means Kaffeine is not parsing its command-line arguments correctly. Not only command-line, same behavior with file->open... > '#'s in filnames likewise cause Xine-UI to generate spurious errors i confirm, i've got a warning but xine-ui plays the file. > Assigned to: Jürgen Kofler Jürgen seems no more active on kaffeine, Christophe Thommeret is the current maintainer. * after the error message, the file is played anyway : * just look the elapsed time, it is incremented. * if i switch to the player window, player list or audio cd -> i've got the file playing In fact, the file is played, but we have the error message and the correct behavior (switch to player window) doesn't happen. > Does the same problem happen for ? in filenames?
not exactly :
* we didn't have the error message (this is the only difference)
* the file is played
* but as '#' case correct behavior (switch to player window) doesn't happen
we stay in "start" window and must switch manually to player window.
tested same cases with xine-ui : * '#' -> gives error message, play the file * '?' -> gives no error message, play the file exactly like kaffeine. the bug isn't "fails to properly play files with names containing '#' character" but : "correct behavior (switch to player window) doesn't happen for files with names containing '#' or '?'" i built kaffeine with enable-debug=full but couldn't debug it, gdb gives me : kaffeine not in executable format: file format not recognized I can confirm this for 0.7.1 on KDE 3.5.2 (Ubuntu packages) Kaffeine displays an error message (file/url not found) on some files containing the # character. The file can be played without further problems after clicking on ok. To reproduce, rename a video file to e.g: "demo # 1.avi" Created attachment 19156 [details]
Escape URLs passed at the command line or file->open
The attached patch offers a way to play files with characters such as '?' or
'#' when passed from the command line or file->open menu.
It applies to kaffeine-0.8.3/kaffeine/src/kaffeine.cpp
SVN commit 634455 by pfister: fix bug with file names containing # patch based on comment #9 but without (hopefully) introducing any regressions BUG: 125688 M +8 -13 kaffeine.cpp --- trunk/extragear/multimedia/kaffeine/src/kaffeine.cpp #634454:634455 @@ -302,7 +302,7 @@ url = path.absFilePath(url); #endif } - urls.append(url); + urls.append(KURL::fromPathOrURL(url).url()); } loadTMP(urls); @@ -1159,20 +1159,15 @@ fileFilter.prepend(DEFAULT_FILTER); KURL::List kurlList = KFileDialog::getOpenURLs(":kaffeine_openFile", fileFilter, 0, i18n("Open File(s)")); + + for (KURL::List::Iterator it = kurlList.begin(); it != kurlList.end(); ++it) + if ((*it).isLocalFile() && (*it).path().endsWith(".iso", false)) + (*it).setProtocol("dvd"); + QStringList urlList = kurlList.toStringList(); - for ( QStringList::Iterator it = urlList.begin(); it != urlList.end(); ++it ) - { - KURL suburl = *it; - if (suburl.protocol() == "file") - *it = suburl.path(); - if ( suburl.path().endsWith(".iso",false) ) { - *it = suburl.path().prepend("dvd://"); - } - } - if (!urlList.count()) - return; - load(urlList); + if (urlList.count() > 0) + load(urlList); } void Kaffeine::slotTogglePlaylist() The patch doesn't work for me. If I have filenames like "my great song #1.ogg" I cannot drag and drop it into the player window. Also, I cannot open it via File->Open. It gives no errors and just does nothing and doesn't give any errors on console. I can confirm this bug happening in Kubuntu Feisty. Kaffeine 0.8.3. Christoph, could you tell in what stable version this fix should appear? I use 0.8.3, if the # is in the middle of the filename Kaffeine reports the file is missing, if the # is the leading character Kaffeine simply ignores it -- I mean, Kaffeine just starts and that's it. No playback, no error report, nothing. Just like I would open Kaffeine. So, in short -- this bug still bites. PS. 0.8.4, no change. argh - can confirm it ... seems that there's somewhere a regression in the url passing chain (because I'm pretty sure it worked when I tested it ;) - will deal with that tomorrow Same happens if the "#" is in the foldername with version0.8.3. For example: folder: /home/user/test - version #1/some.avi cant be opened with doubleklick, Kaffeine error : (/home/user/test - version) not found. Somehow Krusader doesnot like the "#" as well, shows error like Folder doesnot exist on startup. actually i found out the regression - but fixing it is quite tricky so this will happen in 0.9 ... I confirm the bug in Feisty i386, Kaffeine 0.8.4 instead of 0.8.3. I have files with names just like that of comment #11, same behavior. I have encountered Kaffeine 0.8.3 on Feisty i386 having problems dropping files with '?' in their name into the playlist. No error is given but it ignores the file. Double clicking the file in the filebrowser does, however, start it playing and add it to the playlist. I confirm the bug in Debian Unstable, Kaffeine 0.8.5. The bus exists in gentoo, too. kaffeine 0.8.5 very likely not a problem in 1.0-pre1 anymore Doesn't still work on revision 1040174 are you sure that you're using a 1.0-* version? (help --> about kaffeine) (In reply to comment #24) > are you sure that you're using a 1.0-* version? (help --> about kaffeine) 1.0-svn2 It's a compiled version by myself. When i try to open a file with the # character in the name i get the follow output in console: xine is asking to seek behind the end of the data stream xine is asking to seek behind the end of the data stream xine is asking to seek behind the end of the data stream xine is asking to seek behind the end of the data stream Is there any way to get more debug information? Thanks Solved in last rev. Thanks |