Message ID | pull.30.v5.ffstaging.FFmpeg.1653550090616.ffmpegagent@gmail.com |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel,v5] libx264: Set min build version to 158 | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
andriy/make_armv7_RPi4 | success | Make finished |
andriy/make_fate_armv7_RPi4 | success | Make fate finished |
On Thu, May 26, 2022 at 07:28:10AM +0000, Matt Oliver wrote: > From: Matt Oliver <protogonoi@gmail.com> > > Was "[PATCH] libx264: Do not explicitly set X264_API_IMPORTS" > > Setting X264_API_IMPORTS only affects msvc builds and it breaks > linking to static builds (although is required for shared builds). > This flag is set by x264 in its pkgconfig as required since build > 158 (a615f027ed172e2dd5380e736d487aa858a0c4ff) from July 2019. > So this patch updates configure to require a newer x264 build that > correctly sets the imports flag. > > The requirement for 158 is applied for msvc builds only, > no change is made for all other cases. > > Co-authored-by: softworkz <softworkz@hotmail.com> > Signed-off-by: softworkz <softworkz@hotmail.com> > Signed-off-by: Matt Oliver <protogonoi@gmail.com> > --- > libx264: Set min build version to 158 > > I'm submitting this patch on behalf of Matt with his permission. > > There was agreement that the >= 158 version requirement should be > applied to MSVC builds only. > > v2: restrict the version requirement to msvc builds > v3: fix unintended author change > v4: add missing braces > v5: fixed condition (again ;-) > > Published-As: https://github.com/ffstaging/FFmpeg/releases/tag/pr-ffstaging-30%2Fsoftworkz%2Fsubmit_x264_api_imports_matt-v5 > Fetch-It-Via: git fetch https://github.com/ffstaging/FFmpeg pr-ffstaging-30/softworkz/submit_x264_api_imports_matt-v5 > Pull-Request: https://github.com/ffstaging/FFmpeg/pull/30 > > Range-diff vs v4: > > 1: 0d1bee35b0 ! 1: 8c4fe7ffc2 libx264: Set min build version to 158 > @@ configure: enabled libvpx && { > - require_cpp_condition libx264 x264.h "X264_BUILD >= 118" && > - check_cpp_condition libx262 x264.h "X264_MPEG2" > +enabled libx264 && check_pkg_config libx264 x264 "stdint.h x264.h" x264_encoder_encode && > -+ { require_cpp_condition libx264 x264.h "X264_BUILD >= 158" || > -+ { "$toolchain" != msvc && require_cpp_condition libx264 x264.h "X264_BUILD >= 118"; }; } > ++ require_cpp_condition libx264 x264.h "X264_BUILD >= 118" && { > ++ "$toolchain" != msvc || require_cpp_condition libx264 x264.h "X264_BUILD >= 158"; } > enabled libx265 && require_pkg_config libx265 x265 x265.h x265_api_get && > require_cpp_condition libx265 x265.h "X265_BUILD >= 70" > enabled libxavs && require libxavs "stdint.h xavs.h" xavs_encoder_encode "-lxavs $pthreads_extralibs $libm_extralibs" > > > configure | 8 +++----- > libavcodec/libx264.c | 4 ---- > 2 files changed, 3 insertions(+), 9 deletions(-) > > diff --git a/configure b/configure > index f115b21064..e46d362b04 100755 > --- a/configure > +++ b/configure > @@ -6656,11 +6656,9 @@ enabled libvpx && { > enabled libwebp && { > enabled libwebp_encoder && require_pkg_config libwebp "libwebp >= 0.2.0" webp/encode.h WebPGetEncoderVersion > enabled libwebp_anim_encoder && check_pkg_config libwebp_anim_encoder "libwebpmux >= 0.4.0" webp/mux.h WebPAnimEncoderOptionsInit; } > -enabled libx264 && { check_pkg_config libx264 x264 "stdint.h x264.h" x264_encoder_encode || > - { require libx264 "stdint.h x264.h" x264_encoder_encode "-lx264 $pthreads_extralibs $libm_extralibs" && > - warn "using libx264 without pkg-config"; } } && > - require_cpp_condition libx264 x264.h "X264_BUILD >= 118" && > - check_cpp_condition libx262 x264.h "X264_MPEG2" > +enabled libx264 && check_pkg_config libx264 x264 "stdint.h x264.h" x264_encoder_encode && > + require_cpp_condition libx264 x264.h "X264_BUILD >= 118" && { > + "$toolchain" != msvc || require_cpp_condition libx264 x264.h "X264_BUILD >= 158"; } > enabled libx265 && require_pkg_config libx265 x265 x265.h x265_api_get && > require_cpp_condition libx265 x265.h "X265_BUILD >= 70" > enabled libxavs && require libxavs "stdint.h xavs.h" xavs_encoder_encode "-lxavs $pthreads_extralibs $libm_extralibs" ./configure: 6663: ./configure: : Permission denied ERROR: X264_BUILD >= 158 not satisfied If you think configure made a mistake, make sure you are using the latest version from Git. If the latest version fails, report the problem to the ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.libera.chat. Include the log file "ffbuild/config.log" produced by configure as this will help solve the problem. [...]
> -----Original Message----- > From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Michael > Niedermayer > Sent: Thursday, May 26, 2022 12:51 PM > To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> > Subject: Re: [FFmpeg-devel] [PATCH v5] libx264: Set min build version to > 158 > > On Thu, May 26, 2022 at 07:28:10AM +0000, Matt Oliver wrote: > > From: Matt Oliver <protogonoi@gmail.com> > > > > Was "[PATCH] libx264: Do not explicitly set X264_API_IMPORTS" > > > > Setting X264_API_IMPORTS only affects msvc builds and it breaks > > linking to static builds (although is required for shared builds). > > This flag is set by x264 in its pkgconfig as required since build > > 158 (a615f027ed172e2dd5380e736d487aa858a0c4ff) from July 2019. > > So this patch updates configure to require a newer x264 build that > > correctly sets the imports flag. > > > > The requirement for 158 is applied for msvc builds only, > > no change is made for all other cases. > > > > Co-authored-by: softworkz <softworkz@hotmail.com> > > Signed-off-by: softworkz <softworkz@hotmail.com> > > Signed-off-by: Matt Oliver <protogonoi@gmail.com> > > --- > > libx264: Set min build version to 158 > > > > I'm submitting this patch on behalf of Matt with his permission. > > > > There was agreement that the >= 158 version requirement should be > > applied to MSVC builds only. > > > > v2: restrict the version requirement to msvc builds > > v3: fix unintended author change > > v4: add missing braces > > v5: fixed condition (again ;-) > > > > Published-As: https://github.com/ffstaging/FFmpeg/releases/tag/pr- > ffstaging-30%2Fsoftworkz%2Fsubmit_x264_api_imports_matt-v5 > > Fetch-It-Via: git fetch https://github.com/ffstaging/FFmpeg pr- > ffstaging-30/softworkz/submit_x264_api_imports_matt-v5 > > Pull-Request: https://github.com/ffstaging/FFmpeg/pull/30 > > > > Range-diff vs v4: > > > > 1: 0d1bee35b0 ! 1: 8c4fe7ffc2 libx264: Set min build version to 158 > > @@ configure: enabled libvpx && { > > - require_cpp_condition libx264 x264.h > "X264_BUILD >= 118" && > > - check_cpp_condition libx262 x264.h > "X264_MPEG2" > > +enabled libx264 && check_pkg_config libx264 x264 > "stdint.h x264.h" x264_encoder_encode && > > -+ { require_cpp_condition libx264 > x264.h "X264_BUILD >= 158" || > > -+ { "$toolchain" != msvc && > require_cpp_condition libx264 x264.h "X264_BUILD >= 118"; }; } > > ++ require_cpp_condition libx264 x264.h > "X264_BUILD >= 118" && { > > ++ "$toolchain" != msvc || > require_cpp_condition libx264 x264.h "X264_BUILD >= 158"; } > > enabled libx265 && require_pkg_config libx265 x265 > x265.h x265_api_get && > > require_cpp_condition libx265 x265.h > "X265_BUILD >= 70" > > enabled libxavs && require libxavs "stdint.h xavs.h" > xavs_encoder_encode "-lxavs $pthreads_extralibs $libm_extralibs" > > > > > > configure | 8 +++----- > > libavcodec/libx264.c | 4 ---- > > 2 files changed, 3 insertions(+), 9 deletions(-) > > > > diff --git a/configure b/configure > > index f115b21064..e46d362b04 100755 > > --- a/configure > > +++ b/configure > > @@ -6656,11 +6656,9 @@ enabled libvpx && { > > enabled libwebp && { > > enabled libwebp_encoder && require_pkg_config libwebp "libwebp > >= 0.2.0" webp/encode.h WebPGetEncoderVersion > > enabled libwebp_anim_encoder && check_pkg_config > libwebp_anim_encoder "libwebpmux >= 0.4.0" webp/mux.h > WebPAnimEncoderOptionsInit; } > > -enabled libx264 && { check_pkg_config libx264 x264 "stdint.h > x264.h" x264_encoder_encode || > > - { require libx264 "stdint.h x264.h" > x264_encoder_encode "-lx264 $pthreads_extralibs $libm_extralibs" && > > - warn "using libx264 without pkg- > config"; } } && > > - require_cpp_condition libx264 x264.h > "X264_BUILD >= 118" && > > - check_cpp_condition libx262 x264.h > "X264_MPEG2" > > +enabled libx264 && check_pkg_config libx264 x264 "stdint.h > x264.h" x264_encoder_encode && > > + require_cpp_condition libx264 x264.h > "X264_BUILD >= 118" && { > > + "$toolchain" != msvc || > require_cpp_condition libx264 x264.h "X264_BUILD >= 158"; } > > enabled libx265 && require_pkg_config libx265 x265 x265.h > x265_api_get && > > require_cpp_condition libx265 x265.h > "X265_BUILD >= 70" > > enabled libxavs && require libxavs "stdint.h xavs.h" > xavs_encoder_encode "-lxavs $pthreads_extralibs $libm_extralibs" > > ./configure: 6663: ./configure: : Permission denied > ERROR: X264_BUILD >= 158 not satisfied Thanks! I installed x264 and could reproduce. Seems it need to go into square brackets: enabled libx264 && check_pkg_config libx264 x264 "stdint.h x264.h" x264_encoder_encode && require_cpp_condition libx264 x264.h "X264_BUILD >= 118" && { [ "$toolchain" != "msvc" ] || require_cpp_condition libx264 x264.h "X264_BUILD >= 158"; } Seems to work in all cases. Does that make sense? Thanks, sw
diff --git a/configure b/configure index f115b21064..e46d362b04 100755 --- a/configure +++ b/configure @@ -6656,11 +6656,9 @@ enabled libvpx && { enabled libwebp && { enabled libwebp_encoder && require_pkg_config libwebp "libwebp >= 0.2.0" webp/encode.h WebPGetEncoderVersion enabled libwebp_anim_encoder && check_pkg_config libwebp_anim_encoder "libwebpmux >= 0.4.0" webp/mux.h WebPAnimEncoderOptionsInit; } -enabled libx264 && { check_pkg_config libx264 x264 "stdint.h x264.h" x264_encoder_encode || - { require libx264 "stdint.h x264.h" x264_encoder_encode "-lx264 $pthreads_extralibs $libm_extralibs" && - warn "using libx264 without pkg-config"; } } && - require_cpp_condition libx264 x264.h "X264_BUILD >= 118" && - check_cpp_condition libx262 x264.h "X264_MPEG2" +enabled libx264 && check_pkg_config libx264 x264 "stdint.h x264.h" x264_encoder_encode && + require_cpp_condition libx264 x264.h "X264_BUILD >= 118" && { + "$toolchain" != msvc || require_cpp_condition libx264 x264.h "X264_BUILD >= 158"; } enabled libx265 && require_pkg_config libx265 x265 x265.h x265_api_get && require_cpp_condition libx265 x265.h "X265_BUILD >= 70" enabled libxavs && require libxavs "stdint.h xavs.h" xavs_encoder_encode "-lxavs $pthreads_extralibs $libm_extralibs" diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c index 4ce3791ae8..14177b3016 100644 --- a/libavcodec/libx264.c +++ b/libavcodec/libx264.c @@ -37,10 +37,6 @@ #include "atsc_a53.h" #include "sei.h" -#if defined(_MSC_VER) -#define X264_API_IMPORTS 1 -#endif - #include <x264.h> #include <float.h> #include <math.h>