Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release-src > by-pkgid > 7bde3e49b5baf7c1719296874ab27161 > files > 1

lightmediascanner-0.4.5-5.mga5.src.rpm

--- src/plugins/mp4/mp4.c.mp4	2012-06-16 16:37:25.000000000 +0000
+++ src/plugins/mp4/mp4.c	2012-06-16 16:45:42.000000000 +0000
@@ -100,9 +100,10 @@
     struct lms_video_info video_info = {0, {0}, {0}};
     int r, stream_type = STREAM_TYPE_AUDIO;
     MP4FileHandle mp4_fh;
+    const MP4Tags *mp4tags;
     u_int32_t num_tracks;
 
-    mp4_fh = MP4Read(finfo->path, 0);
+    mp4_fh = MP4Read(finfo->path);
     if (mp4_fh == MP4_INVALID_FILE_HANDLE) {
         fprintf(stderr, "ERROR: cannot read mp4 file %s\n", finfo->path);
         return -1;
@@ -113,24 +114,29 @@
     if (num_tracks > 0)
         stream_type = STREAM_TYPE_VIDEO;
 
-    MP4GetMetadataName(mp4_fh, &info.title.str);
+    mp4tags = MP4TagsAlloc();
+    MP4TagsFetch(mp4tags,mp4_fh);
+
+    info.title.str=strdup(mp4tags->name);
     if (info.title.str)
         info.title.len = strlen(info.title.str);
-    MP4GetMetadataArtist(mp4_fh, &info.artist.str);
+
+    info.artist.str=strdup(mp4tags->artist);
     if (info.artist.str)
         info.artist.len = strlen(info.artist.str);
 
     if (stream_type == STREAM_TYPE_AUDIO) {
         u_int16_t total_tracks;
 
-        MP4GetMetadataAlbum(mp4_fh, &info.album.str);
+	info.album.str=strdup(mp4tags->album);
         if (info.album.str)
             info.album.len = strlen(info.album.str);
-        MP4GetMetadataGenre(mp4_fh, &info.genre.str);
+	info.genre.str=strdup(mp4tags->genre);
         if (info.genre.str)
             info.genre.len = strlen(info.genre.str);
 
-        MP4GetMetadataTrack(mp4_fh, &info.trackno, &total_tracks);
+	info.trackno=g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,(gint)mp4tags->track->index);
+	total_tracksg_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,(gint)mp4tags->track->total);
     }
 
     lms_string_size_strip_and_free(&info.title);
@@ -179,7 +185,7 @@
         r = lms_db_video_add(plugin->video_db, &video_info);
     }
 
-    MP4Close(mp4_fh);
+    MP4Close(mp4_fh, 0);
 
     if (info.title.str)
         free(info.title.str);