forked from Nevcairiel/LAVFilters
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build_ffmpeg_msvc.sh
114 lines (97 loc) · 2.68 KB
/
build_ffmpeg_msvc.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#!/bin/sh
arch=x86
archdir=Win32
clean_build=true
for opt in "$@"
do
case "$opt" in
x86)
;;
x64 | amd64)
arch=x86_64
archdir=x64
;;
quick)
clean_build=false
;;
*)
echo "Unknown Option $opt"
exit 1
esac
done
make_dirs() (
mkdir -p bin_${archdir}d/lib
)
copy_libs() (
cp -u lib*/*-lav-*.dll ../bin_${archdir}d
cp -u lib*/*-lav-*.pdb ../bin_${archdir}d
cp -u lib*/*.lib ../bin_${archdir}d/lib
)
clean() (
make distclean > /dev/null 2>&1
)
configure() (
OPTIONS="
--enable-shared \
--disable-static \
--enable-version3 \
--enable-w32threads \
--disable-demuxer=matroska \
--disable-filters \
--enable-filter=yadif \
--enable-filter=scale \
--disable-protocols \
--enable-protocol=file \
--enable-protocol=pipe \
--enable-protocol=mmsh \
--enable-protocol=mmst \
--enable-protocol=rtp \
--enable-protocol=http \
--enable-protocol=crypto \
--enable-protocol=rtmp \
--enable-protocol=rtmpt \
--disable-muxers \
--enable-muxer=spdif \
--disable-hwaccels \
--enable-hwaccel=h264_dxva2 \
--enable-hwaccel=hevc_dxva2 \
--enable-hwaccel=vc1_dxva2 \
--enable-hwaccel=wmv3_dxva2 \
--enable-hwaccel=mpeg2_dxva2 \
--enable-avresample \
--enable-avisynth \
--disable-avdevice \
--disable-postproc \
--disable-swresample \
--disable-encoders \
--disable-bsfs \
--disable-devices \
--disable-programs \
--enable-debug \
--disable-doc \
--build-suffix=-lav \
--arch=${arch}"
EXTRA_CFLAGS="-D_WIN32_WINNT=0x0502 -DWINVER=0x0502 -d2Zi+ -MDd"
EXTRA_LDFLAGS="-NODEFAULTLIB:libcmt"
sh configure --toolchain=msvc --enable-debug --extra-cflags="${EXTRA_CFLAGS}" --extra-ldflags="${EXTRA_LDFLAGS}" ${OPTIONS}
)
build() (
make -j$NUMBER_OF_PROCESSORS
)
echo Building ffmpeg in MSVC Debug config...
make_dirs
cd ffmpeg
if $clean_build ; then
clean
## run configure, redirect to file because of a msys bug
configure > config.out 2>&1
CONFIGRETVAL=$?
## show configure output
cat config.out
fi
## Only if configure succeeded, actually build
if ! $clean_build || [ ${CONFIGRETVAL} -eq 0 ]; then
build &&
copy_libs
fi
cd ..