GNOME Bugzilla – Bug 631209
When dragging a podcast from Rhythmbox to ipod, it won't play
Last modified: 2010-10-26 11:55:09 UTC
"1) Download a podcast 2) Insert iPod (mine is a 2nd gen.) 3) Drag podcast to iPod 4) Eject iPod 5) Play file in iPod It shows up normally, but the iPod won't play it. This used to work fine in Lucid, and it broke in the Maverick Beta."
also reported at: https://bugs.launchpad.net/ubuntu/+source/rhythmbox/+bug/640103
The problem is that the extension is removed from the filename of the podcast when copied to the ipod. In the function ipod_get_filename_for_uri() in plugins/ipod/rb-ipod-source.c: escaped = g_utf8_strrchr (filename, -1, '.'); if (escaped != NULL) { *escaped = 0; } Removes the extension.. If those lines are removed the next problem is (a couple of lines down): "if (extension != NULL) { " In my case, 'extension' is empty but not NULL, so an extra '.' will be applied at the end of the filename. Because of: "escaped = g_strdup_printf ("%s.%s", filename, extension);" Replace with "if (extension != NULL && *extension != '\0') {" fixes that. Works for me, but someone who's more involved with the code should take a look at it.
What version of rhythmbox are you using? Some changes I made in 0.13.1 should have fixed this. Output from 'rhythmbox -D encoder' would probably help in any case.
I'm running version 0.13.1 from Ubuntu 10.10. That's also where i grabbed the source. 'apt-get source rhythmbox' Here's the output from '-D encoder' when i transfer the podcast. ----------------- (12:36:01) [0x8aa8e68] [rb_encoder_gst_get_media_type] rb-encoder-gst.c:1176: found source media type audio/mpeg in destination type list (12:36:01) [0x8aa8e68] [get_profile_from_media_type] rb-encoder-gst.c:873: Looking up profile for media type 'audio/mpeg' (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:752: desired caps are: audio/mpeg, mpegversion=(int)1, layer=(int)3 (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:756: element caps are: audio/x-flac (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:760: intersect caps are: EMPTY (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:752: desired caps are: audio/mpeg, mpegversion=(int)1, layer=(int)3 (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:756: element caps are: audio/x-vorbis (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:760: intersect caps are: EMPTY (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:752: desired caps are: audio/mpeg, mpegversion=(int)1, layer=(int)3 (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:756: element caps are: audio/mpeg, mpegversion=(int)1, layer=(int)2, rate=(int){ 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ] (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:760: intersect caps are: EMPTY (12:36:02) [0x8aa8e68] [profile_bin_find_encoder] rb-encoder-gst.c:813: unable to find encoder element (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:752: desired caps are: audio/mpeg, mpegversion=(int)1, layer=(int)3 (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:756: element caps are: audio/x-speex, rate=(int)[ 6000, 48000 ], channels=(int)[ 1, 2 ] (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:760: intersect caps are: EMPTY (12:36:02) [0x8aa8e68] [rb_encoder_gst_get_media_type] rb-encoder-gst.c:1176: found source media type audio/mpeg in destination type list (12:36:02) [0x8aa8e68] [get_profile_from_media_type] rb-encoder-gst.c:873: Looking up profile for media type 'audio/mpeg' (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:752: desired caps are: audio/mpeg, mpegversion=(int)1, layer=(int)3 (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:756: element caps are: audio/x-flac (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:760: intersect caps are: EMPTY (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:752: desired caps are: audio/mpeg, mpegversion=(int)1, layer=(int)3 (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:756: element caps are: audio/x-vorbis (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:760: intersect caps are: EMPTY (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:752: desired caps are: audio/mpeg, mpegversion=(int)1, layer=(int)3 (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:756: element caps are: audio/mpeg, mpegversion=(int)1, layer=(int)2, rate=(int){ 16000, 22050, 24000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ] (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:760: intersect caps are: EMPTY (12:36:02) [0x8aa8e68] [profile_bin_find_encoder] rb-encoder-gst.c:813: unable to find encoder element (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:752: desired caps are: audio/mpeg, mpegversion=(int)1, layer=(int)3 (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:756: element caps are: audio/x-speex, rate=(int)[ 6000, 48000 ], channels=(int)[ 1, 2 ] (12:36:02) [0x8aa8e68] [encoder_match_media_type] rb-encoder-gst.c:760: intersect caps are: EMPTY (12:36:03) [0x8aa8e68] [rb_encoder_gst_encode] rb-encoder-gst.c:1108: source file already has required media type audio/mpeg, copying rather than transcoding (12:36:03) [0x8aa8e68] [attach_output_pipeline] rb-encoder-gst.c:658: attempting to open output file file:///media/IDA'S%20IPOD/iPod_Control/Music/F40/fsn2010-1020-1. (12:36:03) [0x8aa8e68] [bus_watch_cb] rb-encoder-gst.c:350: message of type state-changed (12:36:03) [0x8aa8e68] [bus_watch_cb] rb-encoder-gst.c:350: message of type state-changed (12:36:03) [0x8aa8e68] [bus_watch_cb] rb-encoder-gst.c:350: message of type state-changed (12:36:03) [0x8aa8e68] [bus_watch_cb] rb-encoder-gst.c:350: message of type stream-status (12:36:03) [0x8aa8e68] [bus_watch_cb] rb-encoder-gst.c:350: message of type state-changed (12:36:03) [0x8aa8e68] [bus_watch_cb] rb-encoder-gst.c:350: message of type stream-status (12:36:03) [0x8aa8e68] [bus_watch_cb] rb-encoder-gst.c:350: message of type state-changed (12:36:03) [0x8aa8e68] [bus_watch_cb] rb-encoder-gst.c:350: message of type state-changed (12:36:03) [0x8aa8e68] [bus_watch_cb] rb-encoder-gst.c:350: message of type async-done (12:36:03) [0x8aa8e68] [bus_watch_cb] rb-encoder-gst.c:350: message of type new-clock (12:36:03) [0x8aa8e68] [bus_watch_cb] rb-encoder-gst.c:350: message of type state-changed (12:36:03) [0x8aa8e68] [bus_watch_cb] rb-encoder-gst.c:350: message of type state-changed (12:36:03) [0x8aa8e68] [bus_watch_cb] rb-encoder-gst.c:350: message of type state-changed (12:36:03) [0x8aa8e68] [bus_watch_cb] rb-encoder-gst.c:333: received EOS, closing output stream (12:36:03) [0x8aa8e68] [output_close_cb] rb-encoder-gst.c:286: finished closing output stream (12:36:03) [0x8aa8e68] [rb_encoder_gst_emit_completed] rb-encoder-gst.c:273: destination file size: 19561257 (12:36:03) [0x8aa8e68] [encoder_completed_cb] rb-track-transfer-batch.c:347: encoder finished (size 19561257) -----------------
Thanks for the bug report. This particular bug has already been reported into our bug tracking system, but please feel free to report any further bugs you find. *** This bug has been marked as a duplicate of bug 625054 ***