Skip to content

Commit

Permalink
allow building "ffmpeg.exe"
Browse files Browse the repository at this point in the history
add new feature "ffmpeg" which allows to build "ffmpeg.exe" - ex. : vcpkg install ffmpeg[x264,gpl,nonfree,ffplay,ffprobe,openssl,lzma,opencl,ffmpeg]:x64-windows-static --recurse
  • Loading branch information
ptahmose authored and grdowns committed Feb 28, 2019
1 parent 4a582b4 commit 8c3b87c
Show file tree
Hide file tree
Showing 5 changed files with 57 additions and 1 deletion.
3 changes: 3 additions & 0 deletions ports/ffmpeg/CONTROL
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ Version: 4.1-1
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.

Feature: ffmpeg
Description: build the ffmpeg.exe application

Feature: ffserver
Description: ffserver appplication support in ffmpeg

Expand Down
11 changes: 11 additions & 0 deletions ports/ffmpeg/fix_windowsinclude-in-ffmpegexe-1.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- a/cmdutils.c 2017-07-29 19:49:29.000000000 +0200
+++ b/cmdutils.c 2018-09-02 20:31:42.509408400 +0200
@@ -62,6 +62,8 @@
#include <sys/resource.h>
#endif
#ifdef _WIN32
+#define _WIN32_WINNT 0x0600
+#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#endif

14 changes: 14 additions & 0 deletions ports/ffmpeg/fix_windowsinclude-in-ffmpegexe-2.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
--- a/ffmpeg.c 2017-07-29 19:49:29.000000000 +0200
+++ b/ffmpeg.c 2018-09-02 20:32:27.666725200 +0200
@@ -23,6 +23,11 @@
* multimedia converter based on the FFmpeg libraries
*/

+#define _WIN32_WINNT 0x0502 // Must be less than 0x0600, because otherwise WinSock2.h defines "pollfd" which then gets redefined in "os_support.h".
+ // I suppose that "HAVE_STRUCT_POLLFD" should be 1, but it happens to be 0. Sorry, this is somewhat beyond me.
+#define WIN32_LEAN_AND_MEAN
+
+
#include "config.h"
#include <ctype.h>
#include <string.h>
19 changes: 19 additions & 0 deletions ports/ffmpeg/fix_windowsinclude-in-ffmpegexe-3.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
--- a/ffmpeg_dxva2.c 2017-07-29 19:49:29.000000000 +0200
+++ b/ffmpeg_dxva2.c 2018-09-02 20:33:48.248716100 +0200
@@ -16,12 +16,14 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/

-#include <windows.h>
-
#ifdef _WIN32_WINNT
#undef _WIN32_WINNT
#endif
#define _WIN32_WINNT 0x0600
+#define WIN32_LEAN_AND_MEAN
+
+#include <windows.h>
+
#define DXVA2API_USE_BITFIELDS
#define COBJMACROS

11 changes: 10 additions & 1 deletion ports/ffmpeg/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ vcpkg_apply_patches(
${CMAKE_CURRENT_LIST_DIR}/create-lib-libraries.patch
${CMAKE_CURRENT_LIST_DIR}/detect-openssl.patch
${CMAKE_CURRENT_LIST_DIR}/configure_opencv.patch
${CMAKE_CURRENT_LIST_DIR}/fix_windowsinclude-in-ffmpegexe-1.patch
${CMAKE_CURRENT_LIST_DIR}/fix_windowsinclude-in-ffmpegexe-2.patch
${CMAKE_CURRENT_LIST_DIR}/fix_windowsinclude-in-ffmpegexe-3.patch
)

vcpkg_find_acquire_program(YASM)
Expand All @@ -36,7 +39,7 @@ set(_csc_PROJECT_PATH ffmpeg)

file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)

set(OPTIONS "--enable-asm --enable-yasm --disable-doc --enable-debug --disable-ffmpeg")
set(OPTIONS "--enable-asm --enable-yasm --disable-doc --enable-debug")
set(OPTIONS "${OPTIONS} --enable-runtime-cpudetect")

if("nonfree" IN_LIST FEATURES)
Expand All @@ -53,6 +56,12 @@ else()
set(OPTIONS "${OPTIONS} --disable-openssl")
endif()

if("ffmpeg" IN_LIST FEATURES)
set(OPTIONS "${OPTIONS} --enable-ffmpeg")
else()
set(OPTIONS "${OPTIONS} --disable-ffmpeg")
endif()

if("ffplay" IN_LIST FEATURES)
set(OPTIONS "${OPTIONS} --enable-ffplay")
else()
Expand Down

0 comments on commit 8c3b87c

Please sign in to comment.