<pre style='margin:0'>
Ryan Schmidt (ryandesign) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/799e13d755088c872e7cb46b2aff978a907d5260">https://github.com/macports/macports-ports/commit/799e13d755088c872e7cb46b2aff978a907d5260</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 799e13d755088c872e7cb46b2aff978a907d5260
</span>Author: Ryan Schmidt <ryandesign@macports.org>
AuthorDate: Wed Dec 22 07:03:42 2021 -0600

<span style='display:block; white-space:pre;color:#404040;'>    mp4v2: Revert to 4.1.3
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Revert to version 4.1.3 plus patches to fix issues that were fixed in
</span><span style='display:block; white-space:pre;color:#404040;'>    later versions.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    4.1.4 changed the signature of the MP4Read function to have a second
</span><span style='display:block; white-space:pre;color:#404040;'>    argument and used a C++ default value feature in doing so, thus breaking
</span><span style='display:block; white-space:pre;color:#404040;'>    all the ports that want to use this library from C code. Those other
</span><span style='display:block; white-space:pre;color:#404040;'>    ports either fail to build or fail to detect that mp4v2 is installed and
</span><span style='display:block; white-space:pre;color:#404040;'>    build themselves without mp4v2 support.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/63297
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    A solution to fix the API breakage was proposed to MacPorts but we
</span><span style='display:block; white-space:pre;color:#404040;'>    should not attempt to declare ourselves the owners of this software. We
</span><span style='display:block; white-space:pre;color:#404040;'>    should not introduce yet another different version of this software that
</span><span style='display:block; white-space:pre;color:#404040;'>    is unlike what other distros ship. The fix should be proposed to the
</span><span style='display:block; white-space:pre;color:#404040;'>    developers of this software and they can decide (or not) what to do. In
</span><span style='display:block; white-space:pre;color:#404040;'>    anticipation of the developers not responding to such a proposal, like
</span><span style='display:block; white-space:pre;color:#404040;'>    they have already failed for one year to respond to the bug report about
</span><span style='display:block; white-space:pre;color:#404040;'>    the breakage, let us stay on the last unbroken version and backport any
</span><span style='display:block; white-space:pre;color:#404040;'>    needed bugfixes until such a time as the current developers begin
</span><span style='display:block; white-space:pre;color:#404040;'>    addressing bug reports or a better-maintained fork emerges.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: #11781
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Before, with mp4v2 @5.0.1_0:
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    cmus @2.9.1_0+aac:
</span><span style='display:block; white-space:pre;color:#404040;'>    checking for header <mp4v2/mp4v2.h>... no
</span><span style='display:block; white-space:pre;color:#404040;'>    checking for header <mp4.h>... no
</span><span style='display:block; white-space:pre;color:#404040;'>    configure failed.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    ices0 @0.4_3:
</span><span style='display:block; white-space:pre;color:#404040;'>    In file included from in_mp4.c:32:
</span><span style='display:block; white-space:pre;color:#404040;'>    In file included from /opt/local/include/mp4v2/mp4v2.h:58:
</span><span style='display:block; white-space:pre;color:#404040;'>    /opt/local/include/mp4v2/file.h:336:34: error: use of undeclared identifier 'nullptr'
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    libextractor @1.4_3:
</span><span style='display:block; white-space:pre;color:#404040;'>    checking mp4v2/mp4v2.h usability... no
</span><span style='display:block; white-space:pre;color:#404040;'>    checking mp4v2/mp4v2.h presence... yes
</span><span style='display:block; white-space:pre;color:#404040;'>    configure: WARNING: mp4v2/mp4v2.h: present but cannot be compiled
</span><span style='display:block; white-space:pre;color:#404040;'>    configure: WARNING: mp4v2/mp4v2.h:     check for missing prerequisite headers?
</span><span style='display:block; white-space:pre;color:#404040;'>    configure: WARNING: mp4v2/mp4v2.h: see the Autoconf documentation
</span><span style='display:block; white-space:pre;color:#404040;'>    configure: WARNING: mp4v2/mp4v2.h:     section "Present But Cannot Be Compiled"
</span><span style='display:block; white-space:pre;color:#404040;'>    configure: WARNING: mp4v2/mp4v2.h: proceeding with the compiler's result
</span><span style='display:block; white-space:pre;color:#404040;'>    configure: WARNING:     ## --------------------------------------- ##
</span><span style='display:block; white-space:pre;color:#404040;'>    configure: WARNING:     ## Report this to bug-libextractor@gnu.org ##
</span><span style='display:block; white-space:pre;color:#404040;'>    configure: WARNING:     ## --------------------------------------- ##
</span><span style='display:block; white-space:pre;color:#404040;'>    checking for mp4v2/mp4v2.h... no
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    After, with mp4v2 @4.1.3_0:
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    cmus @2.9.1_0+aac:
</span><span style='display:block; white-space:pre;color:#404040;'>    checking for header <mp4v2/mp4v2.h>... yes
</span><span style='display:block; white-space:pre;color:#404040;'>    checking for header <neaacdec.h>... yes
</span><span style='display:block; white-space:pre;color:#404040;'>    checking for MP4_LIBS (-lmp4v2 -lfaad -lm)... yes
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    ices0 @0.4_4:
</span><span style='display:block; white-space:pre;color:#404040;'>    successful build
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    libextractor @1.4_3:
</span><span style='display:block; white-space:pre;color:#404040;'>    checking mp4v2/mp4v2.h usability... yes
</span><span style='display:block; white-space:pre;color:#404040;'>    checking mp4v2/mp4v2.h presence... yes
</span><span style='display:block; white-space:pre;color:#404040;'>    checking for mp4v2/mp4v2.h... yes
</span>---
 multimedia/mp4v2/Portfile                          | 25 +++++++----
 ...-8d6307ea1e70c0a44dd2a64c4fa1a8f42b803ebf.patch | 50 ++++++++++++++++++++++
 ...-aa06c07ec0b0e0e1b6dd82bf32821668059e8662.patch | 14 ++++++
 3 files changed, 80 insertions(+), 9 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/mp4v2/Portfile b/multimedia/mp4v2/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index d1aadc9accf..110658b1b01 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/multimedia/mp4v2/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/multimedia/mp4v2/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3,14 +3,17 @@
