Browse code

Add Windows resource file support for shared libraries

Originally written by James Almer <jamrial@gmail.com>

With the following contributions by Timothy Gu <timothygu99@gmail.com>

* Use descriptions of libraries from the pkg-config file generation function
* Use "FFmpeg Project" as CompanyName (suggested by Alexander Strasser)
* Use "FFmpeg" for ProductName as MSDN says "name of the product with which the
file is distributed" [1].
* Use FFmpeg's version (N-xxxxx-gxxxxxxx) for ProductVersion per MSDN [1].
* Only build the .rc files when --enable-small is not enabled.

[1] http://msdn.microsoft.com/en-us/library/windows/desktop/aa381058.aspx

Signed-off-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

James Almer authored on 2013/12/06 05:50:14
Showing 23 changed files
... ...
@@ -11,6 +11,7 @@ version <next>
11 11
 - support for decoding through VDPAU in ffmpeg (the -hwaccel option)
12 12
 - complete Voxware MetaSound decoder
13 13
 - remove mp3_header_compress bitstream filters
14
+- Windows resource files for shared libraries
14 15
 
15 16
 
16 17
 version 2.1:
... ...
@@ -6,6 +6,7 @@ vpath %.cpp  $(SRC_PATH)
6 6
 vpath %.h    $(SRC_PATH)
7 7
 vpath %.S    $(SRC_PATH)
8 8
 vpath %.asm  $(SRC_PATH)
9
+vpath %.rc   $(SRC_PATH)
9 10
 vpath %.v    $(SRC_PATH)
10 11
 vpath %.texi $(SRC_PATH)
11 12
 vpath %/fate_config.sh.template $(SRC_PATH)
... ...
@@ -72,7 +73,7 @@ SUBDIR_VARS := CLEANFILES EXAMPLES FFLIBS HOSTPROGS TESTPROGS TOOLS      \
72 72
                ALTIVEC-OBJS VIS-OBJS                                     \
73 73
                MMX-OBJS YASM-OBJS                                        \
74 74
                MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSPR1-OBJS MIPS32R2-OBJS  \
75
-               OBJS HOSTOBJS TESTOBJS
75
+               OBJS SLIBOBJS HOSTOBJS TESTOBJS
76 76
 
77 77
 define RESET
78 78
 $(1) :=
... ...
@@ -10,7 +10,7 @@ ifndef SUBDIR
10 10
 ifndef V
11 11
 Q      = @
12 12
 ECHO   = printf "$(1)\t%s\n" $(2)
13
-BRIEF  = CC CXX HOSTCC HOSTLD AS YASM AR LD STRIP CP
13
+BRIEF  = CC CXX HOSTCC HOSTLD AS YASM AR LD STRIP CP WINDRES
14 14
 SILENT = DEPCC DEPHOSTCC DEPAS DEPYASM RANLIB RM
15 15
 
16 16
 MSG    = $@
... ...
@@ -60,6 +60,9 @@ COMPILE_HOSTC = $(call COMPILE,HOSTCC)
60 60
 %_host.o: %.c
61 61
 	$(COMPILE_HOSTC)
62 62
 
63
+%.o: %.rc
64
+	$(WINDRES) $(IFLAGS) -o $@ $<
65
+
63 66
 %.i: %.c
64 67
 	$(CC) $(CCFLAGS) $(CC_E) $<
65 68
 
... ...
@@ -86,6 +89,7 @@ endif
86 86
 include $(SRC_PATH)/arch.mak
87 87
 
88 88
 OBJS      += $(OBJS-yes)
89
+SLIBOBJS  += $(SLIBOBJS-yes)
89 90
 FFLIBS    := $(FFLIBS-yes) $(FFLIBS)
90 91
 TESTPROGS += $(TESTPROGS-yes)
91 92
 
... ...
@@ -94,6 +98,7 @@ FFEXTRALIBS := $(LDLIBS:%=$(LD_LIB)) $(EXTRALIBS)
94 94
 
95 95
 EXAMPLES  := $(EXAMPLES:%=$(SUBDIR)%-example$(EXESUF))
96 96
 OBJS      := $(sort $(OBJS:%=$(SUBDIR)%))
97
+SLIBOBJS  := $(sort $(SLIBOBJS:%=$(SUBDIR)%))
97 98
 TESTOBJS  := $(TESTOBJS:%=$(SUBDIR)%) $(TESTPROGS:%=$(SUBDIR)%-test.o)
98 99
 TESTPROGS := $(TESTPROGS:%=$(SUBDIR)%-test$(EXESUF))
99 100
 HOSTOBJS  := $(HOSTPROGS:%=$(SUBDIR)%.o)
... ...
@@ -125,10 +130,11 @@ $(HOSTPROGS): %$(HOSTEXESUF): %.o
125 125
 $(OBJS):     | $(sort $(dir $(OBJS)))
126 126
 $(HOBJS):    | $(sort $(dir $(HOBJS)))
127 127
 $(HOSTOBJS): | $(sort $(dir $(HOSTOBJS)))
