From 40a0fb232833dbc1b526394929f10b71627c2269 Mon Sep 17 00:00:00 2001 From: Matthew Oliver Date: Thu, 4 Nov 2021 16:07:18 +1100 Subject: [PATCH] [x264] Update to latest stable version. (#21028) * [x264] Update to latest stable version. * [ffmpeg] Fix static x264 linking. --- ...-not-explicitly-set-X264_API_IMPORTS.patch | 47 +++++++++++++++++++ ports/ffmpeg/portfile.cmake | 1 + ports/ffmpeg/vcpkg.json | 2 +- ports/x264/portfile.cmake | 8 ++-- ports/x264/vcpkg.json | 3 +- versions/baseline.json | 6 +-- versions/f-/ffmpeg.json | 5 ++ versions/x-/x264.json | 5 ++ 8 files changed, 67 insertions(+), 10 deletions(-) create mode 100644 ports/ffmpeg/0019-libx264-Do-not-explicitly-set-X264_API_IMPORTS.patch diff --git a/ports/ffmpeg/0019-libx264-Do-not-explicitly-set-X264_API_IMPORTS.patch b/ports/ffmpeg/0019-libx264-Do-not-explicitly-set-X264_API_IMPORTS.patch new file mode 100644 index 00000000000000..7a0fb4bcacc7f6 --- /dev/null +++ b/ports/ffmpeg/0019-libx264-Do-not-explicitly-set-X264_API_IMPORTS.patch @@ -0,0 +1,47 @@ +From d5fca748d76602a912590b64022560283db6fae6 Mon Sep 17 00:00:00 2001 +From: Matt Oliver +Date: Sat, 30 Oct 2021 14:09:29 +1100 +Subject: [PATCH] libx264: Do not explicitly set X264_API_IMPORTS + +--- + configure | 8 +++----- + libavcodec/libx264.c | 4 ---- + 2 files changed, 3 insertions(+), 9 deletions(-) + +diff --git a/configure b/configure +index ede8f9777b..b35728aace 100755 +--- a/configure ++++ b/configure +@@ -6535,11 +6535,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 -ldl" && +- 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 >= 158" && ++ check_cpp_condition libx264 x264.h "X264_MPEG2" + enabled libx265 && { check_pkg_config libx265 x265 x265.h x265_api_get || + { { check_lib libx265 x265.h x265_api_get "-lx265 $pthreads_extralibs $libm_extralibs -ldl -lstdc++ -lgcc_s -lgcc -lrt -lnuma" || + require libx265 x265.h x265_api_get "-lx265 $pthreads_extralibs $libm_extralibs -ldl -lstdc++"; } && +diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c +index 21f434d06d..efbc9608c7 100644 +--- a/libavcodec/libx264.c ++++ b/libavcodec/libx264.c +@@ -34,10 +34,6 @@ + #include "packet_internal.h" + #include "atsc_a53.h" + +-#if defined(_MSC_VER) +-#define X264_API_IMPORTS 1 +-#endif +- + #include + #include + #include +-- +2.33.1.windows.1 + diff --git a/ports/ffmpeg/portfile.cmake b/ports/ffmpeg/portfile.cmake index 128726c2d453f5..9cd4a2ff62f866 100644 --- a/ports/ffmpeg/portfile.cmake +++ b/ports/ffmpeg/portfile.cmake @@ -152,6 +152,7 @@ vcpkg_from_github( 0016-configure-dnn-needs-avformat.patch # http://ffmpeg.org/pipermail/ffmpeg-devel/2021-May/279926.html ${PATCHES} 0018-libaom-Dont-use-aom_codec_av1_dx_algo.patch + 0019-libx264-Do-not-explicitly-set-X264_API_IMPORTS.patch ) if (SOURCE_PATH MATCHES " ") diff --git a/ports/ffmpeg/vcpkg.json b/ports/ffmpeg/vcpkg.json index fbf802114b5503..2b060b31aa1617 100644 --- a/ports/ffmpeg/vcpkg.json +++ b/ports/ffmpeg/vcpkg.json @@ -1,7 +1,7 @@ { "name": "ffmpeg", "version": "4.4", - "port-version": 16, + "port-version": 17, "description": [ "a library to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created.", "FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the community or a corporation. It is also highly portable: FFmpeg compiles, runs, and passes our testing infrastructure FATE across Linux, Mac OS X, Microsoft Windows, the BSDs, Solaris, etc. under a wide variety of build environments, machine architectures, and configurations." diff --git a/ports/x264/portfile.cmake b/ports/x264/portfile.cmake index b64c9ad6e55384..bf725508bede9c 100644 --- a/ports/x264/portfile.cmake +++ b/ports/x264/portfile.cmake @@ -1,13 +1,13 @@ -set(X264_VERSION 157) +set(X264_VERSION 164) vcpkg_fail_port_install(ON_ARCH "arm") vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO mirror/x264 - REF 303c484ec828ed0d8bfe743500e70314d026c3bd - SHA512 faf210a3f9543028ed882c8348b243dd7ae6638e7b3ef43bec1326b717f23370f57c13d0ddb5e1ae94411088a2e33031a137b68ae9f64c18f8f33f601a0da54d - HEAD_REF master + REF 5db6aa6cab1b146e07b60cc1736a01f21da01154 + SHA512 d2cdd40d195fd6507abacc8b8810107567dff2c0a93424ba1eb00b544cb78a5430f00f9bcf8f19bd663ae77849225577da05bfcdb57948a8af9dc32a7c8b9ffd + HEAD_REF stable PATCHES "uwp-cflags.patch" ) diff --git a/ports/x264/vcpkg.json b/ports/x264/vcpkg.json index 41aa4b91809fab..a36254294eaec6 100644 --- a/ports/x264/vcpkg.json +++ b/ports/x264/vcpkg.json @@ -1,7 +1,6 @@ { "name": "x264", - "version-string": "157-303c484ec828ed0", - "port-version": 16, + "version-string": "164-5db6aa6cab1b146", "description": "x264 is a free software library and application for encoding video streams into the H.264/MPEG-4 AVC compression format", "homepage": "https://github.com/mirror/x264", "supports": "!arm", diff --git a/versions/baseline.json b/versions/baseline.json index 0a96ad81818b67..cefa481b7b8d3a 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -2130,7 +2130,7 @@ }, "ffmpeg": { "baseline": "4.4", - "port-version": 16 + "port-version": 17 }, "ffnvcodec": { "baseline": "11.1.5.0", @@ -7157,8 +7157,8 @@ "port-version": 0 }, "x264": { - "baseline": "157-303c484ec828ed0", - "port-version": 16 + "baseline": "164-5db6aa6cab1b146", + "port-version": 0 }, "x265": { "baseline": "3.4", diff --git a/versions/f-/ffmpeg.json b/versions/f-/ffmpeg.json index 83a90b0ae3b27a..e288e836faec84 100644 --- a/versions/f-/ffmpeg.json +++ b/versions/f-/ffmpeg.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "795e31317ef58fbe13247af9e8bade71f3edde5e", + "version": "4.4", + "port-version": 17 + }, { "git-tree": "5a144dc0552d005429d8d6641608744883dee2ff", "version": "4.4", diff --git a/versions/x-/x264.json b/versions/x-/x264.json index 7ca11279e98699..20454b471ef407 100644 --- a/versions/x-/x264.json +++ b/versions/x-/x264.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "2280334f1235046e20f80586b7d83893f52b23b7", + "version-string": "164-5db6aa6cab1b146", + "port-version": 0 + }, { "git-tree": "e8f14328cb425b2a7450bf36f731f97d41564fed", "version-string": "157-303c484ec828ed0",