</span> PortSystem          1.0
 PortGroup           github 1.0
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-github.setup        TechSmith mp4v2 5.0.1 Release-ThirdParty-MP4v2-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-name                mp4v2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+epoch               2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# TechSmith/mp4v2 4.1.4 introduced a breaking API change that totally
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# broke the ability for C code to use this library. Don't upgrade to a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# newer version unless the API breakage has been reverted. So far, the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# developers have not responded to this issue, which was filed 20201211.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/TechSmith/mp4v2/issues/47
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup        TechSmith mp4v2 4.1.3 Release-ThirdParty-MP4v2-
</span> revision            0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-epoch               1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums           rmd160  df124c2cef11e471ec0213c255fb19d48ae89f2a \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  faddadb6323a2f1a027ea81f3a455017199cf3eafd358026031758810a7b3e98 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    size    4323242
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  8727c9cb5d256073e3ed46fb6ab9502e1bec66e5 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  e3ad6c2dc451b0875dbe34bfe7f51f4fe278b391434c886083e6d3ecd5fa08c2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    2682188
</span> 
 categories          multimedia
 license             MPL-1.1 BSD-old
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -20,11 +23,14 @@ long_description    The mp4v2 library provides an API to create and modify mp4 \
</span>                     files as defined by ISO-IEC:14496-1:2001 MPEG-4 Systems. \
                     mp4v2 used to be part of the mpeg4ip library.
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-platforms           darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.tarball_from archive
</span> 
 depends_build       port:help2man
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles          configure-version.patch mp4tags-metadata.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles          configure-version.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    mp4tags-metadata.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    20210111-8d6307ea1e70c0a44dd2a64c4fa1a8f42b803ebf.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    20210318-aa06c07ec0b0e0e1b6dd82bf32821668059e8662.patch
</span> 
 post-patch {
     reinplace "s|@@VERSION@@|${version}|g" \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -35,6 +41,7 @@ compiler.cxx_standard 1998
</span> configure.cxxflags-append -std=c++98
 
 # Teach glibtool about -stdlib
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Also we are patching configure.ac.
</span> use_autoreconf      yes
 autoreconf.args     -fvi
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/mp4v2/files/20210111-8d6307ea1e70c0a44dd2a64c4fa1a8f42b803ebf.patch b/multimedia/mp4v2/files/20210111-8d6307ea1e70c0a44dd2a64c4fa1a8f42b803ebf.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..7ea7b0f11d3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/multimedia/mp4v2/files/20210111-8d6307ea1e70c0a44dd2a64c4fa1a8f42b803ebf.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,50 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix some bugs found by the compiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/TechSmith/mp4v2/commit/8d6307ea1e70c0a44dd2a64c4fa1a8f42b803ebf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- libutil/Utility.cpp.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libutil/Utility.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -480,7 +480,7 @@ Utility::process_impl()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     for( ;; ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        const int code = prog::getOption( _argc, _argv, _shortOptions.c_str(), _longOptions, NULL );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        const unsigned int code = prog::getOption( _argc, _argv, _shortOptions.c_str(), _longOptions, NULL );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if( code == -1 )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/mp4.cpp.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/mp4.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -864,18 +864,11 @@ MP4FileHandle MP4ReadProvider( const char* fileName, const MP4FileProvider* file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     mp4v2_ismacrypParams *MP4DefaultISMACrypParams(mp4v2_ismacrypParams *ptr)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        try
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            if (ptr == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                ptr = (mp4v2_ismacrypParams *)MP4Malloc(sizeof(mp4v2_ismacrypParams));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            memset(ptr, 0, sizeof(*ptr));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            return ptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        catch (...) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            return MP4_INVALID_TRACK_ID;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         if (ptr == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++             ptr = (mp4v2_ismacrypParams *)MP4Malloc(sizeof(mp4v2_ismacrypParams));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         memset(ptr, 0, sizeof(*ptr));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         return ptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/rtphint.cpp.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/rtphint.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -339,7 +339,7 @@ void MP4RtpHintTrack::GetPayload(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 pSlash = strchr(pSlash, '/');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 if (pSlash != NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     pSlash++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    if (pSlash != '\0') {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    if ( *pSlash != '\0' ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         length = (uint32_t)strlen(pRtpMap) - (pSlash - pRtpMap);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         *ppEncodingParams = (char *)MP4Calloc(length + 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         strncpy(*ppEncodingParams, pSlash, length);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/multimedia/mp4v2/files/20210318-aa06c07ec0b0e0e1b6dd82bf32821668059e8662.patch b/multimedia/mp4v2/files/20210318-aa06c07ec0b0e0e1b6dd82bf32821668059e8662.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..82817b8b07a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/multimedia/mp4v2/files/20210318-aa06c07ec0b0e0e1b6dd82bf32821668059e8662.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix crash when working with invalid file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/TechSmith/mp4v2/commit/aa06c07ec0b0e0e1b6dd82bf32821668059e8662
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/mp4file.cpp.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/mp4file.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3461,6 +3461,9 @@ const char *MP4File::GetTrackMediaDataName (MP4TrackId trackId)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     MP4Atom *pAtom =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         FindAtom(MakeTrackName(trackId,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                "mdia.minf.stbl.stsd"));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if ( pAtom == nullptr )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       return nullptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (pAtom->GetNumberOfChildAtoms() != 1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         log.errorf("%s: \"%s\": track %d has more than 1 child atoms in stsd", 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    __FUNCTION__, GetFilename().c_str(), trackId);
</span></pre><pre style='margin:0'>

</pre>