GNOME Bugzilla – Bug 567524
MTP device + auto-converting FLAC to M4A = weird failures
Last modified: 2009-01-28 06:50:49 UTC
Please describe the problem: I have a Nokia N78, and I'm using Ubuntu Jaunty (rhythmbox 0.11.6svn20090108-0ubuntu1), and since the last upgrade, MTP uploads to my phone are .m4a instead of .mp3, they're uploaded into the wrong directory (E:\ instead of E:\Music on the device), and the files don't play. Steps to reproduce: (0. Enable MTP support, use libmtp 0.3.5ish) 1. Connect Nokia N78 phone 2. Drag FLAC file to phone Actual results: M4A file ends up in the root of "E:" on the phone; if I move it to the right location manually, it doesn't play. The phone can read metadata like song length and and tags, but tags are "double" ("title=Some Title, Some Title"), these might be different bugs. I'll file them separately if necessary. Expected results: M4A file ends up in E:\Music, and plays properly. Does this happen every time? Yes. Every file that's transcoded to .m4a gets uploaded to the wrong directory, and won't play on the phone (rb and totem will play the m4a file fine though). Other information: If I disable the AAC profile (/system/gstreamer/0.10/audio/profiles/aac/active = false), rb will use mp3, which will play correctly, and which gets uploaded into the right directory (E:\Music) (!) A full MTP profile for my phone can be found here: https://facecrime.net/~martijn/mtp-detect.txt
There are two bugs here, it seems: - rb is using the wrong filetype for aac/m4a files it uploads to the device, so libmtp doesn't know to put them in the device's music directory - the aac/m4a profile is producing files that the device cannot play and maybe a third: - rb prefers aac to mp3 when mp3 is far more likely to work
2009-01-28 Jonathan Matthew <jonathan@d14n.org> * plugins/mtpdevice/rb-mtp-plugin.c: (rb_mtp_plugin_device_removed): * plugins/mtpdevice/rb-mtp-source.c: (report_libmtp_errors), (rb_mtp_source_class_init), (rb_mtp_source_name_changed_cb), (rb_mtp_source_init), (rb_mtp_source_constructor), (rb_mtp_source_set_property), (rb_mtp_source_get_property), (rb_mtp_source_dispose), (rb_mtp_source_finalize), (impl_get_browser_key), (impl_get_paned_key), (rb_mtp_source_new), (load_mtp_db_idle_cb), (rb_mtp_source_load_tracks), (mimetype_to_filetype), (impl_delete), (rb_mtp_source_transfer_track_to_disk), (transfer_track): * plugins/mtpdevice/rb-mtp-source.h: Rearrange things to improve GObjectness, add some basic reporting for libmtp errors, ensure MP3 is the first format in the list of supported types for the device (since if an encoder is installed at all, transcoding to MP3 is far more reliable than other formats), try to use audio-only types for M4A/AAC tracks added to MTP devices, and remove the idle handler used to load tracks off the device if the device is removed. Fixes #567524, #569074, maybe some other stuff.