0061943bd3
mp4v2 is used by easy-tag and cmus, but those require different versions that are not API compatible. Add a devel block for r479. Add patches for stable committed in r472 inline. Patches fix compile errors with clang, but are not available via direct url. Stable works with easy-tag and can open .m4a files from iTunes. Devel works with cmus and can play .m4a files from iTunes. Compiles with all 5 compilers from XCode-4.3.2, 4.0.2 on Lion and Snow Leopard. Main discussion was in Homebrew/homebrew#7998 Closes Homebrew/homebrew#11275. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
144 lines
5.3 KiB
Ruby
144 lines
5.3 KiB
Ruby
require 'formula'
|
|
|
|
class Mp4v2 < Formula
|
|
homepage 'http://code.google.com/p/mp4v2/'
|
|
url 'http://mp4v2.googlecode.com/files/mp4v2-1.9.1.tar.bz2'
|
|
sha1 'c62d00e99b65efce16accd83c501fb8a57206aa8'
|
|
|
|
devel do
|
|
url 'http://mp4v2.googlecode.com/files/mp4v2-trunk-r479.tar.bz2'
|
|
sha1 '1999b805d5e66dffbd95ec3a563758650e23bf60'
|
|
version 'r479'
|
|
end
|
|
|
|
def patches
|
|
# Fixes compile error on Lion w/Clang using a patch from svn:
|
|
# http://code.google.com/p/mp4v2/source/detail?r=442
|
|
# It is inline because there's no direct link to the raw patch.
|
|
DATA unless ARGV.build_devel?
|
|
end
|
|
|
|
def install
|
|
system "./configure", "--disable-debug", "--prefix=#{prefix}"
|
|
system "make"
|
|
system "make install"
|
|
system "make install-man"
|
|
end
|
|
end
|
|
|
|
__END__
|
|
--- a/src/bmff/typebmff.cpp 2009-07-13 16:07:10.000000000 -0700
|
|
+++ b/src/bmff/typebmff.cpp 2012-03-28 11:05:48.000000000 -0700
|
|
@@ -23,19 +23,12 @@
|
|
|
|
#include "impl.h"
|
|
|
|
-// VStudio idiocy prevents defining template instanced static data
|
|
-// in a namespace. Workaround it by defining in global scope.
|
|
-// Other platforms will continue to put things in the proper namespace.
|
|
-#if defined( _MSC_VER )
|
|
-using namespace mp4v2::impl::bmff;
|
|
-#else
|
|
-namespace mp4v2 { namespace impl { namespace bmff {
|
|
-#endif
|
|
+namespace mp4v2 { namespace impl {
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
template <>
|
|
-const EnumLanguageCode::Entry EnumLanguageCode::data[] = {
|
|
+const bmff::EnumLanguageCode::Entry bmff::EnumLanguageCode::data[] = {
|
|
{ mp4v2::impl::bmff::ILC_AAR, "aar", "Afar" },
|
|
{ mp4v2::impl::bmff::ILC_ABK, "abk", "Abkhazian" },
|
|
{ mp4v2::impl::bmff::ILC_ACE, "ace", "Achinese" },
|
|
@@ -526,9 +519,7 @@
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
-#if defined( _MSC_VER )
|
|
-namespace mp4v2 { namespace impl { namespace bmff {
|
|
-#endif
|
|
+namespace bmff {
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
--- a/src/itmf/type.cpp 2009-07-13 16:07:08.000000000 -0700
|
|
+++ b/src/itmf/type.cpp 2012-03-28 11:30:25.000000000 -0700
|
|
@@ -24,19 +24,12 @@
|
|
|
|
#include "impl.h"
|
|
|
|
-// VStudio idiocy prevents defining template instanced static data
|
|
-// in a namespace. Workaround it by defining in global scope.
|
|
-// Other platforms will continue to put things in the proper namespace.
|
|
-#if defined( _MSC_VER )
|
|
-using namespace mp4v2::impl::itmf;
|
|
-#else
|
|
-namespace mp4v2 { namespace impl { namespace itmf {
|
|
-#endif
|
|
+namespace mp4v2 { namespace impl {
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
template <>
|
|
-const EnumBasicType::Entry EnumBasicType::data[] = {
|
|
+const itmf::EnumBasicType::Entry itmf::EnumBasicType::data[] = {
|
|
{ mp4v2::impl::itmf::BT_IMPLICIT, "implicit", "implicit" },
|
|
{ mp4v2::impl::itmf::BT_UTF8, "utf8", "UTF-8" },
|
|
{ mp4v2::impl::itmf::BT_UTF16, "utf16", "UTF-16" },
|
|
@@ -64,7 +57,7 @@
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
template <>
|
|
-const EnumGenreType::Entry EnumGenreType::data[] = {
|
|
+const itmf::EnumGenreType::Entry itmf::EnumGenreType::data[] = {
|
|
{ mp4v2::impl::itmf::GENRE_BLUES, "blues", "Blues" },
|
|
{ mp4v2::impl::itmf::GENRE_CLASSIC_ROCK, "classicrock", "Classic Rock" },
|
|
{ mp4v2::impl::itmf::GENRE_COUNTRY, "country", "Country" },
|
|
@@ -200,7 +193,7 @@
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
template <>
|
|
-const EnumStikType::Entry EnumStikType::data[] = {
|
|
+const itmf::EnumStikType::Entry itmf::EnumStikType::data[] = {
|
|
{ mp4v2::impl::itmf::STIK_OLD_MOVIE, "oldmovie", "Movie" },
|
|
{ mp4v2::impl::itmf::STIK_NORMAL, "normal", "Normal" },
|
|
{ mp4v2::impl::itmf::STIK_AUDIOBOOK, "audiobook", "Audio Book" },
|
|
@@ -216,7 +209,7 @@
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
template <>
|
|
-const EnumAccountType::Entry EnumAccountType::data[] = {
|
|
+const itmf::EnumAccountType::Entry itmf::EnumAccountType::data[] = {
|
|
{ mp4v2::impl::itmf::AT_ITUNES, "itunes", "iTunes" },
|
|
{ mp4v2::impl::itmf::AT_AOL, "aol", "AOL" },
|
|
|
|
@@ -226,7 +219,7 @@
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
template <>
|
|
-const EnumCountryCode::Entry EnumCountryCode::data[] = {
|
|
+const itmf::EnumCountryCode::Entry itmf::EnumCountryCode::data[] = {
|
|
{ mp4v2::impl::itmf::CC_USA, "usa", "United States" },
|
|
{ mp4v2::impl::itmf::CC_USA, "fra", "France" },
|
|
{ mp4v2::impl::itmf::CC_DEU, "ger", "Germany" },
|
|
@@ -256,7 +249,7 @@
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
template <>
|
|
-const EnumContentRating::Entry EnumContentRating::data[] = {
|
|
+const itmf::EnumContentRating::Entry itmf::EnumContentRating::data[] = {
|
|
{ mp4v2::impl::itmf::CR_NONE, "none", "None" },
|
|
{ mp4v2::impl::itmf::CR_CLEAN, "clean", "Clean" },
|
|
{ mp4v2::impl::itmf::CR_EXPLICIT, "explicit", "Explicit" },
|
|
@@ -266,9 +259,7 @@
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
-#if defined( _MSC_VER )
|
|
-namespace mp4v2 { namespace impl { namespace itmf {
|
|
-#endif
|
|
+namespace itmf {
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|