[FFmpeg-devel] [PATCH v6] libx264: Set min build version to 158

Soft Works softworkz at hotmail.com
Thu Jun 9 01:50:18 EEST 2022



> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> On Behalf Of Marton
> Balint
> Sent: Wednesday, June 8, 2022 10:22 PM
> To: FFmpeg development discussions and patches <ffmpeg-devel at ffmpeg.org>
> Subject: Re: [FFmpeg-devel] [PATCH v6] libx264: Set min build version to 158
> 
> 
> 
> On Thu, 26 May 2022, Matt Oliver wrote:
> 
> > From: Matt Oliver <protogonoi at 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 at hotmail.com>
> > Signed-off-by: softworkz <softworkz at hotmail.com>
> > Signed-off-by: Matt Oliver <protogonoi at 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 ;-)
> >    v6: hope I got it now..
> >
> > Published-As: https://github.com/ffstaging/FFmpeg/releases/tag/pr-
> ffstaging-30%2Fsoftworkz%2Fsubmit_x264_api_imports_matt-v6
> > Fetch-It-Via: git fetch https://github.com/ffstaging/FFmpeg pr-ffstaging-
> 30/softworkz/submit_x264_api_imports_matt-v6
> > Pull-Request: https://github.com/ffstaging/FFmpeg/pull/30
> >
> > Range-diff vs v5:
> >
> > 1:  8c4fe7ffc2 ! 1:  47843fb51e libx264: Set min build version to 158
> >     @@ configure: enabled libvpx            && {
> >      -                             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"; }
> >     ++                             [ "$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            | 9 ++++-----
> > libavcodec/libx264.c | 4 ----
> > 2 files changed, 4 insertions(+), 9 deletions(-)
> >
> > diff --git a/configure b/configure
> > index f115b21064..d17361f37f 100755
> > --- a/configure
> > +++ b/configure
> > @@ -6656,11 +6656,10 @@ 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";
> } } &&
> 
> x264 without pkg-config feature got removed. If this is intentonal,
> then maybe you should mention this in the commit message?

I cannot honestly say that I would be sure about this part. Matt had
this removed in his original patch and objections were made about the version 
requirement, but none about the removal of the "non-pkg-config" condition.

Would there be any reasons to keep it?

> 
> > -                             require_cpp_condition libx264 x264.h
> "X264_BUILD >= 118" &&
> > -                             check_cpp_condition libx262 x264.h
> "X264_MPEG2"
> 
> Why is the x262 check got silently removed? This does not seem to belong
> to this commit.`

Matt had removed it and there was a comment about it saying that it 
would by dysfunctional for a long time already.

By a funny coincidence, Gyan has submitted a patch for complete removal
of this: 

https://patchwork.ffmpeg.org/project/ffmpeg/patch/20220527082922.994-1-ffmpeg@gyani.pro/

Whether it belongs into this patch or not could be seen from two sides:

On one side, you could say that THIS patch is about updating and adapting
the x264 conditions to the state of time, but you could also say that 
it must rather be in Gyan's patch (which it is anyway).

Just let me know when you think I should change it.

PS: Thanks a lot for pushing the other patches!

Best wishes,
softworkz




More information about the ffmpeg-devel mailing list