[SCM] easytag/master: Port MP4 support to taglib (reduced functionality compared to libmp4v2, but half a loaf is better than no bread)
lucidfox-guest at users.alioth.debian.org
lucidfox-guest at users.alioth.debian.org
Wed Jun 8 17:43:45 UTC 2011
The following commit has been merged in the master branch:
commit b8ff841c2812936faddef0bbd462238bcd3e4f82
Author: Maia Kozheva <sikon at ubuntu.com>
Date: Wed Jun 8 23:56:40 2011 +0700
Port MP4 support to taglib (reduced functionality compared to libmp4v2, but half a loaf is better than no bread)
diff --git a/debian/control b/debian/control
index 6b36221..5571a9d 100644
--- a/debian/control
+++ b/debian/control
@@ -13,6 +13,7 @@ Build-Depends: debhelper (>= 7.0.50~),
libid3-3.8.3-dev,
libogg-dev,
libspeex-dev,
+ libtagc0-dev,
libvorbis-dev,
libwavpack-dev,
zlib1g-dev
@@ -31,8 +32,8 @@ Description: viewing, editing and writing ID3 tags
.
Currently EasyTAG supports the following:
- View, edit, write tags of MP3, MP2 files (ID3 tag), FLAC files (FLAC Vorbis
- tag), Ogg Vorbis files (Ogg Vorbis tag), and MusePack, Monkey's Audio files
- (APE tag),
+ tag), Ogg Vorbis files (Ogg Vorbis tag), MP4/M4A/AAC files (MPEG-4 Part 10
+ tag), and MusePack, Monkey's Audio files (APE tag),
- Auto tagging: parse filename and directory to complete automatically the
fields (using masks),
- Ability to rename files from the tag (using masks) or by loading
diff --git a/debian/patches/series b/debian/patches/series
index 0818ebe..693245d 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
desktop.patch
+taglib.patch
diff --git a/debian/patches/taglib.patch b/debian/patches/taglib.patch
new file mode 100644
index 0000000..28bca24
--- /dev/null
+++ b/debian/patches/taglib.patch
@@ -0,0 +1,654 @@
+Description: Replace libmp4v2 with taglib for MP4 support
+ Use taglib instead of libmp4v2 for MP4 files. Only the basic tags are
+ available for editing this way, but due to the licensing issues with
+ libmp4v2, it's better than nothing.
+Origin: vendor
+Author: Maia Kozheva <sikon at ubuntu.com>
+Forwarded: https://github.com/stsquad/easytag/issues/13
+Last-Update: 2011-06-08
+---
+Index: easytag/configure.in
+===================================================================
+--- easytag.orig/configure.in 2011-06-08 23:28:43.000000000 +0700
++++ easytag/configure.in 2011-06-08 23:28:50.000000000 +0700
+@@ -63,9 +63,9 @@
+ AC_HELP_STRING([--disable-flac],[Disable support for FLAC files (default=enabled)]),
+ , enable_flac=yes)
+
+-AC_ARG_ENABLE(mp4,
+- AC_HELP_STRING([--disable-mp4],[Disable support for MP4 files (default=enabled)]),
+- , enable_mp4=yes)
++AC_ARG_ENABLE(taglib,
++ AC_HELP_STRING([--disable-taglib],[Disable support for MP4 files via taglib (default=enabled)]),
++ , enable_taglib=yes)
+
+ AC_ARG_ENABLE(wavpack,
+ AC_HELP_STRING([--disable-wavpack],[Disable support for Wavpack files (default=enabled)]),
+@@ -313,67 +313,35 @@
+
+
+ dnl ################################################
+-dnl # libmp4v2 library
++dnl # taglib library
+ dnl ################################################
+-if test "x$enable_mp4" = "xyes"; then
+- dnl Librairies required for mp4 files, if not found 'enable_mp4' is disabled
+- AC_MSG_CHECKING(for MP4 file support)
+- AC_CHECK_HEADER(mp4v2/mp4v2.h, [], [mp4_available=no])
+- AC_CHECK_LIB(mp4v2, MP4GetTrackMediaDataName, [], [mp4_available=no], [-lmp4v2])
++if test "x$enable_taglib" = "xyes"; then
++ dnl Libraries required for mp4 files, if not found 'enable_taglib' is disabled
++ PKG_CHECK_MODULES(TAGLIB_C, taglib_c >= 1.6.0, , taglib_available=no)
+ fi
+
+-AC_MSG_CHECKING(for MP4/AAC file support)
+-if test "x$enable_mp4" = "xyes"; then
+- if test "x$mp4_available" = "xno"; then
++AC_MSG_CHECKING(for taglib_c)
++if test "x$enable_taglib" = "xyes"; then
++ if test "x$taglib_available_available" = "xno"; then
+ AC_MSG_RESULT(no)
+- enable_mp4="no"
++ enable_taglib="no"
+ echo "***"
+ echo "*** Warning: MP4 file support disabled"
+- echo "*** (Install libmp4v2 >= 1.9.0 to enable it)"
++ echo "*** (Install taglib_c >= 1.6.0 to enable it)"
+ echo "***"
+ else
+
+- dnl Check version of mp4v2 installed
+- LIBS_SAVE="$LIBS"
+- CFLAGS_SAVE="$CFLAGS"
+- LIBS="$LIBS $LIBMP4V2_LIBS"
+- CFLAGS="$CFLAGS $LIBMP4V2_CFLAGS"
+- AC_MSG_CHECKING(for libmp4v2 version)
+- AC_TRY_RUN([
+- #include <stdio.h>
+- #include <mp4v2/mp4v2.h>
+- int main (void)
+- {
+- FILE *output;
+- output=fopen("conftest.mp4v2","w");
+- fprintf(output,"MP4V2_PROJECT_name=%s\nMP4V2_PROJECT_version=%s\n",PACKAGE_TARNAME,PACKAGE_VERSION);
+- fclose(output);
+- exit(0);
+- }
+- ], . ./conftest.mp4v2; echo "${LIBMP4V2_NAME}-${LIBMP4V2_VERSION}", AC_MSG_WARN(could not determine libmp4v2 version),[echo $ac_n "cross compiling; assuming ${LIBMP4V2_NAME}-${LIBMP4V2_VERSION} $ac_c"])
+- LIBS="$LIBS_SAVE"
+- CFLAGS="$CFLAGS_SAVE"
+- if test "$LIBMP4V2_VERSION" != ""; then
+- LIBMP4V2_VERSION="($LIBMP4V2_NAME-$LIBMP4V2_VERSION)"
+- fi
+-
+- dnl Version 1.6 of libmp4v2 introduces an index argument for MP4GetMetadataCoverart. So we define 'NEWMP4' if it is the case
+- AC_COMPILE_IFELSE([
+- #include <mp4v2/mp4v2.h>
+- main () {
+- MP4FileHandle hFile;
+- MP4GetMetadataCoverArt(hFile, NULL, NULL,0); }
+- ], AC_DEFINE(NEWMP4,1,[Define for MP4 lib with multiple image support]),)
+-
+ AC_MSG_RESULT(yes)
+- AC_DEFINE(ENABLE_MP4,1,[Define for MP4 support])
++ AC_DEFINE(ENABLE_MP4,1,[Define for taglib support])
++ CFLAGS="$CFLAGS $TAGLIB_C_CFLAGS"
++ LIBS="$LIBS $TAGLIB_C_LIBS"
+ fi
+ else
+ AC_MSG_RESULT(no)
+- enable_mp4="no"
++ enable_taglib="no"
+ echo "***"
+ echo "*** MP4 file support disabled on commandline"
+- echo "*** (Install libmp4v2 and use --enable-mp4 to enable it)"
++ echo "*** (Install taglib_c and use --enable-taglib to enable it)"
+ echo "***"
+ fi
+
+@@ -494,7 +462,7 @@
+ echo Ogg Vorbis file support .: $enable_ogg
+ echo Speex file support ......: $enable_speex
+ echo FLAC file support .......: $enable_flac $LIBFLAC_VERSION
+-echo MP4 file support ........: $enable_mp4 $LIBMP4V2_VERSION
++echo MP4 file support ........: $enable_taglib
+ echo WavPack support .........: $enable_wavpack
+ echo NLS/gettext .............: $USE_NLS
+ echo Install path ............: $prefix
+Index: easytag/src/mp4_header.c
+===================================================================
+--- easytag.orig/src/mp4_header.c 2011-06-08 23:28:43.000000000 +0700
++++ easytag/src/mp4_header.c 2011-06-08 23:36:48.433768764 +0700
+@@ -44,13 +44,13 @@
+ #undef PACKAGE_STRING
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+-#include <mp4v2/mp4v2.h>
++#include <tag_c.h>
+
+
+ /****************
+ * Declarations *
+ ****************/
+-
++/*
+ static const struct
+ {
+ uint8_t profile;
+@@ -106,7 +106,7 @@
+ };
+
+ #define NUMBER_OF(A) (sizeof(A) / sizeof(A[0]))
+-
++*/
+
+ /**************
+ * Prototypes *
+@@ -122,6 +122,7 @@
+ *
+ * Returns a format/sub-format information. Taken from mp4.h/mp4info.
+ */
++/*
+ static void getType(MP4FileHandle file, MP4TrackId trackId, const char **format, const char **subformat )
+ {
+ unsigned i;
+@@ -184,7 +185,7 @@
+ *subformat = media_data_name;
+ }
+ }
+-
++*/
+
+ /*
+ * Mp4_Header_Read_File_Info:
+@@ -193,10 +194,8 @@
+ */
+ gboolean Mp4_Header_Read_File_Info (gchar *filename, ET_File_Info *ETFileInfo)
+ {
+- MP4FileHandle file;
+- MP4TrackId trackId = 1;
+- //const char* trackType;
+- const char *format, *subformat;
++ TagLib_File *file;
++ const TagLib_AudioProperties *properties;
+
+ if (!filename || !ETFileInfo)
+ return FALSE;
+@@ -204,7 +203,7 @@
+ /* Get size of file */
+ ETFileInfo->size = Get_File_Size(filename);
+
+- if ((file = MP4Read(filename, 0)) == MP4_INVALID_FILE_HANDLE )
++ if ((file = taglib_file_new_type(filename, TagLib_File_MP4)) == NULL )
+ {
+ gchar *filename_utf8 = filename_to_display(filename);
+ //g_print(_("ERROR while opening file: '%s' (%s)."),filename_utf8,g_strerror(errno));
+@@ -214,23 +213,20 @@
+ }
+
+ /* Check for audio track */
+- if( MP4GetNumberOfTracks(file,MP4_AUDIO_TRACK_TYPE,0) < 1 )
++ if( !taglib_file_is_valid(file))
+ {
+ gchar *filename_utf8 = filename_to_display(filename);
+ Log_Print(LOG_ERROR,_("ERROR while opening file: '%s' (%s)."),filename_utf8,("Contains no audio track"));
+- MP4Close(file);
+ g_free(filename_utf8);
+ return FALSE;
+ }
+-
+- /* Get the first track id (index 0) */
+- trackId = MP4FindTrackId(file, 0, MP4_AUDIO_TRACK_TYPE, 0);
++
++ properties = taglib_file_audioproperties(file);
+
+ /* Get format/subformat */
+ {
+- getType( file, trackId, &format, &subformat );
+- ETFileInfo->mpc_version = g_strdup( format );
+- ETFileInfo->mpc_profile = g_strdup( subformat );
++ ETFileInfo->mpc_version = g_strdup( "MPEG" );
++ ETFileInfo->mpc_profile = g_strdup( "4, Unknown" );
+ }
+
+ ETFileInfo->version = 4;
+@@ -238,12 +234,12 @@
+ ETFileInfo->layer = 14;
+
+ ETFileInfo->variable_bitrate = TRUE;
+- ETFileInfo->bitrate = MP4GetTrackBitRate(file, trackId) / 1000;
+- ETFileInfo->samplerate = MP4GetTrackTimeScale(file, trackId);
+- ETFileInfo->mode = MP4GetTrackAudioChannels(file, trackId);
+- ETFileInfo->duration = MP4ConvertFromTrackDuration(file, trackId, MP4GetTrackDuration(file, trackId), MP4_SECS_TIME_SCALE);
++ ETFileInfo->bitrate = taglib_audioproperties_bitrate(properties);
++ ETFileInfo->samplerate = taglib_audioproperties_samplerate(properties);
++ ETFileInfo->mode = taglib_audioproperties_channels(properties);
++ ETFileInfo->duration = taglib_audioproperties_length(properties);
+
+- MP4Close(file);
++ taglib_file_free(file);
+ return TRUE;
+ }
+
+Index: easytag/src/mp4_tag.c
+===================================================================
+--- easytag.orig/src/mp4_tag.c 2011-06-08 23:28:43.000000000 +0700
++++ easytag/src/mp4_tag.c 2011-06-08 23:41:36.263768968 +0700
+@@ -21,7 +21,7 @@
+ */
+
+ /* Portions of this code was borrowed from the MPEG4IP tools project */
+-#include <config.h> // For definition of ENABLE_MP4
++#include <config.h> // For definition of ENABLE_TAGLIB
+
+ #ifdef ENABLE_MP4
+
+@@ -50,7 +50,7 @@
+ #undef PACKAGE_STRING
+ #undef PACKAGE_TARNAME
+ #undef PACKAGE_VERSION
+-#include <mp4v2/mp4v2.h>
++#include <tag_c.h>
+
+
+ /****************
+@@ -79,15 +79,9 @@
+ gboolean Mp4tag_Read_File_Tag (gchar *filename, File_Tag *FileTag)
+ {
+ FILE *file;
+- MP4FileHandle mp4file = NULL;
+- uint16_t track, track_total;
+- uint16_t disk, disktotal;
+- u_int8_t *coverArt;
+- u_int32_t coverSize;
+- Picture *prev_pic = NULL;
+-#ifdef NEWMP4
+- gint pic_num;
+-#endif
++ TagLib_File *mp4file;
++ TagLib_Tag *tag;
++ unsigned track;
+
+ if (!filename || !FileTag)
+ return FALSE;
+@@ -102,8 +96,8 @@
+ fclose(file); // We close it cause mp4 opens/closes file itself
+
+ /* Get data from tag */
+- mp4file = MP4Read(filename, 0);
+- if (mp4file == MP4_INVALID_FILE_HANDLE)
++ mp4file = taglib_file_new_type(filename, TagLib_File_MP4);
++ if (mp4file == NULL)
+ {
+ gchar *filename_utf8 = filename_to_display(filename);
+ Log_Print(LOG_ERROR,_("ERROR while opening file: '%s' (%s)."),filename_utf8,_("MP4 format invalid"));
+@@ -112,25 +106,27 @@
+ }
+
+ /* TODO Add error detection */
++ tag = taglib_file_tag(mp4file);
+
+ /*********
+ * Title *
+ *********/
+- MP4GetMetadataName(mp4file, &FileTag->title);
++ FileTag->title = g_strdup(taglib_tag_title(tag));
+
+ /**********
+ * Artist *
+ **********/
+- MP4GetMetadataArtist(mp4file, &FileTag->artist);
++ FileTag->artist = g_strdup(taglib_tag_artist(tag));
+
+ /*********
+ * Album *
+ *********/
+- MP4GetMetadataAlbum(mp4file, &FileTag->album);
++ FileTag->album = g_strdup(taglib_tag_album(tag));
+
+ /**********************
+ * Disk / Total Disks *
+ **********************/
++ /*
+ if (MP4GetMetadataDisk(mp4file, &disk, &disktotal))
+ {
+ if (disk != 0 && disktotal != 0)
+@@ -142,42 +138,44 @@
+ //if (disktotal != 0)
+ // FileTag->disk_number_total = g_strdup_printf("%d",(gint)disktotal);
+ }
++ */
+
+ /********
+ * Year *
+ ********/
+- MP4GetMetadataYear(mp4file, &FileTag->year);
++ FileTag->year = g_strdup_printf("%u", taglib_tag_year(tag));
+
+ /*************************
+ * Track and Total Track *
+ *************************/
+- if (MP4GetMetadataTrack(mp4file, &track, &track_total))
++ track = taglib_tag_track(tag);
++
+ {
+ if (track != 0)
+ FileTag->track = g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,(gint)track); // Just to have numbers like this : '01', '05', '12', ...
+- if (track_total != 0)
+- FileTag->track_total = g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,(gint)track_total); // Just to have numbers like this : '01', '05', '12', ...
++ //if (track_total != 0)
++ // FileTag->track_total = g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,(gint)track_total); // Just to have numbers like this : '01', '05', '12', ...
+ }
+
+ /*********
+ * Genre *
+ *********/
+- MP4GetMetadataGenre(mp4file, &FileTag->genre);
++ FileTag->genre = g_strdup(taglib_tag_genre(tag));
+
+ /***********
+ * Comment *
+ ***********/
+- MP4GetMetadataComment(mp4file, &FileTag->comment);
++ FileTag->comment = g_strdup(taglib_tag_comment(tag));
+
+ /**********************
+ * Composer or Writer *
+ **********************/
+- MP4GetMetadataWriter(mp4file, &FileTag->composer);
++ // MP4GetMetadataWriter(mp4file, &FileTag->composer);
+
+ /*****************
+ * Encoding Tool *
+ *****************/
+- MP4GetMetadataTool(mp4file, &FileTag->encoded_by);
++ // MP4GetMetadataTool(mp4file, &FileTag->encoded_by);
+
+ /* Unimplemented
+ Tempo / BPM
+@@ -187,6 +185,7 @@
+ /***********
+ * Picture *
+ ***********/
++ /*
+ #ifdef NEWMP4
+ // There version can handle multiple pictures!
+ // Version 1.6 of libmp4v2 introduces an index argument for MP4GetMetadataCoverart
+@@ -210,10 +209,11 @@
+ pic->type = PICTURE_TYPE_FRONT_COVER;
+ pic->description = NULL;
+ }
+-
++ */
+
+ /* Free allocated data */
+- MP4Close(mp4file);
++ taglib_tag_free_strings();
++ taglib_file_free(mp4file);
+
+ return TRUE;
+ }
+@@ -233,7 +233,8 @@
+ gchar *filename;
+ gchar *filename_utf8;
+ FILE *file;
+- MP4FileHandle mp4file = NULL;
++ TagLib_File *mp4file = NULL;
++ TagLib_Tag *tag;
+ gint error = 0;
+
+ if (!ETFile || !ETFile->FileTag)
+@@ -252,23 +253,25 @@
+ fclose(file);
+
+ /* Open file for writing */
+- mp4file = MP4Modify(filename,0,0);
+- if (mp4file == MP4_INVALID_FILE_HANDLE)
++ mp4file = taglib_file_new_type(filename, TagLib_File_MP4);
++ if (mp4file == NULL)
+ {
+ Log_Print(LOG_ERROR,_("ERROR while opening file: '%s' (%s)."),filename_utf8,_("MP4 format invalid"));
+ return FALSE;
+ }
++
++ tag = taglib_file_tag(mp4file);
+
+ /*********
+ * Title *
+ *********/
+ if (FileTag->title && g_utf8_strlen(FileTag->title, -1) > 0)
+ {
+- MP4SetMetadataName(mp4file, FileTag->title);
++ taglib_tag_set_title(tag, FileTag->title);
+ }else
+ {
+ //MP4DeleteMetadataName(mp4file); // Not available on mpeg4ip-1.2 (only in 1.3)
+- MP4SetMetadataName(mp4file, "");
++ taglib_tag_set_title(tag, "");
+ }
+
+ /**********
+@@ -276,11 +279,11 @@
+ **********/
+ if (FileTag->artist && g_utf8_strlen(FileTag->artist, -1) > 0)
+ {
+- MP4SetMetadataArtist(mp4file, FileTag->artist);
++ taglib_tag_set_artist(tag, FileTag->artist);
+ }else
+ {
+ //MP4DeleteMetadataArtist(mp4file);
+- MP4SetMetadataArtist(mp4file, "");
++ taglib_tag_set_artist(tag, "");
+ }
+
+ /*********
+@@ -288,11 +291,11 @@
+ *********/
+ if (FileTag->album && g_utf8_strlen(FileTag->album, -1) > 0)
+ {
+- MP4SetMetadataAlbum(mp4file, FileTag->album);
++ taglib_tag_set_album(tag, FileTag->album);
+ }else
+ {
+ //MP4DeleteMetadataAlbum(mp4file);
+- MP4SetMetadataAlbum(mp4file, "");
++ taglib_tag_set_album(tag, "");
+ }
+
+ /**********************
+@@ -301,12 +304,9 @@
+ if (FileTag->disc_number && g_utf8_strlen(FileTag->disc_number, -1) > 0)
+ //|| FileTag->disc_number_total && g_utf8_strlen(FileTag->disc_number_total, -1) > 0)
+ {
+- uint16_t disk = 0;
+- uint16_t disktotal = 0;
+-
+ /* At the present time, we manage only disk number like '1' or '1/2', we
+ * don't use disk number total... so here we try to decompose */
+- if (FileTag->disc_number)
++ /*if (FileTag->disc_number)
+ {
+ gchar *dn_tmp = g_strdup(FileTag->disc_number);
+ gchar *tmp = strchr(dn_tmp,'/');
+@@ -325,16 +325,16 @@
+ }
+ g_free(dn_tmp);
+ }
+- /*if (FileTag->disc_number)
++ if (FileTag->disc_number)
+ disk = atoi(FileTag->disc_number);
+ if (FileTag->disc_number_total)
+ disktotal = atoi(FileTag->disc_number_total);
+ */
+- MP4SetMetadataDisk(mp4file, disk, disktotal);
++ // MP4SetMetadataDisk(mp4file, disk, disktotal);
+ }else
+ {
+ //MP4DeleteMetadataDisk(mp4file);
+- MP4SetMetadataDisk(mp4file, 0, 0);
++ //MP4SetMetadataDisk(mp4file, 0, 0);
+ }
+
+ /********
+@@ -342,30 +342,29 @@
+ ********/
+ if (FileTag->year && g_utf8_strlen(FileTag->year, -1) > 0)
+ {
+- MP4SetMetadataYear(mp4file, FileTag->year);
++ taglib_tag_set_year(tag, atoi(FileTag->year));
+ }else
+ {
+ //MP4DeleteMetadataYear(mp4file);
+- MP4SetMetadataYear(mp4file, "");
++ taglib_tag_set_year(tag, 0);
+ }
+
+ /*************************
+ * Track and Total Track *
+ *************************/
+ if ( (FileTag->track && g_utf8_strlen(FileTag->track, -1) > 0)
+- || (FileTag->track_total && g_utf8_strlen(FileTag->track_total, -1) > 0) )
++ /*|| (FileTag->track_total && g_utf8_strlen(FileTag->track_total, -1) > 0) */)
+ {
+- uint16_t track = 0;
+- uint16_t track_total = 0;
++ unsigned track = 0;
+ if (FileTag->track)
+ track = atoi(FileTag->track);
+- if (FileTag->track_total)
+- track_total = atoi(FileTag->track_total);
+- MP4SetMetadataTrack(mp4file, track, track_total);
++ //if (FileTag->track_total)
++ // track_total = atoi(FileTag->track_total);
++ taglib_tag_set_track(tag, track);
+ }else
+ {
+ //MP4DeleteMetadataTrack(mp4file);
+- MP4SetMetadataTrack(mp4file, 0, 0);
++ taglib_tag_set_track(tag, 0);
+ }
+
+ /*********
+@@ -373,11 +372,11 @@
+ *********/
+ if (FileTag->genre && g_utf8_strlen(FileTag->genre, -1) > 0 )
+ {
+- MP4SetMetadataGenre(mp4file, FileTag->genre);
++ taglib_tag_set_genre(tag, FileTag->genre);
+ }else
+ {
+ //MP4DeleteMetadataGenre(mp4file);
+- MP4SetMetadataGenre(mp4file, "");
++ taglib_tag_set_genre(tag, "");
+ }
+
+ /***********
+@@ -385,16 +384,17 @@
+ ***********/
+ if (FileTag->comment && g_utf8_strlen(FileTag->comment, -1) > 0)
+ {
+- MP4SetMetadataComment(mp4file, FileTag->comment);
++ taglib_tag_set_comment(tag, FileTag->comment);
+ }else
+ {
+ //MP4DeleteMetadataComment(mp4file);
+- MP4SetMetadataComment(mp4file, "");
++ taglib_tag_set_comment(tag, "");
+ }
+
+ /**********************
+ * Composer or Writer *
+ **********************/
++ /*
+ if (FileTag->composer && g_utf8_strlen(FileTag->composer, -1) > 0)
+ {
+ MP4SetMetadataWriter(mp4file, FileTag->composer);
+@@ -403,10 +403,12 @@
+ //MP4DeleteMetadataWriter(mp4file);
+ MP4SetMetadataWriter(mp4file, "");
+ }
++ */
+
+ /*****************
+ * Encoding Tool *
+ *****************/
++ /*
+ if (FileTag->encoded_by && g_utf8_strlen(FileTag->encoded_by, -1) > 0)
+ {
+ MP4SetMetadataTool(mp4file, FileTag->encoded_by);
+@@ -415,10 +417,12 @@
+ //MP4DeleteMetadataTool(mp4file);
+ MP4SetMetadataTool(mp4file, "");
+ }
++ */
+
+ /***********
+ * Picture *
+ ***********/
++ /*
+ {
+ // Can handle only one picture...
+ Picture *pic;
+@@ -433,9 +437,10 @@
+ }
+ }
+ }
++ */
+
+-
+- MP4Close(mp4file);
++ taglib_file_save(mp4file);
++ taglib_file_free(mp4file);
+
+ if (error) return FALSE;
+ else return TRUE;
+Index: easytag/src/easytag.c
+===================================================================
+--- easytag.orig/src/easytag.c 2011-06-08 23:28:43.000000000 +0700
++++ easytag/src/easytag.c 2011-06-08 23:28:50.000000000 +0700
+@@ -4318,12 +4318,12 @@
+
+ #ifdef ENABLE_MP4
+ case MP4_TAG:
+- gtk_widget_show(GTK_WIDGET(DiscNumberLabel));
+- gtk_widget_show(GTK_WIDGET(DiscNumberEntry));
+- gtk_widget_show(GTK_WIDGET(DiscNumberMButton));
+- gtk_widget_show(GTK_WIDGET(ComposerLabel));
+- gtk_widget_show(GTK_WIDGET(ComposerEntry));
+- gtk_widget_show(GTK_WIDGET(ComposerMButton));
++ gtk_widget_hide(GTK_WIDGET(DiscNumberLabel));
++ gtk_widget_hide(GTK_WIDGET(DiscNumberEntry));
++ gtk_widget_hide(GTK_WIDGET(DiscNumberMButton));
++ gtk_widget_hide(GTK_WIDGET(ComposerLabel));
++ gtk_widget_hide(GTK_WIDGET(ComposerEntry));
++ gtk_widget_hide(GTK_WIDGET(ComposerMButton));
+ gtk_widget_hide(GTK_WIDGET(OrigArtistLabel));
+ gtk_widget_hide(GTK_WIDGET(OrigArtistEntry));
+ gtk_widget_hide(GTK_WIDGET(OrigArtistMButton));
+@@ -4333,16 +4333,16 @@
+ gtk_widget_hide(GTK_WIDGET(URLLabel));
+ gtk_widget_hide(GTK_WIDGET(URLEntry));
+ gtk_widget_hide(GTK_WIDGET(URLMButton));
+- gtk_widget_show(GTK_WIDGET(EncodedByLabel));
+- gtk_widget_show(GTK_WIDGET(EncodedByEntry));
+- gtk_widget_show(GTK_WIDGET(EncodedByMButton));
+- gtk_widget_show(GTK_WIDGET(PictureLabel));
+- gtk_widget_show(GTK_WIDGET(PictureScrollWindow));
+- gtk_widget_show(GTK_WIDGET(PictureMButton));
+- gtk_widget_show(GTK_WIDGET(PictureClearButton));
+- gtk_widget_show(GTK_WIDGET(PictureAddButton));
+- gtk_widget_show(GTK_WIDGET(PictureSaveButton));
+- gtk_widget_show(GTK_WIDGET(PicturePropertiesButton));
++ gtk_widget_hide(GTK_WIDGET(EncodedByLabel));
++ gtk_widget_hide(GTK_WIDGET(EncodedByEntry));
++ gtk_widget_hide(GTK_WIDGET(EncodedByMButton));
++ gtk_widget_hide(GTK_WIDGET(PictureLabel));
++ gtk_widget_hide(GTK_WIDGET(PictureScrollWindow));
++ gtk_widget_hide(GTK_WIDGET(PictureMButton));
++ gtk_widget_hide(GTK_WIDGET(PictureClearButton));
++ gtk_widget_hide(GTK_WIDGET(PictureAddButton));
++ gtk_widget_hide(GTK_WIDGET(PictureSaveButton));
++ gtk_widget_hide(GTK_WIDGET(PicturePropertiesButton));
+ break;
+ #endif
+
--
easytag packaging
More information about the pkg-multimedia-commits
mailing list