From 26b8e06374c71e42be86694f5d5c4ee920ae4d26 Mon Sep 17 00:00:00 2001 From: Alex Bennee Date: Wed, 14 Jul 2010 16:01:16 +0100 Subject: EasyTag 2.1.4 --- src/mp4_tag.c | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) mode change 100755 => 100644 src/mp4_tag.c (limited to 'src/mp4_tag.c') diff --git a/src/mp4_tag.c b/src/mp4_tag.c old mode 100755 new mode 100644 index 86b4cff..ab2bdde --- a/src/mp4_tag.c +++ b/src/mp4_tag.c @@ -84,6 +84,7 @@ gboolean Mp4tag_Read_File_Tag (gchar *filename, File_Tag *FileTag) uint16_t disk, disktotal; u_int8_t *coverArt; u_int32_t coverSize; + Picture *prev_pic = NULL; if (!filename || !FileTag) return FALSE; @@ -91,7 +92,7 @@ gboolean Mp4tag_Read_File_Tag (gchar *filename, File_Tag *FileTag) if ( (file=fopen(filename,"r"))==NULL ) { gchar *filename_utf8 = filename_to_display(filename); - Log_Print(_("ERROR while opening file: '%s' (%s)."),filename_utf8,g_strerror(errno)); + Log_Print(LOG_ERROR,_("ERROR while opening file: '%s' (%s)."),filename_utf8,g_strerror(errno)); g_free(filename_utf8); return FALSE; } @@ -102,7 +103,7 @@ gboolean Mp4tag_Read_File_Tag (gchar *filename, File_Tag *FileTag) if (mp4file == MP4_INVALID_FILE_HANDLE) { gchar *filename_utf8 = filename_to_display(filename); - Log_Print(_("ERROR while opening file: '%s' (%s)."),filename_utf8,_("MP4 format invalid")); + Log_Print(LOG_ERROR,_("ERROR while opening file: '%s' (%s)."),filename_utf8,_("MP4 format invalid")); g_free(filename_utf8); return FALSE; } @@ -176,7 +177,6 @@ gboolean Mp4tag_Read_File_Tag (gchar *filename, File_Tag *FileTag) MP4GetMetadataTool(mp4file, &FileTag->encoded_by); /* Unimplemented - Tempo / BPM MP4GetMetadataTempo(file, &string) */ @@ -184,16 +184,28 @@ gboolean Mp4tag_Read_File_Tag (gchar *filename, File_Tag *FileTag) /*********** * Picture * ***********/ - // There is only one picture! +#ifdef NEWMP4 + // There version can handle multiple pictures! + // Version 1.6 of libmp4v2 introduces an index argument for MP4GetMetadataCoverart + for (i = 0; (MP4GetMetadataCoverArt( mp4file, &coverArt, &coverSize,i )); i++) +#else + // There version handle only one picture! if ( MP4GetMetadataCoverArt( mp4file, &coverArt, &coverSize ) ) +#endif { - Picture *pic = Picture_Allocate(); + Picture *pic; + + pic = Picture_Allocate(); + if (!prev_pic) + FileTag->picture = pic; + else + prev_pic->next = pic; + prev_pic = pic; + pic->size = coverSize; pic->data = coverArt; pic->type = PICTURE_TYPE_FRONT_COVER; pic->description = NULL; - - FileTag->picture = pic; } @@ -231,7 +243,7 @@ gboolean Mp4tag_Write_File_Tag (ET_File *ETFile) /* Test to know if we can write into the file */ if ( (file=fopen(filename,"r+"))==NULL ) { - Log_Print(_("ERROR while opening file: '%s' (%s)."),filename_utf8,g_strerror(errno)); + Log_Print(LOG_ERROR,_("ERROR while opening file: '%s' (%s)."),filename_utf8,g_strerror(errno)); return FALSE; } fclose(file); @@ -240,7 +252,7 @@ gboolean Mp4tag_Write_File_Tag (ET_File *ETFile) mp4file = MP4Modify(filename,0,0); if (mp4file == MP4_INVALID_FILE_HANDLE) { - Log_Print(_("ERROR while opening file: '%s' (%s)."),filename_utf8,_("MP4 format invalid")); + Log_Print(LOG_ERROR,_("ERROR while opening file: '%s' (%s)."),filename_utf8,_("MP4 format invalid")); return FALSE; } @@ -405,6 +417,7 @@ gboolean Mp4tag_Write_File_Tag (ET_File *ETFile) * Picture * ***********/ { + // Can handle only one picture... Picture *pic; //MP4DeleteMetadataCoverArt(mp4file); -- cgit v1.2.3