Projects
Essentials
faac
faac-1.28-external-mp4v2-2.0.patch
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File faac-1.28-external-mp4v2-2.0.patch of Package faac (Revision 6)
Currently displaying revision
6
,
Show latest
Index: faac-1.28/configure.in =================================================================== --- faac-1.28.orig/configure.in +++ faac-1.28/configure.in @@ -28,14 +28,23 @@ AC_CHECK_DECL(strcasecmp, MY_DEFINE(HAVE 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, [ +#if defined(__ALTIVEC__) +#undef bool +#endif +#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 ***]) Index: faac-1.28/frontend/Makefile.am =================================================================== --- faac-1.28.orig/frontend/Makefile.am +++ faac-1.28/frontend/Makefile.am @@ -8,5 +8,9 @@ INCLUDES = -I$(top_srcdir)/include -I$(t 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 Index: faac-1.28/frontend/main.c =================================================================== --- faac-1.28.orig/frontend/main.c +++ faac-1.28/frontend/main.c @@ -30,7 +30,10 @@ #endif #ifdef HAVE_LIBMP4V2 -# include <mp4.h> +#if defined(__ALTIVEC__) +#undef bool +#endif +# include <mp4v2/mp4v2.h> #endif #define DEFAULT_TNS 0 @@ -870,8 +873,12 @@ int main(int argc, char *argv[]) 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 +889,10 @@ int main(int argc, char *argv[]) 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 +907,22 @@ int main(int argc, char *argv[]) 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 +935,40 @@ int main(int argc, char *argv[]) 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 +1185,19 @@ int main(int argc, char *argv[]) /* 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... "); - MP4Optimize(aacFileName, NULL, 0); +#ifdef MP4_DETAILS_ERROR /* r453 fix */ + MP4Optimize(aacFileName, NULL, 0); +#else + MP4Optimize(aacFileName, NULL); +#endif fprintf(stderr, "Done!"); } } else Index: faac-1.28/common/mp4v2/mpeg4ip.h =================================================================== --- faac-1.28.orig/common/mp4v2/mpeg4ip.h +++ faac-1.28/common/mp4v2/mpeg4ip.h @@ -123,7 +123,6 @@ #ifdef __cplusplus extern "C" { #endif -char *strcasestr(const char *haystack, const char *needle); #ifdef __cplusplus } #endif
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.