On Thu, 26 May 2022, Matt Oliver wrote:

From: Matt Oliver <protogo...@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 <softwo...@hotmail.com>
Signed-off-by: softworkz <softwo...@hotmail.com>
Signed-off-by: Matt Oliver <protogo...@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?

-                             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.

Thanks,
Marton

+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>

base-commit: b033913d1c5998a29dfd13e9906dd707ff6eff12
--
ffmpeg-codebot
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to