128
+$(SLIBOBJS): | $(sort $(dir $(SLIBOBJS)))
128 129
 $(TESTOBJS): | $(sort $(dir $(TESTOBJS)))
129 130
 $(TOOLOBJS): | tools
130 131
 
131
-OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(TESTOBJS))
132
+OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(SLIBOBJS) $(TESTOBJS))
132 133
 
133 134
 CLEANSUFFIXES     = *.d *.o *~ *.h.c *.map *.ver *.ho *.gcno *.gcda
134 135
 DISTCLEANSUFFIXES = *.pc
... ...
@@ -267,6 +267,7 @@ Advanced options (experts only):
267 267
   --nm=NM                  use nm tool NM [$nm_default]
268 268
   --ar=AR                  use archive tool AR [$ar_default]
269 269
   --as=AS                  use assembler AS [$as_default]
270
+  --windres=WINDRES        use windows resource compiler WINDRES [$windres_default]
270 271
   --yasmexe=EXE            use yasm-compatible assembler EXE [$yasmexe_default]
271 272
   --cc=CC                  use C compiler CC [$cc_default]
272 273
   --cxx=CXX                use C compiler CXX [$cxx_default]
... ...
@@ -1509,6 +1510,7 @@ HAVE_LIST="
1509 1509
     gettimeofday
1510 1510
     glob
1511 1511
     gnu_as
1512
+    gnu_windres
1512 1513
     gsm_h
1513 1514
     ibm_asm
1514 1515
     inet_aton
... ...
@@ -2367,6 +2369,7 @@ pkg_config_default=pkg-config
2367 2367
 ranlib="ranlib"
2368 2368
 strip_default="strip"
2369 2369
 yasmexe_default="yasm"
2370
+windres_default="windres"
2370 2371
 
2371 2372
 nogas=":"
2372 2373
 
... ...
@@ -2637,6 +2640,7 @@ nm_default="${cross_prefix}${nm_default}"
2637 2637
 pkg_config_default="${cross_prefix}${pkg_config_default}"
2638 2638
 ranlib="${cross_prefix}${ranlib}"
2639 2639
 strip_default="${cross_prefix}${strip_default}"
2640
+windres_default="${cross_prefix}${windres_default}"
2640 2641
 
2641 2642
 sysinclude_default="${sysroot}/usr/include"
2642 2643
 
... ...
@@ -3155,7 +3159,7 @@ test -n "$cc_type" && enable $cc_type ||
3155 3155
 : ${dep_cc_default:=$cc}
3156 3156
 : ${ld_default:=$cc}
3157 3157
 : ${host_ld_default:=$host_cc}
3158
-set_default ar as dep_cc ld host_ld
3158
+set_default ar as dep_cc ld host_ld windres
3159 3159
 
3160 3160
 probe_cc as "$as"
3161 3161
 asflags_filter=$_flags_filter
... ...
@@ -3637,6 +3641,7 @@ case $target_os in
3637 3637
         elif enabled arm; then
3638 3638
             LIBTARGET=arm-wince
3639 3639
         fi
3640
+        enabled shared && ! enabled small && check_cmd $windres --version && enable gnu_windres
3640 3641
         check_ldflags -Wl,--nxcompat
3641 3642
         check_ldflags -Wl,--dynamicbase
3642 3643
         shlibdir_default="$bindir_default"
... ...
@@ -3699,6 +3704,7 @@ case $target_os in
3699 3699
         SHFLAGS='-shared -Wl,--out-implib,$(SUBDIR)lib$(FULLNAME).dll.a'
3700 3700
         objformat="win32"
3701 3701
         enable dos_paths
3702
+        enabled shared && ! enabled small && check_cmd $windres --version && enable gnu_windres
3702 3703
         ;;
3703 3704
     *-dos|freedos|opendos)
3704 3705
         network_extralibs="-lsocket"
... ...
@@ -4882,6 +4888,7 @@ LD_O=$LD_O
4882 4882
 LD_LIB=$LD_LIB
4883 4883
 LD_PATH=$LD_PATH
4884 4884
 DLLTOOL=$dlltool
4885
+WINDRES=$windres
4885 4886
 LDFLAGS=$LDFLAGS
4886 4887
 SHFLAGS=$(echo $($ldflags_filter $SHFLAGS))
4887 4888
 ASMSTRIPFLAGS=$ASMSTRIPFLAGS
... ...
@@ -4969,6 +4976,7 @@ cat > $TMPH <<EOF
4969 4969
 #define av_restrict $_restrict
4970 4970
 #define EXTERN_PREFIX "${extern_prefix}"
4971 4971
 #define EXTERN_ASM ${extern_prefix}
4972
+#define BUILDSUF "$build_suffix"
4972 4973
 #define SLIBSUF "$SLIBSUF"
4973 4974
 #define HAVE_MMX2 HAVE_MMXEXT
4974 4975
 EOF
... ...
@@ -814,6 +814,9 @@ OBJS-$(HAVE_OS2THREADS)                += pthread.o pthread_slice.o pthread_fram
814 814
 
