--- 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);