GNOME Bugzilla – Bug 562425
pl-parser should ignore cdda also
Last modified: 2008-12-05 06:48:53 UTC
it only ignore mms, pnm,rtsp, should ignore CDDA also when play audio CD.
or rhythmbox will bring up multiple audio icons on desktop when click tracks on Audio CD.
Created attachment 123527 [details] [review] patch
(In reply to comment #1) > or rhythmbox will bring up multiple audio icons on desktop when click tracks on > Audio CD. Rhythmbox isn't the one responsible for putting audio CDs on the desktop, the hal-volume-monitor is.
yes, rhythmbox is not the root cause. but for a url begin with "CDDA", it should be ignored also, it can not be a playlist file, right?
But it can't happen within Totem or Rhythmbox, so what's the deal here? The original bug isn't a totem-pl-parser bug, how do you reproduce the problem?
On Solaris, we were seeing a problem where if you run rhythmbox and play a song, it will add a new CD icon to the desktop for each song played. Isn't that weird? This seems a new behavior on Solaris with GNOME 2.24, I'm pretty sure it didn't behave that way in GNOME 2.22. Though perhaps our testers might not be testing CD's with rhythmbox since they instead use sound-juicer more. Anyway, this issue was reproted on the desktop-discuss@opensolaris.org mailing list, and you can read more detail about the issue here: http://mail.opensolaris.org/pipermail/desktop-discuss/2008-November/016584.html
This is definitely a gvfs problem. What's the output of "gvfs-mount -li" when all those new devices appear on the desktop?
With 5 CD icons on the desktop (after playing a few tracks in rhythmbox). $ gvfs-mount -li Drive(0): CD-RW/DVD±RW Drive ids: unix-device: '/dev/dsk/c3t0d0s2' hal-udi: '/org/freedesktop/Hal/devices/pci_0_0/pci_ide_1f_1/ide_0_0/sd1/sd1' themed icons: [drive-optical-recorder] [drive-optical] [drive] is_media_removable=1 has_media=1 is_media_check_automatic=0 can_poll_for_media=0 can_eject=1 Volume(0): Audio Disc ids: unix-device: '/dev/dsk/c3t0d0s2' hal-udi: '/org/freedesktop/Hal/devices/pci_0_0/pci_ide_1f_1/ide_0_0/sd1/sd1/s2' activation_root=cdda://c3t0d0s2/ themed icons: [drive-optical-recorder] [drive-optical] [drive] can_mount=1 can_eject=1 Mount(0): Audio Disc -> cdda://c3t0d0s2/ themed icons: [media-optical-audio] [media-optical] [media] x_content_types: x-content/audio-cdda can_unmount=1 can_eject=1 Mount(0): Audio Disc -> cdda://5/ themed icons: [media-optical-audio] [media-optical] [media] x_content_types: x-content/audio-cdda can_unmount=1 can_eject=0 Mount(1): Audio Disc -> cdda://11/ themed icons: [media-optical-audio] [media-optical] [media] x_content_types: x-content/audio-cdda can_unmount=1 can_eject=0 Mount(2): Audio Disc -> cdda://8/ themed icons: [media-optical-audio] [media-optical] [media] x_content_types: x-content/audio-cdda can_unmount=1 can_eject=0 Mount(3): Audio Disc -> cdda://1/ themed icons: [media-optical-audio] [media-optical] [media] x_content_types: x-content/audio-cdda can_unmount=1 can_eject=0
It's very likely rhythmbox tries to poke at those URIs using gvfs, but the only thing I'd ask is why this doesn't instantly fail to mount? What's the output of "cd-info /dev/1" on your system? Do you have HAL running? And is it in enabled as a gvfs monitor (and running)?
I don't have cd-info installed on my system. I don't think it's a part of Solaris. What information do you want, perhaps I can use a different program such as cdda2wav to provide the info? HAL is running on my system. How do I tell if it is enabled as a gvfs monitor (and running)? I do see the following gvfs processes running on my system while I am showing so many icons: brian 680 1 0 08:02:49 ? 0:00 /usr/lib/gvfsd-burn --spawner :1.12 /org/gtk/gvfs/exec_spaw/1 brian 665 1 0 08:02:47 ? 0:01 /usr/lib/gvfs-hal-volume-monitor brian 635 1 0 08:02:40 ? 0:00 /usr/lib/gvfsd brian 678 1 0 08:02:48 ? 0:01 /usr/lib/gvfsd-trash --spawner :1.12 /org/gtk/gvfs/exec_spaw/0 brian 682 1 0 08:02:49 ? 0:00 /usr/lib/gvfsd-cdda --spawner :1.12 /org/gtk/gvfs/exec_spaw/2 brian 1383 1 0 08:15:45 ? 0:00 /usr/lib/gvfsd-cdda --spawner :1.12 /org/gtk/gvfs/exec_spaw/4 brian 1381 1 0 08:15:44 ? 0:00 /usr/lib/gvfsd-cdda --spawner :1.12 /org/gtk/gvfs/exec_spaw/3 brian 1376 1 0 08:15:24 ? 0:00 /usr/lib/gnome-vfs-daemon brian 1385 1 0 08:15:48 ? 0:00 /usr/lib/gvfsd-cdda --spawner :1.12 /org/gtk/gvfs/exec_spaw/5 brian 1394 1 0 08:17:37 ? 0:00 /usr/lib/gvfsd-cdda --spawner :1.12 /org/gtk/gvfs/exec_spaw/6
No, I mean cd-info, which is a tool that uses libcdio, just like the cdda backend of gvfs. Which version of gvfs is this? There doesn't seem to be a separate HAL monitor process there.
Created attachment 123915 [details] [review] patch we apply on Solaris Sorry I don't have libcdio installed on my system. It's not bundled with Solaris. I suspect this might be related to the attached patch, which relates to bug #526902. Since we don't install libcdio on our system we use this patch to hack the code so it works with libcdio. Do you think the problem is with our patch? It might be good to fix the patch so it works properly and get it upstream so gvfs doesn't have a hard dependency on libcdio.
As I said in comment4, rhythmbox brings multiple icons on Desktop is a bug of gVFS. see bug http://bugzilla.gnome.org/show_bug.cgi?id=563090 there is a very small testcase. but for totem-pl-parser, it should ignore url begin with "cdda://" also. that is why I made the patch.
(In reply to comment #12) > Created an attachment (id=123915) [edit] > patch we apply on Solaris > > Sorry I don't have libcdio installed on my system. It's not bundled with > Solaris. Then why do you build the CDDA backend? (and why don't you have libcdio on Solaris? AFAIK it's supposed to work on Solaris. And if you have GPL fears remember that gvfs backends run out of process so there are no problems here. (Of course, I am not a lawyer etc.)) > I suspect this might be related to the attached patch, which relates to bug > #526902. Since we don't install libcdio on our system we use this patch to > hack the code so it works with libcdio. > > Do you think the problem is with our patch? Sorry, but that patch seems completely busted. It seems all it does it to comment out the calls to libcdio without providing another implementation. If you don't provide an implementation, why build the CDDA backend in the first place? > It might be good to fix the patch > so it works properly and get it upstream so gvfs doesn't have a hard dependency > on libcdio. There is no hard dependency in gvfs on libcdio; the CDDA backend is optional (and it currently requires and only supports libcdio). David
The missing call to cdio_cddap_identify() is very likely one of the first thing to throw us off course. (In reply to comment #13) > As I said in comment4, > rhythmbox brings multiple icons on Desktop is a bug of gVFS. > > see bug http://bugzilla.gnome.org/show_bug.cgi?id=563090 > there is a very small testcase. Yeah, dupe. > but for totem-pl-parser, > it should ignore url begin with "cdda://" also. > that is why I made the patch. For which you didn't provide a useful reason. Passing a CDDA URI to Totem will just result in the parsing coming back with an error, or unhandled. So it's not a problem. *** This bug has been marked as a duplicate of 563090 ***
Yes. Passing a CDDA URL to totem-pl-parser will resturn TOTEM_PL_PARSER_RESULT_UNHANDLED at last. but we can return it early to reduce cost since we know the url can not be a playlist.