815 815
 OBJS-$(CONFIG_FRAME_THREAD_ENCODER)    += frame_thread_encoder.o
816 816
 
817
+# Windows resource file
818
+SLIBOBJS-$(HAVE_GNU_WINDRES)           += avcodecres.o
819
+
817 820
 SKIPHEADERS                            += %_tablegen.h                  \
818 821
                                           %_tables.h                    \
819 822
                                           aac_tablegen_decl.h           \
820 823
new file mode 100644
... ...
@@ -0,0 +1,55 @@
0
+/*
1
+ * Windows resource file for libavcodec
2
+ *
3
+ * Copyright (C) 2012 James Almer
4
+ * Copyright (C) 2013 Tiancheng "Timothy" Gu
5
+ *
6
+ * This file is part of FFmpeg.
7
+ *
8
+ * FFmpeg is free software; you can redistribute it and/or
9
+ * modify it under the terms of the GNU Lesser General Public
10
+ * License as published by the Free Software Foundation; either
11
+ * version 2.1 of the License, or (at your option) any later version.
12
+ *
13
+ * FFmpeg is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16
+ * Lesser General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU Lesser General Public
19
+ * License along with FFmpeg; if not, write to the Free Software
20
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
+ */
22
+
23
+#include <windows.h>
24
+#include "libavcodec/version.h"
25
+#include "libavutil/ffversion.h"
26
+#include "config.h"
27
+
28
+1 VERSIONINFO
29
+FILEVERSION     LIBAVCODEC_VERSION_MAJOR, LIBAVCODEC_VERSION_MINOR, LIBAVCODEC_VERSION_MICRO, 0
30
+PRODUCTVERSION  LIBAVCODEC_VERSION_MAJOR, LIBAVCODEC_VERSION_MINOR, LIBAVCODEC_VERSION_MICRO, 0
31
+FILEFLAGSMASK   VS_FFI_FILEFLAGSMASK
32
+FILEOS          VOS_NT_WINDOWS32
33
+FILETYPE        VFT_DLL
34
+{
35
+    BLOCK "StringFileInfo"
36
+    {
37
+        BLOCK "040904B0"
38
+        {
39
+            VALUE "CompanyName",      "FFmpeg Project"
40
+            VALUE "FileDescription",  "FFmpeg codec library"
41
+            VALUE "FileVersion",      AV_STRINGIFY(LIBAVCODEC_VERSION)
42
+            VALUE "InternalName",     "libavcodec"
43
+            VALUE "LegalCopyright",   "Copyright (C) 2000-" AV_STRINGIFY(CONFIG_THIS_YEAR) " FFmpeg Project"
44
+            VALUE "OriginalFilename", "avcodec" BUILDSUF "-" AV_STRINGIFY(LIBAVCODEC_VERSION_MAJOR) SLIBSUF
45
+            VALUE "ProductName",      "FFmpeg"
46
+            VALUE "ProductVersion",   FFMPEG_VERSION
47
+        }
48
+    }
49
+
50
+    BLOCK "VarFileInfo"
51
+    {
52
+        VALUE "Translation", 0x0409, 0x04B0
53
+    }
54
+}
... ...
@@ -51,6 +51,9 @@ OBJS-$(CONFIG_XV_OUTDEV)                 += xv.o
51 51
 OBJS-$(CONFIG_LIBCDIO_INDEV)             += libcdio.o
52 52
 OBJS-$(CONFIG_LIBDC1394_INDEV)           += libdc1394.o
53 53
 
54
+# Windows resource file
55
+SLIBOBJS-$(HAVE_GNU_WINDRES)             += avdeviceres.o
56
+
54 57
 SKIPHEADERS-$(CONFIG_DSHOW_INDEV)        += dshow_capture.h
55 58
 SKIPHEADERS-$(CONFIG_LIBPULSE)           += pulse_audio_common.h
56 59
 SKIPHEADERS-$(CONFIG_V4L2_INDEV)         += v4l2-common.h
