Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- importing /media/5A2813CC2813A653/Documents and Settings/Scott/Music/Better Than Ezra/Deluxe/Coyote.flac
- getting info..
- (beatbox:20677): GStreamer-CRITICAL **: gst_value_init_and_copy: assertion `G_IS_VALUE (src)' failed
- (beatbox:20677): GStreamer-CRITICAL **: gst_value_init_and_copy: assertion `G_IS_VALUE (src)' failed
- (beatbox:20677): GStreamer-CRITICAL **: gst_value_init_and_copy: assertion `G_IS_VALUE (src)' failed
- (beatbox:20677): GStreamer-CRITICAL **: gst_value_init_and_copy: assertion `G_IS_VALUE (src)' failed
- (beatbox:20677): GStreamer-CRITICAL **: gst_value_init_and_copy: assertion `G_IS_VALUE (src)' failed
- (beatbox:20677): GStreamer-CRITICAL **: gst_value_init_and_copy: assertion `G_IS_VALUE (src)' failed
- Program received signal SIGSEGV, Segmentation fault.
- [Switching to Thread 0xb31fdb70 (LWP 20702)]
- 0x008bd641 in g_type_check_value () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
- (gdb) bt
- #0 0x008bd641 in g_type_check_value () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
- #1 0x00a8d938 in gst_value_init_and_copy () from /usr/lib/libgstreamer-0.10.so.0
- #2 0x00a71fe8 in gst_structure_copy () from /usr/lib/libgstreamer-0.10.so.0
- #3 0x00a72083 in ?? () from /usr/lib/libgstreamer-0.10.so.0
- #4 0x008bdbc2 in ?? () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
- #5 0x00893946 in ?? () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
- #6 0x00a7101b in ?? () from /usr/lib/libgstreamer-0.10.so.0
- #7 0x00a72887 in gst_structure_id_set () from /usr/lib/libgstreamer-0.10.so.0
- #8 0x00c0ffde in ?? () from /usr/lib/libgstpbutils-0.10.so.0
- #9 0x00c100f7 in ?? () from /usr/lib/libgstpbutils-0.10.so.0
- #10 0x00c10055 in ?? () from /usr/lib/libgstpbutils-0.10.so.0
- #11 0x00c1014b in ?? () from /usr/lib/libgstpbutils-0.10.so.0
- #12 0x00c105b7 in ?? () from /usr/lib/libgstpbutils-0.10.so.0
- #13 0x00c11629 in gst_discoverer_discover_uri () from /usr/lib/libgstpbutils-0.10.so.0
- #14 0x080915be in beat_box_file_operator_import_song ()
- #15 0x0808fd8d in beat_box_file_operator_get_music_files ()
- #16 0x0808ff21 in beat_box_file_operator_get_music_files ()
- #17 0x0808ff21 in beat_box_file_operator_get_music_files ()
- #18 0x080aec1e in beat_box_library_manager_set_music_thread_function ()
- #19 0x080ae561 in _beat_box_library_manager_set_music_thread_function_gthread_func ()
- #20 0x0094d2df in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
- #21 0x00e06e99 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
- #22 0x00eea73e in clone () from /lib/i386-linux-gnu/libc.so.6
- (gdb)
- public Song? import_song(GLib.File file) {
- Song s = new Song(file.get_path());
- stdout.printf("importing %s\n", file.get_path());
- DiscovererInfo info;
- try {
- stdout.printf("getting info..\n");
- info = disc.discover_uri(file.get_uri());
- stdout.printf("info recieved\n");
- if(info == null)
- return null;
- }
- catch(GLib.Error err) {
- stdout.printf("Could not read song's metadata\n");
- return null;
- }
- stdout.printf("import_song info fetched\n");
- unowned TagList tags = info.get_tags();
- stdout.printf("taglist set\n");
- if(info != null && tags != null) {
- try {
- string title, artist, album_artist, album, genre, comment, lyrics;
- uint track, track_count, album_number, album_count, bitrate, rating;
- double bpm;
- int64 duration;
- GLib.Date? date = new GLib.Date();
- stdout.printf("0\n");
- /* get title, artist, album artist, album, genre, comment, lyrics strings */
- if(tags.get_string(TAG_TITLE, out title))
- s.title = title;
- if(tags.get_string(TAG_ARTIST, out artist))
- s.artist = artist;
- stdout.printf("a\n");
- if(tags.get_string(TAG_ALBUM_ARTIST, out album_artist))
- s.album_artist = album_artist;
- else
- s.album_artist = s.artist;
- stdout.printf("b\n");
- if(tags.get_string(TAG_ALBUM, out album))
- s.album = album;
- if(tags.get_string(TAG_GENRE, out genre))
- s.genre = genre;
- if(tags.get_string(TAG_COMMENT, out comment))
- s.comment = comment;
- if(tags.get_string(TAG_LYRICS, out lyrics))
- s.lyrics = lyrics;
- /* get the year */
- if(tags.get_date(TAG_DATE, out date)) {
- if(date != null)
- s.year = (int)date.get_year();
- }
- /* get track/album number/count, bitrating, rating, bpm */
- if(tags.get_uint(TAG_TRACK_NUMBER, out track))
- s.track = (int)track;
- if(tags.get_uint(TAG_TRACK_COUNT, out track_count))
- s.track_count = track_count;
- if(tags.get_uint(TAG_ALBUM_VOLUME_NUMBER, out album_number))
- s.album_number = album_number;
- if(tags.get_uint(TAG_ALBUM_VOLUME_COUNT, out album_count))
- s.album_count = album_count;
- if(tags.get_uint(TAG_BITRATE, out bitrate))
- s.bitrate = (int)(bitrate/1000);
- if(tags.get_uint(TAG_USER_RATING, out rating))
- s.rating = (int)((rating > 0 && rating <= 5) ? rating : 0);
- if(tags.get_double(TAG_BEATS_PER_MINUTE, out bpm))
- s.bpm = (int)bpm;
- if(info.get_audio_streams().length() > 0)
- s.samplerate = info.get_audio_streams().nth_data(0).get_sample_rate();
- /* get length */
- s.length = info.get_duration()/1000000000;
- s.date_added = (int)time_t();
- stdout.printf("g\n");
- /* get the size and convert to MB */
- s.file_size = (int)(file.query_info("*", FileQueryInfoFlags.NONE).get_size()/1000000);
- }
- finally {
- if(s.title == null || s.title == "") {
- string[] paths = file.get_path().split("/", 0);
- s.title = paths[paths.length - 1];
- }
- if(s.artist == null || s.artist == "") s.artist = "Unknown";
- }
- }
- else {
- return null;
- }
- return s;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement