From 4d8b6160185a9ba7c26cb2bc0df6e2d4ddf457ca Mon Sep 17 00:00:00 2001 From: wiz Date: Mon, 11 Feb 2013 08:56:39 +0000 Subject: Update to 2.1.8: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2.1.8 - 2013-02-10 : ==================== * Port to and require the most recent GTK+ 2 release (2.24) * Allow experimental compilation against GTK+ 3 * Many memory leaks fixed * Remove the Debian and RPM packaging * Christoph J. Thompson's change to not install the ChangeLog * Adrian Bunk's FLAC, configure, sign comparison warning and GBase64 fixes * Waqa Qamar's new icons * Small fixes to allow compilation under mingw * Fix overlaid text in scanner legend * Alessio Ababilov's SIGCHLD handling fix * Move configuration files to XDG firectories * Andreas Winkelmann's configuration file, remove all text, disc number column and compiler warning fixes * Switch to TagLib for MP4 tag editing and drop libmp4v2 support * Fix album artist entry focus chain order * Remove Changes tab in about dialog * Tidy and internationalize the desktop file * Fix many spelling errors and typos * Several translation updates * Rewrite build system * Use intltool for internationalization * Drop dependency on libtool * Leonid Podolny's easytag-2.1.6-from-txt.patch for segfault when pressing "Apply" in "Load filenames from TXT" dialog, * WiseLord's fix-genre-tag.patch to fix predefined genres displayed under legacy systems. * Michał Smoczyk's updated Polish translation * Christoph J. Thompson's .desktop cleanup patch * Christoph J. Thompson's add a new option to trim spaces when renaming files patch * Nick Lanham's to make easytag compile against newest version of libmp4v2 * Wojciech Wierchola's file save performance improvement * Julian Taylor's fix out of bound array access * Honore Doktorr's revised libmp4v2 patch * Algimantas Margevičius's Lithuanian translation --- audio/easytag/DESCR | 25 -- audio/easytag/Makefile | 19 +- audio/easytag/PLIST | 18 +- audio/easytag/distinfo | 12 +- audio/easytag/options.mk | 10 +- audio/easytag/patches/patch-src_mp4__header.c | 34 -- audio/easytag/patches/patch-src_mp4__tag.c | 479 ------------------------- audio/easytag/patches/patch-src_picture.c | 33 -- audio/easytag/patches/patch-src_wavpack__tag.c | 51 +++ 9 files changed, 81 insertions(+), 600 deletions(-) delete mode 100644 audio/easytag/patches/patch-src_mp4__header.c delete mode 100644 audio/easytag/patches/patch-src_mp4__tag.c delete mode 100644 audio/easytag/patches/patch-src_picture.c create mode 100644 audio/easytag/patches/patch-src_wavpack__tag.c (limited to 'audio/easytag') diff --git a/audio/easytag/DESCR b/audio/easytag/DESCR index 33916d0dca8..9715c68fa6c 100644 --- a/audio/easytag/DESCR +++ b/audio/easytag/DESCR @@ -1,27 +1,2 @@ EasyTAG is an utility to easily and quickly view, edit and write your audio files' tags from a nice GTK+ interface. - -Its main features include: -o View, edit, write tags of MP3, MP2 files (ID3 tag with pictures). - FLAC files (FLAC Vorbis tag), Ogg Vorbis files (Ogg Vorbis tag). - MP4/AAC (MP4/AAC tag), MusePack, Monkey's Audio files, Speex, - and WavPack files (APE tag). -o Auto tagging: parse filename and directory to complete automatically - the fields (using masks). -o Ability to rename files and directories from the tag (using masks) - or by loading a text file. -o Process selected files of the selected directory. -o Recursion for tagging, removing, renaming, saving.... -o Can set a field (artist, title,...) to all other files. -o Read file header informations (bitrate, time, ...) and display them. -o Auto completion of the date if a partial is entered. -o Undo and redo last changes. -o Ability to process fields of tag and file name (convert letters - into uppercase, downcase, ...). -o Ability to open a directory or a file with an external program. -o CDDB support using Freedb.org and Gnudb.org servers (manual and - automatic search). -o A tree based browser or a view by Artist & Album. -o A list to select files. -o A playlist generator window. -o A file searching window. diff --git a/audio/easytag/Makefile b/audio/easytag/Makefile index f28fee6a14a..3d99932d2ab 100644 --- a/audio/easytag/Makefile +++ b/audio/easytag/Makefile @@ -1,31 +1,28 @@ -# $NetBSD: Makefile,v 1.78 2012/12/03 22:39:04 wiz Exp $ +# $NetBSD: Makefile,v 1.79 2013/02/11 08:56:39 wiz Exp $ # -DISTNAME= easytag-2.1.7 -PKGREVISION= 5 +DISTNAME= easytag-2.1.8 CATEGORIES= audio -MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=easytag/} -EXTRACT_SUFX= .tar.bz2 +MASTER_SITES= ${MASTER_SITE_GNOME:=sources/easytag/2.1/} +EXTRACT_SUFX= .tar.xz MAINTAINER= wiz@NetBSD.org -HOMEPAGE= http://easytag.sourceforge.net/ +HOMEPAGE= http://projects.gnome.org/easytag/ COMMENT= GTK+ tag editor for MP3, Ogg Vorbis files, and others LICENSE= gnu-gpl-v2 GNU_CONFIGURE= yes USE_LANGUAGES= c c++ -USE_LIBTOOL= yes USE_PKGLOCALEDIR= yes -USE_TOOLS+= pkg-config xgettext +USE_TOOLS+= gmake intltool pkg-config xgettext .include "options.mk" -BUILDLINK_API_DEPENDS.glib2+= glib2>=2.4.1 -BUILDLINK_API_DEPENDS.gtk2+= gtk2+>=2.4.1 - .include "../../audio/libid3tag/buildlink3.mk" .include "../../audio/id3lib/buildlink3.mk" +.include "../../audio/taglib/buildlink3.mk" .include "../../devel/glib2/buildlink3.mk" +BUILDLINK_API_DEPENDS.gtk2+= gtk2+>=2.24 .include "../../x11/gtk2/buildlink3.mk" .include "../../sysutils/desktop-file-utils/desktopdb.mk" .include "../../mk/bsd.pkg.mk" diff --git a/audio/easytag/PLIST b/audio/easytag/PLIST index 8e5337d8604..f1c3c46f09e 100644 --- a/audio/easytag/PLIST +++ b/audio/easytag/PLIST @@ -1,9 +1,17 @@ -@comment $NetBSD: PLIST,v 1.17 2012/03/08 09:49:26 wiz Exp $ +@comment $NetBSD: PLIST,v 1.18 2013/02/11 08:56:39 wiz Exp $ bin/easytag man/man1/easytag.1 share/applications/easytag.desktop -share/easytag/ChangeLog -share/easytag/EasyTAG_logo.xpm +share/doc/easytag/HACKING +share/doc/easytag/THANKS +share/doc/easytag/TODO +share/icons/hicolor/128x128/apps/easytag.png +share/icons/hicolor/16x16/apps/easytag.png +share/icons/hicolor/256x256/apps/easytag.png +share/icons/hicolor/32x32/apps/easytag.png +share/icons/hicolor/48x48/apps/easytag.png +share/icons/hicolor/64x64/apps/easytag.png +share/icons/hicolor/scalable/apps/easytag.svg share/locale/bg/LC_MESSAGES/easytag.mo share/locale/cs/LC_MESSAGES/easytag.mo share/locale/da/LC_MESSAGES/easytag.mo @@ -15,15 +23,17 @@ share/locale/he/LC_MESSAGES/easytag.mo share/locale/hu/LC_MESSAGES/easytag.mo share/locale/it/LC_MESSAGES/easytag.mo share/locale/ja/LC_MESSAGES/easytag.mo +share/locale/lt/LC_MESSAGES/easytag.mo share/locale/nl/LC_MESSAGES/easytag.mo share/locale/pl/LC_MESSAGES/easytag.mo share/locale/pt_BR/LC_MESSAGES/easytag.mo share/locale/ro/LC_MESSAGES/easytag.mo share/locale/ru/LC_MESSAGES/easytag.mo +share/locale/sl/LC_MESSAGES/easytag.mo share/locale/sr/LC_MESSAGES/easytag.mo share/locale/sr@Latn/LC_MESSAGES/easytag.mo +share/locale/sr@latin/LC_MESSAGES/easytag.mo share/locale/sv/LC_MESSAGES/easytag.mo share/locale/uk/LC_MESSAGES/easytag.mo share/locale/zh_CN/LC_MESSAGES/easytag.mo share/locale/zh_TW/LC_MESSAGES/easytag.mo -share/pixmaps/EasyTAG_icon.xpm diff --git a/audio/easytag/distinfo b/audio/easytag/distinfo index 25d2aba97d3..7dc5b7000b8 100644 --- a/audio/easytag/distinfo +++ b/audio/easytag/distinfo @@ -1,8 +1,6 @@ -$NetBSD: distinfo,v 1.31 2012/12/03 22:39:04 wiz Exp $ +$NetBSD: distinfo,v 1.32 2013/02/11 08:56:39 wiz Exp $ -SHA1 (easytag-2.1.7.tar.bz2) = 7b56ba18be2f1bec0171e5de4447ba763a264f92 -RMD160 (easytag-2.1.7.tar.bz2) = abe8df519ed41b9424080d73cb16c4a75dcb511f -Size (easytag-2.1.7.tar.bz2) = 3303491 bytes -SHA1 (patch-src_mp4__header.c) = 83afd4dea1a2e3d9fee6b49fd8e5eb1ff25f9548 -SHA1 (patch-src_mp4__tag.c) = db346e42adae05c3694b42a91b363077685c934f -SHA1 (patch-src_picture.c) = 1d97cac351511163340daa945d0768081fb0145d +SHA1 (easytag-2.1.8.tar.xz) = 7f9246b0eab97ed9739daf5356c89925634241a2 +RMD160 (easytag-2.1.8.tar.xz) = 0b8ef3689730b2ae4fbf8131dbd1328bbf1da8a0 +Size (easytag-2.1.8.tar.xz) = 2459496 bytes +SHA1 (patch-src_wavpack__tag.c) = 7b4830930846818a8cdb869c6bc8f85d79d8b5be diff --git a/audio/easytag/options.mk b/audio/easytag/options.mk index 4c67690b501..1a650513c95 100644 --- a/audio/easytag/options.mk +++ b/audio/easytag/options.mk @@ -1,8 +1,8 @@ -# $NetBSD: options.mk,v 1.6 2012/12/03 22:39:04 wiz Exp $ +# $NetBSD: options.mk,v 1.7 2013/02/11 08:56:40 wiz Exp $ PKG_OPTIONS_VAR= PKG_OPTIONS.easytag -PKG_SUPPORTED_OPTIONS= flac mp4v2 ogg speex wavpack -PKG_SUGGESTED_OPTIONS= flac mp4v2 ogg speex wavpack +PKG_SUPPORTED_OPTIONS= flac ogg speex wavpack +PKG_SUGGESTED_OPTIONS= flac ogg speex wavpack .include "../../mk/bsd.options.mk" @@ -14,10 +14,6 @@ CONFIGURE_ARGS+= --enable-flac CONFIGURE_ARGS+= --disable-flac .endif -.if !empty(PKG_OPTIONS:Mmp4v2) -.include "../../multimedia/mp4v2/buildlink3.mk" -.endif - .if !empty(PKG_OPTIONS:Mogg) . include "../../audio/libvorbis/buildlink3.mk" CONFIGURE_ARGS+= --enable-ogg diff --git a/audio/easytag/patches/patch-src_mp4__header.c b/audio/easytag/patches/patch-src_mp4__header.c deleted file mode 100644 index 3e50b2665f6..00000000000 --- a/audio/easytag/patches/patch-src_mp4__header.c +++ /dev/null @@ -1,34 +0,0 @@ -$NetBSD: patch-src_mp4__header.c,v 1.1 2012/12/03 22:39:05 wiz Exp $ - -Gentoo patch for mp4v2-2.0 compatibility. -https://bugs.gentoo.org/show_bug.cgi?id=409281 - ---- src/mp4_header.c.orig 2011-07-04 00:59:21.000000000 +0000 -+++ src/mp4_header.c -@@ -204,7 +204,7 @@ gboolean Mp4_Header_Read_File_Info (gcha - /* Get size of file */ - ETFileInfo->size = Get_File_Size(filename); - -- if ((file = MP4Read(filename, 0)) == MP4_INVALID_FILE_HANDLE ) -+ if ((file = MP4Read(filename)) == MP4_INVALID_FILE_HANDLE ) - { - gchar *filename_utf8 = filename_to_display(filename); - //g_print(_("ERROR while opening file: '%s' (%s)."),filename_utf8,g_strerror(errno)); -@@ -218,7 +218,7 @@ gboolean Mp4_Header_Read_File_Info (gcha - { - 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); -+ MP4Close(file, 0); - g_free(filename_utf8); - return FALSE; - } -@@ -243,7 +243,7 @@ gboolean Mp4_Header_Read_File_Info (gcha - ETFileInfo->mode = MP4GetTrackAudioChannels(file, trackId); - ETFileInfo->duration = MP4ConvertFromTrackDuration(file, trackId, MP4GetTrackDuration(file, trackId), MP4_SECS_TIME_SCALE); - -- MP4Close(file); -+ MP4Close(file, 0); - return TRUE; - } - diff --git a/audio/easytag/patches/patch-src_mp4__tag.c b/audio/easytag/patches/patch-src_mp4__tag.c deleted file mode 100644 index 5b3195f8839..00000000000 --- a/audio/easytag/patches/patch-src_mp4__tag.c +++ /dev/null @@ -1,479 +0,0 @@ -$NetBSD: patch-src_mp4__tag.c,v 1.1 2012/12/03 22:39:05 wiz Exp $ - -Gentoo patch for mp4v2-2.0 compatibility. -https://bugs.gentoo.org/show_bug.cgi?id=409281 - ---- src/mp4_tag.c.orig 2011-07-04 00:59:21.000000000 +0000 -+++ src/mp4_tag.c -@@ -80,15 +80,9 @@ gboolean Mp4tag_Read_File_Tag (gchar *fi - { - 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 -- -+ - if (!filename || !FileTag) - return FALSE; - -@@ -102,7 +96,7 @@ gboolean Mp4tag_Read_File_Tag (gchar *fi - fclose(file); // We close it cause mp4 opens/closes file itself - - /* Get data from tag */ -- mp4file = MP4Read(filename, 0); -+ mp4file = MP4Read(filename); - if (mp4file == MP4_INVALID_FILE_HANDLE) - { - gchar *filename_utf8 = filename_to_display(filename); -@@ -111,109 +105,134 @@ gboolean Mp4tag_Read_File_Tag (gchar *fi - return FALSE; - } - -+ const MP4Tags* tags = MP4TagsAlloc(); -+ MP4TagsFetch(tags, mp4file); -+ - /* TODO Add error detection */ - - /********* - * Title * - *********/ -- MP4GetMetadataName(mp4file, &FileTag->title); -+ if (tags->name) -+ { -+ FileTag->title = Try_To_Validate_Utf8_String(tags->name); -+ } - - /********** - * Artist * - **********/ -- MP4GetMetadataArtist(mp4file, &FileTag->artist); -+ if (tags->artist) -+ { -+ FileTag->artist = Try_To_Validate_Utf8_String(tags->artist); -+ } -+ -+ /**************** -+ * Album Artist * -+ ****************/ -+ if (tags->albumArtist) -+ { -+ FileTag->album_artist = Try_To_Validate_Utf8_String(tags->albumArtist); -+ } - - /********* - * Album * - *********/ -- MP4GetMetadataAlbum(mp4file, &FileTag->album); -+ if (tags->album) -+ { -+ FileTag->album = Try_To_Validate_Utf8_String(tags->album); -+ } - - /********************** - * Disk / Total Disks * - **********************/ -- if (MP4GetMetadataDisk(mp4file, &disk, &disktotal)) -+ if (tags->disk) - { -- if (disk != 0 && disktotal != 0) -- FileTag->disc_number = g_strdup_printf("%d/%d",(gint)disk,(gint)disktotal); -- else if (disk != 0) -- FileTag->disc_number = g_strdup_printf("%d",(gint)disk); -- else if (disktotal != 0) -- FileTag->disc_number = g_strdup_printf("/%d",(gint)disktotal); -- //if (disktotal != 0) -- // FileTag->disk_number_total = g_strdup_printf("%d",(gint)disktotal); -+ if (tags->disk->index != 0 && tags->disk->total != 0) -+ FileTag->disc_number = g_strdup_printf("%d/%d",(gint)tags->disk->index,(gint)tags->disk->total); -+ else if (tags->disk->index != 0) -+ FileTag->disc_number = g_strdup_printf("%d",(gint)tags->disk->index); -+ else if (tags->disk->total != 0) -+ FileTag->disc_number = g_strdup_printf("/%d",(gint)tags->disk->total); - } - - /******** - * Year * - ********/ -- MP4GetMetadataYear(mp4file, &FileTag->year); -+ if (tags->releaseDate) -+ { -+ FileTag->year = Try_To_Validate_Utf8_String(tags->releaseDate); -+ } - - /************************* - * Track and Total Track * - *************************/ -- if (MP4GetMetadataTrack(mp4file, &track, &track_total)) -+ if (tags->track) - { -- 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 (tags->track->index != 0) -+ FileTag->track = g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,(gint)tags->track->index); // Just to have numbers like this : '01', '05', '12', ... -+ if (tags->track->total != 0) -+ FileTag->track_total = g_strdup_printf("%.*d",NUMBER_TRACK_FORMATED_SPIN_BUTTON,(gint)tags->track->total); // Just to have numbers like this : '01', '05', '12', ... - } - - /********* - * Genre * - *********/ -- MP4GetMetadataGenre(mp4file, &FileTag->genre); -+ if (tags->genre) -+ { -+ FileTag->genre = Try_To_Validate_Utf8_String(tags->genre); -+ } - - /*********** - * Comment * - ***********/ -- MP4GetMetadataComment(mp4file, &FileTag->comment); -+ if (tags->comments) -+ { -+ FileTag->comment = Try_To_Validate_Utf8_String(tags->comments); -+ } - - /********************** - * Composer or Writer * - **********************/ -- MP4GetMetadataWriter(mp4file, &FileTag->composer); -+ if (tags->composer) -+ { -+ FileTag->composer = Try_To_Validate_Utf8_String(tags->composer); -+ } - - /***************** - * Encoding Tool * - *****************/ -- MP4GetMetadataTool(mp4file, &FileTag->encoded_by); -- -- /* Unimplemented -- Tempo / BPM -- MP4GetMetadataTempo(file, &string) -- */ -+ if (tags->encodedBy) -+ { -+ FileTag->encoded_by = Try_To_Validate_Utf8_String(tags->encodedBy); -+ } - - /*********** - * Picture * - ***********/ --#ifdef NEWMP4 -- // There version can handle multiple pictures! -- // Version 1.6 of libmp4v2 introduces an index argument for MP4GetMetadataCoverart -- for (pic_num = 0; (MP4GetMetadataCoverArt( mp4file, &coverArt, &coverSize,pic_num )); pic_num++) --#else -- // There version handle only one picture! -- if ( MP4GetMetadataCoverArt( mp4file, &coverArt, &coverSize ) ) --#endif -- { -- 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; -+ if (tags->artworkCount) { -+ const MP4TagArtwork* art = tags->artwork; /* artwork != NULL when artworkCount > 0 */ -+ for (pic_num = 0; pic_num < tags->artworkCount; pic_num++, art++) -+ { -+ Picture *pic; -+ -+ pic = Picture_Allocate(); -+ if (!prev_pic) -+ FileTag->picture = pic; -+ else -+ prev_pic->next = pic; -+ prev_pic = pic; -+ -+ pic->size = art->size; -+ pic->data = g_memdup(art->data, pic->size); -+ pic->type = PICTURE_TYPE_FRONT_COVER; -+ pic->description = NULL; -+ } - } - - - /* Free allocated data */ -- MP4Close(mp4file); -+ MP4TagsFree(tags); -+ MP4Close(mp4file, 0); - - return TRUE; - } -@@ -235,6 +254,7 @@ gboolean Mp4tag_Write_File_Tag (ET_File - FILE *file; - MP4FileHandle mp4file = NULL; - gint error = 0; -+ gint pic_num; - - if (!ETFile || !ETFile->FileTag) - return FALSE; -@@ -252,23 +272,25 @@ gboolean Mp4tag_Write_File_Tag (ET_File - fclose(file); - - /* Open file for writing */ -- mp4file = MP4Modify(filename,0,0); -+ mp4file = MP4Modify(filename, 0); - if (mp4file == MP4_INVALID_FILE_HANDLE) - { - Log_Print(LOG_ERROR,_("ERROR while opening file: '%s' (%s)."),filename_utf8,_("MP4 format invalid")); - return FALSE; - } - -+ const MP4Tags* tags = MP4TagsAlloc(); -+ MP4TagsFetch(tags, mp4file); -+ - /********* - * Title * - *********/ - if (FileTag->title && g_utf8_strlen(FileTag->title, -1) > 0) - { -- MP4SetMetadataName(mp4file, FileTag->title); -+ MP4TagsSetName(tags, FileTag->title); - }else - { -- //MP4DeleteMetadataName(mp4file); // Not available on mpeg4ip-1.2 (only in 1.3) -- MP4SetMetadataName(mp4file, ""); -+ MP4TagsSetName(tags, ""); - } - - /********** -@@ -276,11 +298,21 @@ gboolean Mp4tag_Write_File_Tag (ET_File - **********/ - if (FileTag->artist && g_utf8_strlen(FileTag->artist, -1) > 0) - { -- MP4SetMetadataArtist(mp4file, FileTag->artist); -+ MP4TagsSetArtist(tags, FileTag->artist); -+ }else -+ { -+ MP4TagsSetArtist(tags, ""); -+ } -+ -+ /**************** -+ * Album Artist * -+ ****************/ -+ if (FileTag->artist && g_utf8_strlen(FileTag->artist, -1) > 0) -+ { -+ MP4TagsSetAlbumArtist(tags, FileTag->album_artist); - }else - { -- //MP4DeleteMetadataArtist(mp4file); -- MP4SetMetadataArtist(mp4file, ""); -+ MP4TagsSetAlbumArtist(tags, ""); - } - - /********* -@@ -288,22 +320,19 @@ gboolean Mp4tag_Write_File_Tag (ET_File - *********/ - if (FileTag->album && g_utf8_strlen(FileTag->album, -1) > 0) - { -- MP4SetMetadataAlbum(mp4file, FileTag->album); -+ MP4TagsSetAlbum(tags, FileTag->album); - }else - { -- //MP4DeleteMetadataAlbum(mp4file); -- MP4SetMetadataAlbum(mp4file, ""); -+ MP4TagsSetAlbum(tags, ""); - } - - /********************** - * Disk / Total Disks * - **********************/ -+ MP4TagDisk td; - 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) -@@ -314,27 +343,24 @@ gboolean Mp4tag_Write_File_Tag (ET_File - { - // A disc_number_total was entered - if ( (tmp+1) && atoi(tmp+1) ) -- disktotal = atoi(tmp+1); -+ td.total = atoi(tmp+1); - - // Fill disc_number - *tmp = '\0'; -- disk = atoi(dn_tmp); -+ td.index = atoi(dn_tmp); - }else - { -- disk = atoi(FileTag->disc_number); -+ td.index = atoi(FileTag->disc_number); -+ td.total = NULL; - } - g_free(dn_tmp); - } -- /*if (FileTag->disc_number) -- disk = atoi(FileTag->disc_number); -- if (FileTag->disc_number_total) -- disktotal = atoi(FileTag->disc_number_total); -- */ -- MP4SetMetadataDisk(mp4file, disk, disktotal); -+ MP4TagsSetDisk(tags, &td); - }else - { -- //MP4DeleteMetadataDisk(mp4file); -- MP4SetMetadataDisk(mp4file, 0, 0); -+ td.index = NULL; -+ td.total = NULL; -+ MP4TagsSetDisk(tags, &td); - } - - /******** -@@ -342,30 +368,29 @@ gboolean Mp4tag_Write_File_Tag (ET_File - ********/ - if (FileTag->year && g_utf8_strlen(FileTag->year, -1) > 0) - { -- MP4SetMetadataYear(mp4file, FileTag->year); -+ MP4TagsSetReleaseDate(tags, FileTag->year); - }else - { -- //MP4DeleteMetadataYear(mp4file); -- MP4SetMetadataYear(mp4file, ""); -+ MP4TagsSetReleaseDate(tags, ""); - } - - /************************* - * Track and Total Track * - *************************/ -+ MP4TagTrack tt; - if ( (FileTag->track && g_utf8_strlen(FileTag->track, -1) > 0) - || (FileTag->track_total && g_utf8_strlen(FileTag->track_total, -1) > 0) ) - { -- uint16_t track = 0; -- uint16_t track_total = 0; - if (FileTag->track) -- track = atoi(FileTag->track); -+ tt.index = atoi(FileTag->track); - if (FileTag->track_total) -- track_total = atoi(FileTag->track_total); -- MP4SetMetadataTrack(mp4file, track, track_total); -+ tt.total = atoi(FileTag->track_total); -+ MP4TagsSetTrack(tags, &tt); - }else - { -- //MP4DeleteMetadataTrack(mp4file); -- MP4SetMetadataTrack(mp4file, 0, 0); -+ tt.index = NULL; -+ tt.total = NULL; -+ MP4TagsSetTrack(tags, &tt); - } - - /********* -@@ -373,11 +398,10 @@ gboolean Mp4tag_Write_File_Tag (ET_File - *********/ - if (FileTag->genre && g_utf8_strlen(FileTag->genre, -1) > 0 ) - { -- MP4SetMetadataGenre(mp4file, FileTag->genre); -+ MP4TagsSetGenre(tags, FileTag->genre); - }else - { -- //MP4DeleteMetadataGenre(mp4file); -- MP4SetMetadataGenre(mp4file, ""); -+ MP4TagsSetGenre(tags, ""); - } - - /*********** -@@ -385,11 +409,10 @@ gboolean Mp4tag_Write_File_Tag (ET_File - ***********/ - if (FileTag->comment && g_utf8_strlen(FileTag->comment, -1) > 0) - { -- MP4SetMetadataComment(mp4file, FileTag->comment); -+ MP4TagsSetComments(tags, FileTag->comment); - }else - { -- //MP4DeleteMetadataComment(mp4file); -- MP4SetMetadataComment(mp4file, ""); -+ MP4TagsSetComments(tags, ""); - } - - /********************** -@@ -397,11 +420,10 @@ gboolean Mp4tag_Write_File_Tag (ET_File - **********************/ - if (FileTag->composer && g_utf8_strlen(FileTag->composer, -1) > 0) - { -- MP4SetMetadataWriter(mp4file, FileTag->composer); -+ MP4TagsSetComposer(tags, FileTag->composer); - }else - { -- //MP4DeleteMetadataWriter(mp4file); -- MP4SetMetadataWriter(mp4file, ""); -+ MP4TagsSetComposer(tags, ""); - } - - /***************** -@@ -409,33 +431,39 @@ gboolean Mp4tag_Write_File_Tag (ET_File - *****************/ - if (FileTag->encoded_by && g_utf8_strlen(FileTag->encoded_by, -1) > 0) - { -- MP4SetMetadataTool(mp4file, FileTag->encoded_by); -+ MP4TagsSetEncodedBy(tags, FileTag->encoded_by); - }else - { -- //MP4DeleteMetadataTool(mp4file); -- MP4SetMetadataTool(mp4file, ""); -+ MP4TagsSetEncodedBy(tags, ""); - } - - /*********** - * Picture * - ***********/ -+ Picture *pic = FileTag->picture; -+ const gint artworkCount = tags->artworkCount; -+ -+ for (pic_num = 0; pic_num < artworkCount; pic_num++) - { -- // Can handle only one picture... -- Picture *pic; -+ MP4TagsRemoveArtwork(tags, 0); -+ } - -- //MP4DeleteMetadataCoverArt(mp4file); -- MP4SetMetadataCoverArt(mp4file, NULL, 0); -- for( pic = FileTag->picture; pic; pic = pic->next ) -+ while (pic) -+ { -+ if (pic->data) - { -- if( pic->type == PICTURE_TYPE_FRONT_COVER ) -- { -- MP4SetMetadataCoverArt(mp4file, pic->data, pic->size); -- } -+ MP4TagArtwork art; -+ art.data = pic->data; -+ art.size = pic->size; -+ art.type = MP4_ART_UNDEFINED; // delegate typing to libmp4v2 -+ MP4TagsAddArtwork(tags, &art); - } -+ pic = pic->next; - } - -- -- MP4Close(mp4file); -+ MP4TagsStore(tags, mp4file); -+ MP4TagsFree(tags); -+ MP4Close(mp4file, 0); - - if (error) return FALSE; - else return TRUE; diff --git a/audio/easytag/patches/patch-src_picture.c b/audio/easytag/patches/patch-src_picture.c deleted file mode 100644 index 63b9261752c..00000000000 --- a/audio/easytag/patches/patch-src_picture.c +++ /dev/null @@ -1,33 +0,0 @@ -$NetBSD: patch-src_picture.c,v 1.1 2012/12/03 22:39:05 wiz Exp $ - -Gentoo patch for mp4v2-2.0 compatibility. -https://bugs.gentoo.org/show_bug.cgi?id=409281 - ---- src/picture.c.orig 2011-07-04 00:59:21.000000000 +0000 -+++ src/picture.c -@@ -326,24 +326,7 @@ void Picture_Add_Button_Clicked (GObject - else if (MESSAGE_BOX_POSITION_MOUSE) - gtk_window_set_position(GTK_WINDOW(FileSelectionWindow),GTK_WIN_POS_MOUSE); - -- // Behaviour following the tag type... -- switch (ETCore->ETFileDisplayed->ETFileDescription->TagType) -- { -- case MP4_TAG: -- { -- // Only one file can be selected -- gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(FileSelectionWindow), FALSE); -- break; -- } -- -- // Other tag types -- default: -- { -- gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(FileSelectionWindow), TRUE); -- break; -- } -- } -- -+ gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(FileSelectionWindow), TRUE); - gtk_dialog_set_default_response(GTK_DIALOG(FileSelectionWindow), GTK_RESPONSE_OK); - - // Starting directory (the same of the current file) diff --git a/audio/easytag/patches/patch-src_wavpack__tag.c b/audio/easytag/patches/patch-src_wavpack__tag.c new file mode 100644 index 00000000000..45812960ece --- /dev/null +++ b/audio/easytag/patches/patch-src_wavpack__tag.c @@ -0,0 +1,51 @@ +$NetBSD: patch-src_wavpack__tag.c,v 1.1 2013/02/11 08:56:42 wiz Exp $ + +Allow compilation with c90 compiler. + +--- src/wavpack_tag.c.orig 2013-02-05 22:42:37.000000000 +0000 ++++ src/wavpack_tag.c +@@ -82,15 +82,15 @@ gboolean Wavpack_Tag_Write_File (FILE *f + */ + gboolean Wavpack_Tag_Read_File_Tag (gchar *filename, File_Tag *FileTag) + { +- if (!filename || !FileTag) +- return FALSE; +- + WavpackContext *wpc; + gchar *field, *field2; + guint length; + + int open_flags = OPEN_TAGS; + ++ if (!filename || !FileTag) ++ return FALSE; ++ + wpc = WavpackOpenFileInput(filename, NULL, open_flags, 0); + + if ( wpc == NULL ) { +@@ -271,17 +271,20 @@ gboolean Wavpack_Tag_Read_File_Tag (gcha + + gboolean Wavpack_Tag_Write_File_Tag (ET_File *ETFile) + { +- if (!ETFile || !ETFile->FileTag) +- return FALSE; +- + WavpackContext *wpc; + +- gchar *filename = ((File_Name *)((GList *)ETFile->FileNameCur)->data)->value; +- File_Tag *FileTag = (File_Tag *)ETFile->FileTag->data; ++ gchar *filename; ++ File_Tag *FileTag; + gchar *buffer; + + int open_flags = OPEN_EDIT_TAGS; + ++ if (!ETFile || !ETFile->FileTag) ++ return FALSE; ++ ++ filename = ((File_Name *)((GList *)ETFile->FileNameCur)->data)->value; ++ FileTag = (File_Tag *)ETFile->FileTag->data; ++ + wpc = WavpackOpenFileInput(filename, NULL, open_flags, 0); + + if ( wpc == NULL ) { -- cgit v1.2.3