57 60
new file mode 100644
... ...
@@ -0,0 +1,55 @@
0
+/*
1
+ * Windows resource file for libavdevice
2
+ *
3
+ * Copyright (C) 2012 James Almer
4
+ * Copyright (C) 2013 Tiancheng "Timothy" Gu
5
+ *
6
+ * This file is part of FFmpeg.
7
+ *
8
+ * FFmpeg is free software; you can redistribute it and/or
9
+ * modify it under the terms of the GNU Lesser General Public
10
+ * License as published by the Free Software Foundation; either
11
+ * version 2.1 of the License, or (at your option) any later version.
12
+ *
13
+ * FFmpeg is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16
+ * Lesser General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU Lesser General Public
19
+ * License along with FFmpeg; if not, write to the Free Software
20
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
+ */
22
+
23
+#include <windows.h>
24
+#include "libavdevice/version.h"
25
+#include "libavutil/ffversion.h"
26
+#include "config.h"
27
+
28
+1 VERSIONINFO
29
+FILEVERSION     LIBAVDEVICE_VERSION_MAJOR, LIBAVDEVICE_VERSION_MINOR, LIBAVDEVICE_VERSION_MICRO, 0
30
+PRODUCTVERSION  LIBAVDEVICE_VERSION_MAJOR, LIBAVDEVICE_VERSION_MINOR, LIBAVDEVICE_VERSION_MICRO, 0
31
+FILEFLAGSMASK   VS_FFI_FILEFLAGSMASK
32
+FILEOS          VOS_NT_WINDOWS32
33
+FILETYPE        VFT_DLL
34
+{
35
+    BLOCK "StringFileInfo"
36
+    {
37
+        BLOCK "040904B0"
38
+        {
39
+            VALUE "CompanyName",      "FFmpeg Project"
40
+            VALUE "FileDescription",  "FFmpeg device handling library"
41
+            VALUE "FileVersion",      AV_STRINGIFY(LIBAVDEVICE_VERSION)
42
+            VALUE "InternalName",     "libavdevice"
43
+            VALUE "LegalCopyright",   "Copyright (C) 2000-" AV_STRINGIFY(CONFIG_THIS_YEAR) " FFmpeg Project"
44
+            VALUE "OriginalFilename", "avdevice" BUILDSUF "-" AV_STRINGIFY(LIBAVDEVICE_VERSION_MAJOR) SLIBSUF
45
+            VALUE "ProductName",      "FFmpeg"
46
+            VALUE "ProductVersion",   FFMPEG_VERSION
47
+        }
48
+    }
49
+
50
+    BLOCK "VarFileInfo"
51
+    {
52
+        VALUE "Translation", 0x0409, 0x04B0
53
+    }
54
+}
... ...
@@ -247,6 +247,9 @@ OBJS-$(CONFIG_SHOWWAVES_FILTER)              += avf_showwaves.o
247 247
 OBJS-$(CONFIG_AMOVIE_FILTER)                 += src_movie.o
248 248
 OBJS-$(CONFIG_MOVIE_FILTER)                  += src_movie.o
249 249
 
250
+# Windows resource file
251
+SLIBOBJS-$(HAVE_GNU_WINDRES)                 += avfilterres.o
252
+
250 253
 SKIPHEADERS-$(CONFIG_LIBVIDSTAB)             += vidstabutils.h
251 254
 SKIPHEADERS-$(CONFIG_OPENCL)                 += opencl_internal.h deshake_opencl_kernel.h unsharp_opencl_kernel.h
252 255
 
253 256
new file mode 100644
... ...
@@ -0,0 +1,55 @@
0
+/*
1
+ * Windows resource file for libavfilter
2
+ *
3
+ * Copyright (C) 2012 James Almer
4
+ * Copyright (C) 2013 Tiancheng "Timothy" Gu
5
+ *
6
+ * This file is part of FFmpeg.
7
+ *
8
+ * FFmpeg is free software; you can redistribute it and/or
9
+ * modify it under the terms of the GNU Lesser General Public
10
+ * License as published by the Free Software Foundation; either
11
+ * version 2.1 of the License, or (at your option) any later version.
12
+ *
13
+ * FFmpeg is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16
+ * Lesser General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU Lesser General Public
19
+ * License along with FFmpeg; if not, write to the Free Software
20
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
+ */
22
+
23
+#include <windows.h>
24
+#include "libavfilter/version.h"
25
+#include "libavutil/ffversion.h"
26
+#include "config.h"
27
+
28
+1 VERSIONINFO
29
+FILEVERSION     LIBAVFILTER_VERSION_MAJOR, LIBAVFILTER_VERSION_MINOR, LIBAVFILTER_VERSION_MICRO, 0
30
+PRODUCTVERSION  LIBAVFILTER_VERSION_MAJOR, LIBAVFILTER_VERSION_MINOR, LIBAVFILTER_VERSION_MICRO, 0
31
+FILEFLAGSMASK   VS_FFI_FILEFLAGSMASK
32
+FILEOS          VOS_NT_WINDOWS32
33
+FILETYPE        VFT_DLL
34
+{
35
+    BLOCK "StringFileInfo"
36
+    {
37
+        BLOCK "040904B0"
38
+        {
39
+            VALUE "CompanyName",      "FFmpeg Project"
40
+            VALUE "FileDescription",  "FFmpeg audio/video filtering library"
41
+            VALUE "FileVersion",      AV_STRINGIFY(LIBAVFILTER_VERSION)
42
+            VALUE "InternalName",     "libavfilter"
43
+            VALUE "LegalCopyright",   "Copyright (C) 2000-" AV_STRINGIFY(CONFIG_THIS_YEAR) " FFmpeg Project"
44
+            VALUE "OriginalFilename", "avfilter" BUILDSUF "-" AV_STRINGIFY(LIBAVFILTER_VERSION_MAJOR) SLIBSUF
45
+            VALUE "ProductName",      "FFmpeg"
46
+            VALUE "ProductVersion",   FFMPEG_VERSION
47
+        }
48
+    }
49
+
50
+    BLOCK "VarFileInfo"
51
+    {
52
+        VALUE "Translation", 0x0409, 0x04B0
53
+    }
54
+}
... ...
@@ -467,6 +467,9 @@ OBJS-$(CONFIG_TLS_PROTOCOL)              += tls.o
467 467
 OBJS-$(CONFIG_UDP_PROTOCOL)              += udp.o
468 468
 OBJS-$(CONFIG_UNIX_PROTOCOL)             += unix.o
469 469
 
470
+# Windows resource file
471
+SLIBOBJS-$(HAVE_GNU_WINDRES)             += avformatres.o
472
+
470 473
 SKIPHEADERS-$(CONFIG_FFRTMPCRYPT_PROTOCOL) += rtmpdh.h
471 474
 SKIPHEADERS-$(CONFIG_NETWORK)            += network.h rtsp.h
472 475
 TESTPROGS = seek                                                        \
473 476
new file mode 100644
... ...
@@ -0,0 +1,55 @@
0
+/*
1
+ * Windows resource file for libavformat
2
+ *
3
+ * Copyright (C) 2012 James Almer
4
+ * Copyright (C) 2013 Tiancheng "Timothy" Gu
5
+ *
6
+ * This file is part of FFmpeg.
7
+ *
8
+ * FFmpeg is free software; you can redistribute it and/or
9
+ * modify it under the terms of the GNU Lesser General Public
10
+ * License as published by the Free Software Foundation; either
11
+ * version 2.1 of the License, or (at your option) any later version.
12
+ *
13
+ * FFmpeg is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16
+ * Lesser General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU Lesser General Public
19
+ * License along with FFmpeg; if not, write to the Free Software
20
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
+ */
22
+
23
+#include <windows.h>
24
+#include "libavformat/version.h"
25
+#include "libavutil/ffversion.h"
26
+#include "config.h"
27
+
28
+1 VERSIONINFO
29
+FILEVERSION     LIBAVFORMAT_VERSION_MAJOR, LIBAVFORMAT_VERSION_MINOR, LIBAVFORMAT_VERSION_MICRO, 0
30
+PRODUCTVERSION  LIBAVFORMAT_VERSION_MAJOR, LIBAVFORMAT_VERSION_MINOR, LIBAVFORMAT_VERSION_MICRO, 0
31
+FILEFLAGSMASK   VS_FFI_FILEFLAGSMASK
32
+FILEOS          VOS_NT_WINDOWS32
33
+FILETYPE        VFT_DLL
34
+{
35
+    BLOCK "StringFileInfo"
36
+    {
37
+        BLOCK "040904B0"
38
+        {
39
+            VALUE "CompanyName",      "FFmpeg Project"
40
+            VALUE "FileDescription",  "FFmpeg container format library"
41
+            VALUE "FileVersion",      AV_STRINGIFY(LIBAVFORMAT_VERSION)
42
+            VALUE "InternalName",     "libavformat"
43
+            VALUE "LegalCopyright",   "Copyright (C) 2000-" AV_STRINGIFY(CONFIG_THIS_YEAR) " FFmpeg Project"
44
+            VALUE "OriginalFilename", "avformat" BUILDSUF "-" AV_STRINGIFY(LIBAVFORMAT_VERSION_MAJOR) SLIBSUF
45
+            VALUE "ProductName",      "FFmpeg"
46
+            VALUE "ProductVersion",   FFMPEG_VERSION
47
+        }
48
+    }
49
+
50
+    BLOCK "VarFileInfo"
51
+    {
52
+        VALUE "Translation", 0x0409, 0x04B0
53
+    }
54
+}
... ...
@@ -13,4 +13,7 @@ OBJS = audio_convert.o                                                  \
13 13
        resample.o                                                       \
14 14
        utils.o                                                          \
15 15
 
16
+# Windows resource file
17
+SLIBOBJS-$(HAVE_GNU_WINDRES) += avresampleres.o
18
+
16 19
 TESTPROGS = avresample
17 20
new file mode 100644
... ...
@@ -0,0 +1,55 @@
0
+/*
1
+ * Windows resource file for libavresample
2
+ *
3
+ * Copyright (C) 2012 James Almer
4
+ * Copyright (C) 2013 Tiancheng "Timothy" Gu
5
+ *
6
+ * This file is part of FFmpeg.
7
+ *
8
+ * FFmpeg is free software; you can redistribute it and/or
9
+ * modify it under the terms of the GNU Lesser General Public
10
+ * License as published by the Free Software Foundation; either
11
+ * version 2.1 of the License, or (at your option) any later version.
12
+ *
13
+ * FFmpeg is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16
+ * Lesser General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU Lesser General Public
19
+ * License along with FFmpeg; if not, write to the Free Software
20
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
+ */
22
+
23
+#include <windows.h>
24
+#include "libavresample/version.h"
25
+#include "libavutil/ffversion.h"
26
+#include "config.h"
27
+
28
+1 VERSIONINFO
29
+FILEVERSION     LIBAVRESAMPLE_VERSION_MAJOR, LIBAVRESAMPLE_VERSION_MINOR, LIBAVRESAMPLE_VERSION_MICRO, 0
30
+PRODUCTVERSION  LIBAVRESAMPLE_VERSION_MAJOR, LIBAVRESAMPLE_VERSION_MINOR, LIBAVRESAMPLE_VERSION_MICRO, 0
31
+FILEFLAGSMASK   VS_FFI_FILEFLAGSMASK
32
+FILEOS          VOS_NT_WINDOWS32
33
+FILETYPE        VFT_DLL
34
+{
35
+    BLOCK "StringFileInfo"
36
+    {
37
+        BLOCK "040904B0"
38
+        {
39
+            VALUE "CompanyName",      "FFmpeg Project"
40
+            VALUE "FileDescription",  "Libav audio resampling library"
41
+            VALUE "FileVersion",      AV_STRINGIFY(LIBAVRESAMPLE_VERSION)
42
+            VALUE "InternalName",     "libavresample"
43
+            VALUE "LegalCopyright",   "Copyright (C) 2000-" AV_STRINGIFY(CONFIG_THIS_YEAR) " FFmpeg Project"
44
+            VALUE "OriginalFilename", "avresample" BUILDSUF "-" AV_STRINGIFY(LIBAVRESAMPLE_VERSION_MAJOR) SLIBSUF
45
+            VALUE "ProductName",      "FFmpeg"
46
+            VALUE "ProductVersion",   FFMPEG_VERSION
47
+        }
48
+    }
49
+
50
+    BLOCK "VarFileInfo"
51
+    {
52
+        VALUE "Translation", 0x0409, 0x04B0
53
+    }
54
+}
... ...
@@ -122,6 +122,9 @@ OBJS-$(CONFIG_OPENCL)                   += opencl.o opencl_internal.o
122 122
 
123 123
 OBJS += $(COMPAT_OBJS:%=../compat/%)
124 124
 
125
+# Windows resource file
126
+SLIBOBJS-$(HAVE_GNU_WINDRES)            += avutilres.o
127
+
125 128
 SKIPHEADERS          = old_pix_fmts.h
126 129
 
127 130
 SKIPHEADERS-$(HAVE_ATOMICS_GCC)        += atomic_gcc.h
128 131
new file mode 100644
... ...
@@ -0,0 +1,55 @@
0
+/*
1
+ * Windows resource file for libavutil
2
+ *
3
+ * Copyright (C) 2012 James Almer
4
+ * Copyright (C) 2013 Tiancheng "Timothy" Gu
5
+ *
6
+ * This file is part of FFmpeg.
7
+ *
8
+ * FFmpeg is free software; you can redistribute it and/or
9
+ * modify it under the terms of the GNU Lesser General Public
10
+ * License as published by the Free Software Foundation; either
11
+ * version 2.1 of the License, or (at your option) any later version.
12
+ *
13
+ * FFmpeg is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16
+ * Lesser General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU Lesser General Public
19
+ * License along with FFmpeg; if not, write to the Free Software
20
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
+ */
22
+
23
+#include <windows.h>
24
+#include "libavutil/version.h"
25
+#include "libavutil/ffversion.h"
26
+#include "config.h"
27
+
28
+1 VERSIONINFO
29
+FILEVERSION     LIBAVUTIL_VERSION_MAJOR, LIBAVUTIL_VERSION_MINOR, LIBAVUTIL_VERSION_MICRO, 0
30
+PRODUCTVERSION  LIBAVUTIL_VERSION_MAJOR, LIBAVUTIL_VERSION_MINOR, LIBAVUTIL_VERSION_MICRO, 0
31
+FILEFLAGSMASK   VS_FFI_FILEFLAGSMASK
32
+FILEOS          VOS_NT_WINDOWS32
33
+FILETYPE        VFT_DLL
34
+{
35
+    BLOCK "StringFileInfo"
36
+    {
37
+        BLOCK "040904B0"
38
+        {
39
+            VALUE "CompanyName",      "FFmpeg Project"
40
+            VALUE "FileDescription",  "FFmpeg utility library"
41
+            VALUE "FileVersion",      AV_STRINGIFY(LIBAVUTIL_VERSION)
42
+            VALUE "InternalName",     "libavutil"
43
+            VALUE "LegalCopyright",   "Copyright (C) 2000-" AV_STRINGIFY(CONFIG_THIS_YEAR) " FFmpeg Project"
44
+            VALUE "OriginalFilename", "avutil" BUILDSUF "-" AV_STRINGIFY(LIBAVUTIL_VERSION_MAJOR) SLIBSUF
45
+            VALUE "ProductName",      "FFmpeg"
46
+            VALUE "ProductVersion",   FFMPEG_VERSION
47
+        }
48
+    }
49
+
50
+    BLOCK "VarFileInfo"
51
+    {
52
+        VALUE "Translation", 0x0409, 0x04B0
53
+    }
54
+}
... ...
@@ -7,3 +7,6 @@ HEADERS = postprocess.h        \
7 7
           version.h            \
8 8
 
9 9
 OBJS = postprocess.o
10
+
11
+# Windows resource file
12
+SLIBOBJS-$(HAVE_GNU_WINDRES) += postprocres.o
10 13
new file mode 100644
... ...
@@ -0,0 +1,55 @@
0
+/*
1
+ * Windows resource file for libpostproc
2
+ *
3
+ * Copyright (C) 2012 James Almer
4
+ * Copyright (C) 2013 Tiancheng "Timothy" Gu
5
+ *
6
+ * This file is part of FFmpeg.
7
+ *
8
+ * FFmpeg is free software; you can redistribute it and/or
9
+ * modify it under the terms of the GNU Lesser General Public
10
+ * License as published by the Free Software Foundation; either
11
+ * version 2.1 of the License, or (at your option) any later version.
12
+ *
13
+ * FFmpeg is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16
+ * Lesser General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU Lesser General Public
19
+ * License along with FFmpeg; if not, write to the Free Software
20
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
+ */
22
+
23
+#include <windows.h>
24
+#include "libpostproc/version.h"
25
+#include "libavutil/ffversion.h"
26
+#include "config.h"
27
+
28
+1 VERSIONINFO
29
+FILEVERSION     LIBPOSTPROC_VERSION_MAJOR, LIBPOSTPROC_VERSION_MINOR, LIBPOSTPROC_VERSION_MICRO, 0
30
+PRODUCTVERSION  LIBPOSTPROC_VERSION_MAJOR, LIBPOSTPROC_VERSION_MINOR, LIBPOSTPROC_VERSION_MICRO, 0
31
+FILEFLAGSMASK   VS_FFI_FILEFLAGSMASK
32
+FILEOS          VOS_NT_WINDOWS32
33
+FILETYPE        VFT_DLL
34
+{
35
+    BLOCK "StringFileInfo"
36
+    {
37
+        BLOCK "040904B0"
38
+        {
39
+            VALUE "CompanyName",      "FFmpeg Project"
40
+            VALUE "FileDescription",  "FFmpeg postprocessing library"
41
+            VALUE "FileVersion",      AV_STRINGIFY(LIBPOSTPROC_VERSION)
42
+            VALUE "InternalName",     "libpostproc"
43
+            VALUE "LegalCopyright",   "Copyright (C) 2000-" AV_STRINGIFY(CONFIG_THIS_YEAR) " FFmpeg Project"
44
+            VALUE "OriginalFilename", "postproc" BUILDSUF "-" AV_STRINGIFY(LIBPOSTPROC_VERSION_MAJOR) SLIBSUF
45
+            VALUE "ProductName",      "FFmpeg"
46
+            VALUE "ProductVersion",   FFMPEG_VERSION
47
+        }
48
+    }
49
+
50
+    BLOCK "VarFileInfo"
51
+    {
52
+        VALUE "Translation", 0x0409, 0x04B0
53
+    }
54
+}
... ...
@@ -51,7 +51,7 @@ $(EXAMPLES) $(TESTPROGS) $(TOOLS): %$(EXESUF): %.o $(EXEOBJS)
51 51
 $(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR)
52 52
 	$(Q)cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME)
53 53
 
54
-$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SUBDIR)lib$(NAME).ver
54
+$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SLIBOBJS) $(SUBDIR)lib$(NAME).ver
55 55
 	$(SLIB_CREATE_DEF_CMD)
56 56
 	$$(LD) $(SHFLAGS) $(LDFLAGS) $$(LD_O) $$(filter %.o,$$^) $(FFEXTRALIBS)
57 57
 	$(SLIB_EXTRA_CMD)
... ...
@@ -15,4 +15,7 @@ OBJS = audioconvert.o                        \
15 15
 OBJS-$(CONFIG_LIBSOXR) += soxr_resample.o
16 16
 OBJS-$(CONFIG_SHARED)  += log2_tab.o
17 17
 
18
+# Windows resource file
19
+SLIBOBJS-$(HAVE_GNU_WINDRES) += swresampleres.o
20
+
18 21
 TESTPROGS = swresample
19 22
new file mode 100644
... ...
@@ -0,0 +1,55 @@
0
+/*
1
+ * Windows resource file for libswresample
2
+ *
3
+ * Copyright (C) 2012 James Almer
4
+ * Copyright (C) 2013 Tiancheng "Timothy" Gu
5
+ *
6
+ * This file is part of FFmpeg.
7
+ *
8
+ * FFmpeg is free software; you can redistribute it and/or
9
+ * modify it under the terms of the GNU Lesser General Public
10
+ * License as published by the Free Software Foundation; either
11
+ * version 2.1 of the License, or (at your option) any later version.
12
+ *
13
+ * FFmpeg is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16
+ * Lesser General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU Lesser General Public
19
+ * License along with FFmpeg; if not, write to the Free Software
20
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
+ */
22
+
23
+#include <windows.h>
24
+#include "libswresample/version.h"
25
+#include "libavutil/ffversion.h"
26
+#include "config.h"
27
+
28
+1 VERSIONINFO
29
+FILEVERSION     LIBSWRESAMPLE_VERSION_MAJOR, LIBSWRESAMPLE_VERSION_MINOR, LIBSWRESAMPLE_VERSION_MICRO, 0
30
+PRODUCTVERSION  LIBSWRESAMPLE_VERSION_MAJOR, LIBSWRESAMPLE_VERSION_MINOR, LIBSWRESAMPLE_VERSION_MICRO, 0
31
+FILEFLAGSMASK   VS_FFI_FILEFLAGSMASK
32
+FILEOS          VOS_NT_WINDOWS32
33
+FILETYPE        VFT_DLL
34
+{
35
+    BLOCK "StringFileInfo"
36
+    {
37
+        BLOCK "040904B0"
38
+        {
39
+            VALUE "CompanyName",      "FFmpeg Project"
40
+            VALUE "FileDescription",  "FFmpeg audio resampling library"
41
+            VALUE "FileVersion",      AV_STRINGIFY(LIBSWRESAMPLE_VERSION)
42
+            VALUE "InternalName",     "libswresample"
43
+            VALUE "LegalCopyright",   "Copyright (C) 2000-" AV_STRINGIFY(CONFIG_THIS_YEAR) " FFmpeg Project"
44
+            VALUE "OriginalFilename", "swresample" BUILDSUF "-" AV_STRINGIFY(LIBSWRESAMPLE_VERSION_MAJOR) SLIBSUF
45
+            VALUE "ProductName",      "FFmpeg"
46
+            VALUE "ProductVersion",   FFMPEG_VERSION
47
+        }
48
+    }
49
+
50
+    BLOCK "VarFileInfo"
51
+    {
52
+        VALUE "Translation", 0x0409, 0x04B0
53
+    }
54
+}
... ...
@@ -15,5 +15,8 @@ OBJS = input.o                                          \
15 15
        utils.o                                          \
16 16
        yuv2rgb.o                                        \
17 17
 
18
+# Windows resource file
19
+SLIBOBJS-$(HAVE_GNU_WINDRES) += swscaleres.o
20
+
18 21
 TESTPROGS = colorspace                                                  \
19 22
             swscale                                                     \
20 23
new file mode 100644
... ...
@@ -0,0 +1,55 @@
0
+/*
1
+ * Windows resource file for libswscale
2
+ *
3
+ * Copyright (C) 2012 James Almer
4
+ * Copyright (C) 2013 Tiancheng "Timothy" Gu
5
+ *
6
+ * This file is part of FFmpeg.
7
+ *
8
+ * FFmpeg is free software; you can redistribute it and/or
9
+ * modify it under the terms of the GNU Lesser General Public
10
+ * License as published by the Free Software Foundation; either
11
+ * version 2.1 of the License, or (at your option) any later version.
12
+ *
13
+ * FFmpeg is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16
+ * Lesser General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU Lesser General Public
19
+ * License along with FFmpeg; if not, write to the Free Software
20
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
+ */
22
+
23
+#include <windows.h>
24
+#include "libswscale/version.h"
25
+#include "libavutil/ffversion.h"
26
+#include "config.h"
27
+
28
+1 VERSIONINFO
29
+FILEVERSION     LIBSWSCALE_VERSION_MAJOR, LIBSWSCALE_VERSION_MINOR, LIBSWSCALE_VERSION_MICRO, 0
30
+PRODUCTVERSION  LIBSWSCALE_VERSION_MAJOR, LIBSWSCALE_VERSION_MINOR, LIBSWSCALE_VERSION_MICRO, 0
31
+FILEFLAGSMASK   VS_FFI_FILEFLAGSMASK
32
+FILEOS          VOS_NT_WINDOWS32
33
+FILETYPE        VFT_DLL
34
+{
35
+    BLOCK "StringFileInfo"
36
+    {
37
+        BLOCK "040904B0"
38
+        {
39
+            VALUE "CompanyName",      "FFmpeg Project"
40
+            VALUE "FileDescription",  "FFmpeg image rescaling library"
41
+            VALUE "FileVersion",      AV_STRINGIFY(LIBSWSCALE_VERSION)
42
+            VALUE "InternalName",     "libswscale"
43
+            VALUE "LegalCopyright",   "Copyright (C) 2000-" AV_STRINGIFY(CONFIG_THIS_YEAR) " FFmpeg Project"
44
+            VALUE "OriginalFilename", "swscale" BUILDSUF "-" AV_STRINGIFY(LIBSWSCALE_VERSION_MAJOR) SLIBSUF
45
+            VALUE "ProductName",      "FFmpeg"
46
+            VALUE "ProductVersion",   FFMPEG_VERSION
47
+        }
48
+    }
49
+
50
+    BLOCK "VarFileInfo"
51
+    {
52
+        VALUE "Translation", 0x0409, 0x04B0
53
+    }
54
+}