Bug#975441: x264 silently disables gpac support with gpac 1.0.1
Package: x264
Version: 2:0.160.3011+gitcde9a93-2+b2
Followup-For: Bug #975441
I can confirm that the upstream patch works. When applied, MP4 support is
restored in my build. I've attached the tested, refreshed patch.
commit 7c2004b58c26da661618262c9c06b73ad3a9ff6c
Author: A. David <aurelien.david@telecom-paristech.fr>
Date: Thu Jul 2 19:45:50 2020 +0200
mp4: Update GPAC support to v0.8.0 or later
--- a/configure
+++ b/configure
@@ -1240,15 +1240,16 @@
gpac="no"
GPAC_LIBS="-lgpac"
cc_check "" -lz && GPAC_LIBS="$GPAC_LIBS -lz"
+ cc_check "" -ldl && GPAC_LIBS="$GPAC_LIBS -ldl"
if [ "$SYS" = "WINDOWS" ] ; then
cc_check "" -lws2_32 && GPAC_LIBS="$GPAC_LIBS -lws2_32"
cc_check "" -lwinmm && GPAC_LIBS="$GPAC_LIBS -lwinmm"
fi
if cc_check gpac/isomedia.h "$GPAC_LIBS" "gf_isom_close(0);" ; then
- if cc_check gpac/isomedia.h "$GPAC_LIBS" "gf_isom_set_pixel_aspect_ratio(0,0,0,0,0);" ; then
+ if cc_check gpac/isomedia.h "$GPAC_LIBS" "gf_isom_set_pixel_aspect_ratio(0,0,0,0,0,0);" ; then
gpac="yes"
else
- echo "Warning: gpac is too old, update to 2007-06-21 UTC or later"
+ echo "Warning: gpac is too old, update to v0.8.0 or later"
fi
fi
fi
--- a/output/mp4.c
+++ b/output/mp4.c
@@ -147,7 +147,11 @@
{
uint32_t mvhd_timescale = gf_isom_get_timescale( p_mp4->p_file );
uint64_t tkhd_duration = (uint64_t)( mdhd_duration * ( (double)mvhd_timescale / p_mp4->i_time_res ) );
+#if GPAC_VERSION_MAJOR > 8
+ gf_isom_append_edit( p_mp4->p_file, p_mp4->i_track, tkhd_duration, sample->CTS_Offset, GF_ISOM_EDIT_NORMAL );
+#else
gf_isom_append_edit_segment( p_mp4->p_file, p_mp4->i_track, tkhd_duration, sample->CTS_Offset, GF_ISOM_EDIT_NORMAL );
+#endif
}
gf_isom_sample_del( &sample );
@@ -233,7 +237,7 @@
dw *= sar;
else
dh /= sar;
- gf_isom_set_pixel_aspect_ratio( p_mp4->p_file, p_mp4->i_track, p_mp4->i_descidx, p_param->vui.i_sar_width, p_param->vui.i_sar_height );
+ gf_isom_set_pixel_aspect_ratio( p_mp4->p_file, p_mp4->i_track, p_mp4->i_descidx, p_param->vui.i_sar_width, p_param->vui.i_sar_height, 0 );
gf_isom_set_track_layout_info( p_mp4->p_file, p_mp4->i_track, dw, dh, 0, 0, 0 );
}
Reply to: