Sisyphus repositório
Última atualização: 1 outubro 2023 | SRPMs: 18631 | Visitas: 37636938
en ru br
ALT Linux repositórios
S:1.28-alt2
5.0: 1.26-alt1
4.1: 1.26-alt1
4.0: 1.25-alt3
3.0: 1.24-alt1.1

Group :: Som
RPM: faac

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs e FR  Repocop 

Patch: faac-1.28-mp4v2-2.0.0.patch
Download


diff -urN faac-1.28/configure.in faac-1.28-patched/configure.in
--- faac-1.28/configure.in	2009-02-05 10:55:38.000000000 +1000
+++ faac-1.28-patched/configure.in	2012-10-31 15:56:19.650157685 +1100
@@ -28,14 +28,18 @@
 AC_CHECK_LIB(gnugetopt, getopt_long)
 
 AM_CONDITIONAL(WITH_MP4V2, false)
+AM_CONDITIONAL(WITH_EXTERNAL_MP4V2, false)
 
-AC_CHECK_DECLS([MP4Create, MP4MetadataDelete],
-               AC_CHECK_LIB(mp4v2, MP4MetadataDelete, external_mp4v2=yes,
+AC_CHECK_DECLS([MP4Create],
+               AC_CHECK_LIB(mp4v2, MP4Create, external_mp4v2=yes,
                             external_mp4v2=no, -lstdc++),
-               external_mp4v2=no, [#include <mp4.h>])
+               external_mp4v2=no, [#include <mp4v2/mp4v2.h>])
 
 if test x$external_mp4v2 = xyes; then
   AC_MSG_NOTICE([*** Building with external mp4v2 ***])
+  MY_DEFINE(HAVE_LIBMP4V2)
+  AM_CONDITIONAL(WITH_EXTERNAL_MP4V2, true)
+  AC_CHECK_DECLS([MP4TagsAlloc], [], [], [#include <mp4v2/mp4v2.h>])
 else
   if test x$WITHMP4V2 = xyes; then
      AC_MSG_NOTICE([*** Building with internal mp4v2 ***])
diff -urN faac-1.28/frontend/main.c faac-1.28-patched/frontend/main.c
--- faac-1.28/frontend/main.c	2009-01-24 11:10:20.000000000 +1000
+++ faac-1.28-patched/frontend/main.c	2012-10-31 15:56:19.652158606 +1100
@@ -30,7 +30,7 @@
 #endif
 
 #ifdef HAVE_LIBMP4V2
-# include <mp4.h>
+# include <mp4v2/mp4v2.h>
 #endif
 
 #define DEFAULT_TNS     0
@@ -870,8 +870,12 @@
     if (!faacEncSetConfiguration(hEncoder, myFormat)) {
         fprintf(stderr, "Unsupported output format!\n");
 #ifdef HAVE_LIBMP4V2
+#ifdef MP4_CLOSE_DO_NOT_COMPUTE_BITRATE /* r479 fix */
+        if (container == MP4_CONTAINER) MP4Close(MP4hFile, 0);
+#else
         if (container == MP4_CONTAINER) MP4Close(MP4hFile);
 #endif
+#endif
         return 1;
     }
 
@@ -882,12 +886,10 @@
         unsigned long ASCLength = 0;
     char *version_string;
 
-#ifdef MP4_CREATE_EXTENSIBLE_FORMAT
-    /* hack to compile against libmp4v2 >= 1.0RC3
-     * why is there no version identifier in mp4.h? */
+#ifdef MP4_DETAILS_ERROR /* r453 fix */
         MP4hFile = MP4Create(aacFileName, MP4_DETAILS_ERROR, 0);
 #else
-    MP4hFile = MP4Create(aacFileName, MP4_DETAILS_ERROR, 0, 0);
+        MP4hFile = MP4Create(aacFileName, 0);
 #endif
         if (!MP4_IS_VALID_FILE_HANDLE(MP4hFile)) {
             fprintf(stderr, "Couldn't create output file %s\n", aacFileName);
@@ -902,12 +904,22 @@
     free(ASC);
 
     /* set metadata */
+#if HAVE_DECL_MP4TAGSALLOC
+    const MP4Tags* tags;
+    tags = MP4TagsAlloc();
+    MP4TagsFetch( tags, MP4hFile );
+#endif
     version_string = malloc(strlen(faac_id_string) + 6);
     strcpy(version_string, "FAAC ");
     strcpy(version_string + 5, faac_id_string);
+#if !HAVE_DECL_MP4TAGSALLOC
     MP4SetMetadataTool(MP4hFile, version_string);
+#else
+    MP4TagsSetEncodingTool(tags, version_string);
+#endif
     free(version_string);
 
+#if !HAVE_DECL_MP4TAGSALLOC
     if (artist) MP4SetMetadataArtist(MP4hFile, artist);
     if (writer) MP4SetMetadataWriter(MP4hFile, writer);
     if (title) MP4SetMetadataName(MP4hFile, title);
@@ -920,8 +932,40 @@
     if (comment) MP4SetMetadataComment(MP4hFile, comment);
         if (artSize) {
         MP4SetMetadataCoverArt(MP4hFile, art, artSize);
+#else
+    if (artist) MP4TagsSetArtist(tags, artist);
+    if (writer) MP4TagsSetComposer(tags, writer);
+    if (title) MP4TagsSetName(tags, title);
+    if (album) MP4TagsSetAlbum(tags, album);
+    if (trackno > 0) {
+        MP4TagTrack tt;
+        tt.index = trackno;
+        tt.total = ntracks;
+        MP4TagsSetTrack(tags, &tt);
+    }
+    if (discno > 0) {
+        MP4TagDisk td;
+        td.index = discno;
+        td.total = ndiscs;
+        MP4TagsSetDisk(tags, &td);
+    }
+    if (compilation) MP4TagsSetCompilation(tags, compilation);
+    if (year) MP4TagsSetReleaseDate(tags, year);
+    if (genre) MP4TagsSetGenre(tags, genre);
+    if (comment) MP4TagsSetComments(tags, comment);
+    if (artSize) {
+        MP4TagArtwork mp4art;
+        mp4art.data = art;
+        mp4art.size = artSize;
+        mp4art.type = MP4_ART_UNDEFINED; // delegate typing to libmp4v2
+        MP4TagsAddArtwork( tags, &mp4art );
+#endif
         free(art);
     }
+#if HAVE_DECL_MP4TAGSALLOC
+    MP4TagsStore( tags, MP4hFile );
+    MP4TagsFree( tags );
+#endif
     }
     else
     {
@@ -1138,11 +1182,19 @@
         /* clean up */
         if (container == MP4_CONTAINER)
         {
+#ifdef MP4_CLOSE_DO_NOT_COMPUTE_BITRATE /* r479 fix */
+            MP4Close(MP4hFile, 0);
+#else
             MP4Close(MP4hFile);
+#endif
             if (optimizeFlag == 1)
             {
                 fprintf(stderr, "\n\nMP4 format optimization... ");
+#ifdef MP4_DETAILS_ERROR /* r453 fix */
                 MP4Optimize(aacFileName, NULL, 0);
+#else
+                MP4Optimize(aacFileName, NULL);
+#endif
                 fprintf(stderr, "Done!");
             }
         } else
diff -urN faac-1.28/frontend/Makefile.am faac-1.28-patched/frontend/Makefile.am
--- faac-1.28/frontend/Makefile.am	2008-12-16 10:56:00.000000000 +1000
+++ faac-1.28-patched/frontend/Makefile.am	2012-10-31 15:56:01.195935048 +1100
@@ -8,5 +8,9 @@
 LDADD = $(top_builddir)/libfaac/libfaac.la $(top_srcdir)/common/mp4v2/libmp4v2.a -lm -lstdc++
 else
 INCLUDES = -I$(top_srcdir)/include 
+if WITH_EXTERNAL_MP4V2
+LDADD = $(top_builddir)/libfaac/libfaac.la -lm -lmp4v2
+else
 LDADD = $(top_builddir)/libfaac/libfaac.la -lm
 endif
+endif
 
projeto & código: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
mantenedor atual: Michael Shigorin
mantenedor da tradução: Fernando Martini aka fmartini © 2009