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>tags/n2.2-rc1
| @@ -11,6 +11,7 @@ version <next> | |||||
| - support for decoding through VDPAU in ffmpeg (the -hwaccel option) | - support for decoding through VDPAU in ffmpeg (the -hwaccel option) | ||||
| - complete Voxware MetaSound decoder | - complete Voxware MetaSound decoder | ||||
| - remove mp3_header_compress bitstream filters | - remove mp3_header_compress bitstream filters | ||||
| - Windows resource files for shared libraries | |||||
| version 2.1: | version 2.1: | ||||
| @@ -6,6 +6,7 @@ vpath %.cpp $(SRC_PATH) | |||||
| vpath %.h $(SRC_PATH) | vpath %.h $(SRC_PATH) | ||||
| vpath %.S $(SRC_PATH) | vpath %.S $(SRC_PATH) | ||||
| vpath %.asm $(SRC_PATH) | vpath %.asm $(SRC_PATH) | ||||
| vpath %.rc $(SRC_PATH) | |||||
| vpath %.v $(SRC_PATH) | vpath %.v $(SRC_PATH) | ||||
| vpath %.texi $(SRC_PATH) | vpath %.texi $(SRC_PATH) | ||||
| vpath %/fate_config.sh.template $(SRC_PATH) | vpath %/fate_config.sh.template $(SRC_PATH) | ||||
| @@ -72,7 +73,7 @@ SUBDIR_VARS := CLEANFILES EXAMPLES FFLIBS HOSTPROGS TESTPROGS TOOLS \ | |||||
| ALTIVEC-OBJS VIS-OBJS \ | ALTIVEC-OBJS VIS-OBJS \ | ||||
| MMX-OBJS YASM-OBJS \ | MMX-OBJS YASM-OBJS \ | ||||
| MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSPR1-OBJS MIPS32R2-OBJS \ | MIPSFPU-OBJS MIPSDSPR2-OBJS MIPSDSPR1-OBJS MIPS32R2-OBJS \ | ||||
| OBJS HOSTOBJS TESTOBJS | |||||
| OBJS SLIBOBJS HOSTOBJS TESTOBJS | |||||
| define RESET | define RESET | ||||
| $(1) := | $(1) := | ||||
| @@ -10,7 +10,7 @@ ifndef SUBDIR | |||||
| ifndef V | ifndef V | ||||
| Q = @ | Q = @ | ||||
| ECHO = printf "$(1)\t%s\n" $(2) | ECHO = printf "$(1)\t%s\n" $(2) | ||||
| BRIEF = CC CXX HOSTCC HOSTLD AS YASM AR LD STRIP CP | |||||
| BRIEF = CC CXX HOSTCC HOSTLD AS YASM AR LD STRIP CP WINDRES | |||||
| SILENT = DEPCC DEPHOSTCC DEPAS DEPYASM RANLIB RM | SILENT = DEPCC DEPHOSTCC DEPAS DEPYASM RANLIB RM | ||||
| MSG = $@ | MSG = $@ | ||||
| @@ -60,6 +60,9 @@ COMPILE_HOSTC = $(call COMPILE,HOSTCC) | |||||
| %_host.o: %.c | %_host.o: %.c | ||||
| $(COMPILE_HOSTC) | $(COMPILE_HOSTC) | ||||
| %.o: %.rc | |||||
| $(WINDRES) $(IFLAGS) -o $@ $< | |||||
| %.i: %.c | %.i: %.c | ||||
| $(CC) $(CCFLAGS) $(CC_E) $< | $(CC) $(CCFLAGS) $(CC_E) $< | ||||
| @@ -86,6 +89,7 @@ endif | |||||
| include $(SRC_PATH)/arch.mak | include $(SRC_PATH)/arch.mak | ||||
| OBJS += $(OBJS-yes) | OBJS += $(OBJS-yes) | ||||
| SLIBOBJS += $(SLIBOBJS-yes) | |||||
| FFLIBS := $(FFLIBS-yes) $(FFLIBS) | FFLIBS := $(FFLIBS-yes) $(FFLIBS) | ||||
| TESTPROGS += $(TESTPROGS-yes) | TESTPROGS += $(TESTPROGS-yes) | ||||
| @@ -94,6 +98,7 @@ FFEXTRALIBS := $(LDLIBS:%=$(LD_LIB)) $(EXTRALIBS) | |||||
| EXAMPLES := $(EXAMPLES:%=$(SUBDIR)%-example$(EXESUF)) | EXAMPLES := $(EXAMPLES:%=$(SUBDIR)%-example$(EXESUF)) | ||||
| OBJS := $(sort $(OBJS:%=$(SUBDIR)%)) | OBJS := $(sort $(OBJS:%=$(SUBDIR)%)) | ||||
| SLIBOBJS := $(sort $(SLIBOBJS:%=$(SUBDIR)%)) | |||||
| TESTOBJS := $(TESTOBJS:%=$(SUBDIR)%) $(TESTPROGS:%=$(SUBDIR)%-test.o) | TESTOBJS := $(TESTOBJS:%=$(SUBDIR)%) $(TESTPROGS:%=$(SUBDIR)%-test.o) | ||||
| TESTPROGS := $(TESTPROGS:%=$(SUBDIR)%-test$(EXESUF)) | TESTPROGS := $(TESTPROGS:%=$(SUBDIR)%-test$(EXESUF)) | ||||
| HOSTOBJS := $(HOSTPROGS:%=$(SUBDIR)%.o) | HOSTOBJS := $(HOSTPROGS:%=$(SUBDIR)%.o) | ||||
| @@ -125,10 +130,11 @@ $(HOSTPROGS): %$(HOSTEXESUF): %.o | |||||
| $(OBJS): | $(sort $(dir $(OBJS))) | $(OBJS): | $(sort $(dir $(OBJS))) | ||||
| $(HOBJS): | $(sort $(dir $(HOBJS))) | $(HOBJS): | $(sort $(dir $(HOBJS))) | ||||
| $(HOSTOBJS): | $(sort $(dir $(HOSTOBJS))) | $(HOSTOBJS): | $(sort $(dir $(HOSTOBJS))) | ||||
| $(SLIBOBJS): | $(sort $(dir $(SLIBOBJS))) | |||||
| $(TESTOBJS): | $(sort $(dir $(TESTOBJS))) | $(TESTOBJS): | $(sort $(dir $(TESTOBJS))) | ||||
| $(TOOLOBJS): | tools | $(TOOLOBJS): | tools | ||||
| OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(TESTOBJS)) | |||||
| OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(SLIBOBJS) $(TESTOBJS)) | |||||
| CLEANSUFFIXES = *.d *.o *~ *.h.c *.map *.ver *.ho *.gcno *.gcda | CLEANSUFFIXES = *.d *.o *~ *.h.c *.map *.ver *.ho *.gcno *.gcda | ||||
| DISTCLEANSUFFIXES = *.pc | DISTCLEANSUFFIXES = *.pc | ||||
| @@ -267,6 +267,7 @@ Advanced options (experts only): | |||||
| --nm=NM use nm tool NM [$nm_default] | --nm=NM use nm tool NM [$nm_default] | ||||
| --ar=AR use archive tool AR [$ar_default] | --ar=AR use archive tool AR [$ar_default] | ||||
| --as=AS use assembler AS [$as_default] | --as=AS use assembler AS [$as_default] | ||||
| --windres=WINDRES use windows resource compiler WINDRES [$windres_default] | |||||
| --yasmexe=EXE use yasm-compatible assembler EXE [$yasmexe_default] | --yasmexe=EXE use yasm-compatible assembler EXE [$yasmexe_default] | ||||
| --cc=CC use C compiler CC [$cc_default] | --cc=CC use C compiler CC [$cc_default] | ||||
| --cxx=CXX use C compiler CXX [$cxx_default] | --cxx=CXX use C compiler CXX [$cxx_default] | ||||
| @@ -1509,6 +1510,7 @@ HAVE_LIST=" | |||||
| gettimeofday | gettimeofday | ||||
| glob | glob | ||||
| gnu_as | gnu_as | ||||
| gnu_windres | |||||
| gsm_h | gsm_h | ||||
| ibm_asm | ibm_asm | ||||
| inet_aton | inet_aton | ||||
| @@ -2367,6 +2369,7 @@ pkg_config_default=pkg-config | |||||
| ranlib="ranlib" | ranlib="ranlib" | ||||
| strip_default="strip" | strip_default="strip" | ||||
| yasmexe_default="yasm" | yasmexe_default="yasm" | ||||
| windres_default="windres" | |||||
| nogas=":" | nogas=":" | ||||
| @@ -2637,6 +2640,7 @@ nm_default="${cross_prefix}${nm_default}" | |||||
| pkg_config_default="${cross_prefix}${pkg_config_default}" | pkg_config_default="${cross_prefix}${pkg_config_default}" | ||||
| ranlib="${cross_prefix}${ranlib}" | ranlib="${cross_prefix}${ranlib}" | ||||
| strip_default="${cross_prefix}${strip_default}" | strip_default="${cross_prefix}${strip_default}" | ||||
| windres_default="${cross_prefix}${windres_default}" | |||||
| sysinclude_default="${sysroot}/usr/include" | sysinclude_default="${sysroot}/usr/include" | ||||
| @@ -3155,7 +3159,7 @@ test -n "$cc_type" && enable $cc_type || | |||||
| : ${dep_cc_default:=$cc} | : ${dep_cc_default:=$cc} | ||||
| : ${ld_default:=$cc} | : ${ld_default:=$cc} | ||||
| : ${host_ld_default:=$host_cc} | : ${host_ld_default:=$host_cc} | ||||
| set_default ar as dep_cc ld host_ld | |||||
| set_default ar as dep_cc ld host_ld windres | |||||
| probe_cc as "$as" | probe_cc as "$as" | ||||
| asflags_filter=$_flags_filter | asflags_filter=$_flags_filter | ||||
| @@ -3637,6 +3641,7 @@ case $target_os in | |||||
| elif enabled arm; then | elif enabled arm; then | ||||
| LIBTARGET=arm-wince | LIBTARGET=arm-wince | ||||
| fi | fi | ||||
| enabled shared && ! enabled small && check_cmd $windres --version && enable gnu_windres | |||||
| check_ldflags -Wl,--nxcompat | check_ldflags -Wl,--nxcompat | ||||
| check_ldflags -Wl,--dynamicbase | check_ldflags -Wl,--dynamicbase | ||||
| shlibdir_default="$bindir_default" | shlibdir_default="$bindir_default" | ||||
| @@ -3699,6 +3704,7 @@ case $target_os in | |||||
| SHFLAGS='-shared -Wl,--out-implib,$(SUBDIR)lib$(FULLNAME).dll.a' | SHFLAGS='-shared -Wl,--out-implib,$(SUBDIR)lib$(FULLNAME).dll.a' | ||||
| objformat="win32" | objformat="win32" | ||||
| enable dos_paths | enable dos_paths | ||||
| enabled shared && ! enabled small && check_cmd $windres --version && enable gnu_windres | |||||
| ;; | ;; | ||||
| *-dos|freedos|opendos) | *-dos|freedos|opendos) | ||||
| network_extralibs="-lsocket" | network_extralibs="-lsocket" | ||||
| @@ -4882,6 +4888,7 @@ LD_O=$LD_O | |||||
| LD_LIB=$LD_LIB | LD_LIB=$LD_LIB | ||||
| LD_PATH=$LD_PATH | LD_PATH=$LD_PATH | ||||
| DLLTOOL=$dlltool | DLLTOOL=$dlltool | ||||
| WINDRES=$windres | |||||
| LDFLAGS=$LDFLAGS | LDFLAGS=$LDFLAGS | ||||
| SHFLAGS=$(echo $($ldflags_filter $SHFLAGS)) | SHFLAGS=$(echo $($ldflags_filter $SHFLAGS)) | ||||
| ASMSTRIPFLAGS=$ASMSTRIPFLAGS | ASMSTRIPFLAGS=$ASMSTRIPFLAGS | ||||
| @@ -4969,6 +4976,7 @@ cat > $TMPH <<EOF | |||||
| #define av_restrict $_restrict | #define av_restrict $_restrict | ||||
| #define EXTERN_PREFIX "${extern_prefix}" | #define EXTERN_PREFIX "${extern_prefix}" | ||||
| #define EXTERN_ASM ${extern_prefix} | #define EXTERN_ASM ${extern_prefix} | ||||
| #define BUILDSUF "$build_suffix" | |||||
| #define SLIBSUF "$SLIBSUF" | #define SLIBSUF "$SLIBSUF" | ||||
| #define HAVE_MMX2 HAVE_MMXEXT | #define HAVE_MMX2 HAVE_MMXEXT | ||||
| EOF | EOF | ||||
| @@ -814,6 +814,9 @@ OBJS-$(HAVE_OS2THREADS) += pthread.o pthread_slice.o pthread_fram | |||||
| OBJS-$(CONFIG_FRAME_THREAD_ENCODER) += frame_thread_encoder.o | OBJS-$(CONFIG_FRAME_THREAD_ENCODER) += frame_thread_encoder.o | ||||
| # Windows resource file | |||||
| SLIBOBJS-$(HAVE_GNU_WINDRES) += avcodecres.o | |||||
| SKIPHEADERS += %_tablegen.h \ | SKIPHEADERS += %_tablegen.h \ | ||||
| %_tables.h \ | %_tables.h \ | ||||
| aac_tablegen_decl.h \ | aac_tablegen_decl.h \ | ||||
| @@ -0,0 +1,55 @@ | |||||
| /* | |||||
| * Windows resource file for libavcodec | |||||
| * | |||||
| * Copyright (C) 2012 James Almer | |||||
| * Copyright (C) 2013 Tiancheng "Timothy" Gu | |||||
| * | |||||
| * This file is part of FFmpeg. | |||||
| * | |||||
| * FFmpeg is free software; you can redistribute it and/or | |||||
| * modify it under the terms of the GNU Lesser General Public | |||||
| * License as published by the Free Software Foundation; either | |||||
| * version 2.1 of the License, or (at your option) any later version. | |||||
| * | |||||
| * FFmpeg is distributed in the hope that it will be useful, | |||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||||
| * Lesser General Public License for more details. | |||||
| * | |||||
| * You should have received a copy of the GNU Lesser General Public | |||||
| * License along with FFmpeg; if not, write to the Free Software | |||||
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||||
| */ | |||||
| #include <windows.h> | |||||
| #include "libavcodec/version.h" | |||||
| #include "libavutil/ffversion.h" | |||||
| #include "config.h" | |||||
| 1 VERSIONINFO | |||||
| FILEVERSION LIBAVCODEC_VERSION_MAJOR, LIBAVCODEC_VERSION_MINOR, LIBAVCODEC_VERSION_MICRO, 0 | |||||
| PRODUCTVERSION LIBAVCODEC_VERSION_MAJOR, LIBAVCODEC_VERSION_MINOR, LIBAVCODEC_VERSION_MICRO, 0 | |||||
| FILEFLAGSMASK VS_FFI_FILEFLAGSMASK | |||||
| FILEOS VOS_NT_WINDOWS32 | |||||
| FILETYPE VFT_DLL | |||||
| { | |||||
| BLOCK "StringFileInfo" | |||||
| { | |||||
| BLOCK "040904B0" | |||||
| { | |||||
| VALUE "CompanyName", "FFmpeg Project" | |||||
| VALUE "FileDescription", "FFmpeg codec library" | |||||
| VALUE "FileVersion", AV_STRINGIFY(LIBAVCODEC_VERSION) | |||||
| VALUE "InternalName", "libavcodec" | |||||
| VALUE "LegalCopyright", "Copyright (C) 2000-" AV_STRINGIFY(CONFIG_THIS_YEAR) " FFmpeg Project" | |||||
| VALUE "OriginalFilename", "avcodec" BUILDSUF "-" AV_STRINGIFY(LIBAVCODEC_VERSION_MAJOR) SLIBSUF | |||||
| VALUE "ProductName", "FFmpeg" | |||||
| VALUE "ProductVersion", FFMPEG_VERSION | |||||
| } | |||||
| } | |||||
| BLOCK "VarFileInfo" | |||||
| { | |||||
| VALUE "Translation", 0x0409, 0x04B0 | |||||
| } | |||||
| } | |||||
| @@ -51,6 +51,9 @@ OBJS-$(CONFIG_XV_OUTDEV) += xv.o | |||||
| OBJS-$(CONFIG_LIBCDIO_INDEV) += libcdio.o | OBJS-$(CONFIG_LIBCDIO_INDEV) += libcdio.o | ||||
| OBJS-$(CONFIG_LIBDC1394_INDEV) += libdc1394.o | OBJS-$(CONFIG_LIBDC1394_INDEV) += libdc1394.o | ||||
| # Windows resource file | |||||
| SLIBOBJS-$(HAVE_GNU_WINDRES) += avdeviceres.o | |||||
| SKIPHEADERS-$(CONFIG_DSHOW_INDEV) += dshow_capture.h | SKIPHEADERS-$(CONFIG_DSHOW_INDEV) += dshow_capture.h | ||||
| SKIPHEADERS-$(CONFIG_LIBPULSE) += pulse_audio_common.h | SKIPHEADERS-$(CONFIG_LIBPULSE) += pulse_audio_common.h | ||||
| SKIPHEADERS-$(CONFIG_V4L2_INDEV) += v4l2-common.h | SKIPHEADERS-$(CONFIG_V4L2_INDEV) += v4l2-common.h | ||||
| @@ -0,0 +1,55 @@ | |||||
| /* | |||||
| * Windows resource file for libavdevice | |||||
| * | |||||
| * Copyright (C) 2012 James Almer | |||||
| * Copyright (C) 2013 Tiancheng "Timothy" Gu | |||||
| * | |||||
| * This file is part of FFmpeg. | |||||
| * | |||||
| * FFmpeg is free software; you can redistribute it and/or | |||||
| * modify it under the terms of the GNU Lesser General Public | |||||
| * License as published by the Free Software Foundation; either | |||||
| * version 2.1 of the License, or (at your option) any later version. | |||||
| * | |||||
| * FFmpeg is distributed in the hope that it will be useful, | |||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||||
| * Lesser General Public License for more details. | |||||
| * | |||||
| * You should have received a copy of the GNU Lesser General Public | |||||
| * License along with FFmpeg; if not, write to the Free Software | |||||
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||||
| */ | |||||
| #include <windows.h> | |||||
| #include "libavdevice/version.h" | |||||
| #include "libavutil/ffversion.h" | |||||
| #include "config.h" | |||||
| 1 VERSIONINFO | |||||
| FILEVERSION LIBAVDEVICE_VERSION_MAJOR, LIBAVDEVICE_VERSION_MINOR, LIBAVDEVICE_VERSION_MICRO, 0 | |||||
| PRODUCTVERSION LIBAVDEVICE_VERSION_MAJOR, LIBAVDEVICE_VERSION_MINOR, LIBAVDEVICE_VERSION_MICRO, 0 | |||||
| FILEFLAGSMASK VS_FFI_FILEFLAGSMASK | |||||
| FILEOS VOS_NT_WINDOWS32 | |||||
| FILETYPE VFT_DLL | |||||
| { | |||||
| BLOCK "StringFileInfo" | |||||
| { | |||||
| BLOCK "040904B0" | |||||
| { | |||||
| VALUE "CompanyName", "FFmpeg Project" | |||||
| VALUE "FileDescription", "FFmpeg device handling library" | |||||
| VALUE "FileVersion", AV_STRINGIFY(LIBAVDEVICE_VERSION) | |||||
| VALUE "InternalName", "libavdevice" | |||||
| VALUE "LegalCopyright", "Copyright (C) 2000-" AV_STRINGIFY(CONFIG_THIS_YEAR) " FFmpeg Project" | |||||
| VALUE "OriginalFilename", "avdevice" BUILDSUF "-" AV_STRINGIFY(LIBAVDEVICE_VERSION_MAJOR) SLIBSUF | |||||
| VALUE "ProductName", "FFmpeg" | |||||
| VALUE "ProductVersion", FFMPEG_VERSION | |||||
| } | |||||
| } | |||||
| BLOCK "VarFileInfo" | |||||
| { | |||||
| VALUE "Translation", 0x0409, 0x04B0 | |||||
| } | |||||
| } | |||||
| @@ -247,6 +247,9 @@ OBJS-$(CONFIG_SHOWWAVES_FILTER) += avf_showwaves.o | |||||
| OBJS-$(CONFIG_AMOVIE_FILTER) += src_movie.o | OBJS-$(CONFIG_AMOVIE_FILTER) += src_movie.o | ||||
| OBJS-$(CONFIG_MOVIE_FILTER) += src_movie.o | OBJS-$(CONFIG_MOVIE_FILTER) += src_movie.o | ||||
| # Windows resource file | |||||
| SLIBOBJS-$(HAVE_GNU_WINDRES) += avfilterres.o | |||||
| SKIPHEADERS-$(CONFIG_LIBVIDSTAB) += vidstabutils.h | SKIPHEADERS-$(CONFIG_LIBVIDSTAB) += vidstabutils.h | ||||
| SKIPHEADERS-$(CONFIG_OPENCL) += opencl_internal.h deshake_opencl_kernel.h unsharp_opencl_kernel.h | SKIPHEADERS-$(CONFIG_OPENCL) += opencl_internal.h deshake_opencl_kernel.h unsharp_opencl_kernel.h | ||||
| @@ -0,0 +1,55 @@ | |||||
| /* | |||||
| * Windows resource file for libavfilter | |||||
| * | |||||
| * Copyright (C) 2012 James Almer | |||||
| * Copyright (C) 2013 Tiancheng "Timothy" Gu | |||||
| * | |||||
| * This file is part of FFmpeg. | |||||
| * | |||||
| * FFmpeg is free software; you can redistribute it and/or | |||||
| * modify it under the terms of the GNU Lesser General Public | |||||
| * License as published by the Free Software Foundation; either | |||||
| * version 2.1 of the License, or (at your option) any later version. | |||||
| * | |||||
| * FFmpeg is distributed in the hope that it will be useful, | |||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||||
| * Lesser General Public License for more details. | |||||
| * | |||||
| * You should have received a copy of the GNU Lesser General Public | |||||
| * License along with FFmpeg; if not, write to the Free Software | |||||
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||||
| */ | |||||
| #include <windows.h> | |||||
| #include "libavfilter/version.h" | |||||
| #include "libavutil/ffversion.h" | |||||
| #include "config.h" | |||||
| 1 VERSIONINFO | |||||
| FILEVERSION LIBAVFILTER_VERSION_MAJOR, LIBAVFILTER_VERSION_MINOR, LIBAVFILTER_VERSION_MICRO, 0 | |||||
| PRODUCTVERSION LIBAVFILTER_VERSION_MAJOR, LIBAVFILTER_VERSION_MINOR, LIBAVFILTER_VERSION_MICRO, 0 | |||||
| FILEFLAGSMASK VS_FFI_FILEFLAGSMASK | |||||
| FILEOS VOS_NT_WINDOWS32 | |||||
| FILETYPE VFT_DLL | |||||
| { | |||||
| BLOCK "StringFileInfo" | |||||
| { | |||||
| BLOCK "040904B0" | |||||
| { | |||||
| VALUE "CompanyName", "FFmpeg Project" | |||||
| VALUE "FileDescription", "FFmpeg audio/video filtering library" | |||||
| VALUE "FileVersion", AV_STRINGIFY(LIBAVFILTER_VERSION) | |||||
| VALUE "InternalName", "libavfilter" | |||||
| VALUE "LegalCopyright", "Copyright (C) 2000-" AV_STRINGIFY(CONFIG_THIS_YEAR) " FFmpeg Project" | |||||
| VALUE "OriginalFilename", "avfilter" BUILDSUF "-" AV_STRINGIFY(LIBAVFILTER_VERSION_MAJOR) SLIBSUF | |||||
| VALUE "ProductName", "FFmpeg" | |||||
| VALUE "ProductVersion", FFMPEG_VERSION | |||||
| } | |||||
| } | |||||
| BLOCK "VarFileInfo" | |||||
| { | |||||
| VALUE "Translation", 0x0409, 0x04B0 | |||||
| } | |||||
| } | |||||
| @@ -467,6 +467,9 @@ OBJS-$(CONFIG_TLS_PROTOCOL) += tls.o | |||||
| OBJS-$(CONFIG_UDP_PROTOCOL) += udp.o | OBJS-$(CONFIG_UDP_PROTOCOL) += udp.o | ||||
| OBJS-$(CONFIG_UNIX_PROTOCOL) += unix.o | OBJS-$(CONFIG_UNIX_PROTOCOL) += unix.o | ||||
| # Windows resource file | |||||
| SLIBOBJS-$(HAVE_GNU_WINDRES) += avformatres.o | |||||
| SKIPHEADERS-$(CONFIG_FFRTMPCRYPT_PROTOCOL) += rtmpdh.h | SKIPHEADERS-$(CONFIG_FFRTMPCRYPT_PROTOCOL) += rtmpdh.h | ||||
| SKIPHEADERS-$(CONFIG_NETWORK) += network.h rtsp.h | SKIPHEADERS-$(CONFIG_NETWORK) += network.h rtsp.h | ||||
| TESTPROGS = seek \ | TESTPROGS = seek \ | ||||
| @@ -0,0 +1,55 @@ | |||||
| /* | |||||
| * Windows resource file for libavformat | |||||
| * | |||||
| * Copyright (C) 2012 James Almer | |||||
| * Copyright (C) 2013 Tiancheng "Timothy" Gu | |||||
| * | |||||
| * This file is part of FFmpeg. | |||||
| * | |||||
| * FFmpeg is free software; you can redistribute it and/or | |||||
| * modify it under the terms of the GNU Lesser General Public | |||||
| * License as published by the Free Software Foundation; either | |||||
| * version 2.1 of the License, or (at your option) any later version. | |||||
| * | |||||
| * FFmpeg is distributed in the hope that it will be useful, | |||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||||
| * Lesser General Public License for more details. | |||||
| * | |||||
| * You should have received a copy of the GNU Lesser General Public | |||||
| * License along with FFmpeg; if not, write to the Free Software | |||||
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||||
| */ | |||||
| #include <windows.h> | |||||
| #include "libavformat/version.h" | |||||
| #include "libavutil/ffversion.h" | |||||
| #include "config.h" | |||||
| 1 VERSIONINFO | |||||
| FILEVERSION LIBAVFORMAT_VERSION_MAJOR, LIBAVFORMAT_VERSION_MINOR, LIBAVFORMAT_VERSION_MICRO, 0 | |||||
| PRODUCTVERSION LIBAVFORMAT_VERSION_MAJOR, LIBAVFORMAT_VERSION_MINOR, LIBAVFORMAT_VERSION_MICRO, 0 | |||||
| FILEFLAGSMASK VS_FFI_FILEFLAGSMASK | |||||
| FILEOS VOS_NT_WINDOWS32 | |||||
| FILETYPE VFT_DLL | |||||
| { | |||||
| BLOCK "StringFileInfo" | |||||
| { | |||||
| BLOCK "040904B0" | |||||
| { | |||||
| VALUE "CompanyName", "FFmpeg Project" | |||||
| VALUE "FileDescription", "FFmpeg container format library" | |||||
| VALUE "FileVersion", AV_STRINGIFY(LIBAVFORMAT_VERSION) | |||||
| VALUE "InternalName", "libavformat" | |||||
| VALUE "LegalCopyright", "Copyright (C) 2000-" AV_STRINGIFY(CONFIG_THIS_YEAR) " FFmpeg Project" | |||||
| VALUE "OriginalFilename", "avformat" BUILDSUF "-" AV_STRINGIFY(LIBAVFORMAT_VERSION_MAJOR) SLIBSUF | |||||
| VALUE "ProductName", "FFmpeg" | |||||
| VALUE "ProductVersion", FFMPEG_VERSION | |||||
| } | |||||
| } | |||||
| BLOCK "VarFileInfo" | |||||
| { | |||||
| VALUE "Translation", 0x0409, 0x04B0 | |||||
| } | |||||
| } | |||||
| @@ -13,4 +13,7 @@ OBJS = audio_convert.o \ | |||||
| resample.o \ | resample.o \ | ||||
| utils.o \ | utils.o \ | ||||
| # Windows resource file | |||||
| SLIBOBJS-$(HAVE_GNU_WINDRES) += avresampleres.o | |||||
| TESTPROGS = avresample | TESTPROGS = avresample | ||||
| @@ -0,0 +1,55 @@ | |||||
| /* | |||||
| * Windows resource file for libavresample | |||||
| * | |||||
| * Copyright (C) 2012 James Almer | |||||
| * Copyright (C) 2013 Tiancheng "Timothy" Gu | |||||
| * | |||||
| * This file is part of FFmpeg. | |||||
| * | |||||
| * FFmpeg is free software; you can redistribute it and/or | |||||
| * modify it under the terms of the GNU Lesser General Public | |||||
| * License as published by the Free Software Foundation; either | |||||
| * version 2.1 of the License, or (at your option) any later version. | |||||
| * | |||||
| * FFmpeg is distributed in the hope that it will be useful, | |||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||||
| * Lesser General Public License for more details. | |||||
| * | |||||
| * You should have received a copy of the GNU Lesser General Public | |||||
| * License along with FFmpeg; if not, write to the Free Software | |||||
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||||
| */ | |||||
| #include <windows.h> | |||||
| #include "libavresample/version.h" | |||||
| #include "libavutil/ffversion.h" | |||||
| #include "config.h" | |||||
| 1 VERSIONINFO | |||||
| FILEVERSION LIBAVRESAMPLE_VERSION_MAJOR, LIBAVRESAMPLE_VERSION_MINOR, LIBAVRESAMPLE_VERSION_MICRO, 0 | |||||
| PRODUCTVERSION LIBAVRESAMPLE_VERSION_MAJOR, LIBAVRESAMPLE_VERSION_MINOR, LIBAVRESAMPLE_VERSION_MICRO, 0 | |||||
| FILEFLAGSMASK VS_FFI_FILEFLAGSMASK | |||||
| FILEOS VOS_NT_WINDOWS32 | |||||
| FILETYPE VFT_DLL | |||||
| { | |||||
| BLOCK "StringFileInfo" | |||||
| { | |||||
| BLOCK "040904B0" | |||||
| { | |||||
| VALUE "CompanyName", "FFmpeg Project" | |||||
| VALUE "FileDescription", "Libav audio resampling library" | |||||
| VALUE "FileVersion", AV_STRINGIFY(LIBAVRESAMPLE_VERSION) | |||||
| VALUE "InternalName", "libavresample" | |||||
| VALUE "LegalCopyright", "Copyright (C) 2000-" AV_STRINGIFY(CONFIG_THIS_YEAR) " FFmpeg Project" | |||||
| VALUE "OriginalFilename", "avresample" BUILDSUF "-" AV_STRINGIFY(LIBAVRESAMPLE_VERSION_MAJOR) SLIBSUF | |||||
| VALUE "ProductName", "FFmpeg" | |||||
| VALUE "ProductVersion", FFMPEG_VERSION | |||||
| } | |||||
| } | |||||
| BLOCK "VarFileInfo" | |||||
| { | |||||
| VALUE "Translation", 0x0409, 0x04B0 | |||||
| } | |||||
| } | |||||
| @@ -122,6 +122,9 @@ OBJS-$(CONFIG_OPENCL) += opencl.o opencl_internal.o | |||||
| OBJS += $(COMPAT_OBJS:%=../compat/%) | OBJS += $(COMPAT_OBJS:%=../compat/%) | ||||
| # Windows resource file | |||||
| SLIBOBJS-$(HAVE_GNU_WINDRES) += avutilres.o | |||||
| SKIPHEADERS = old_pix_fmts.h | SKIPHEADERS = old_pix_fmts.h | ||||
| SKIPHEADERS-$(HAVE_ATOMICS_GCC) += atomic_gcc.h | SKIPHEADERS-$(HAVE_ATOMICS_GCC) += atomic_gcc.h | ||||
| @@ -0,0 +1,55 @@ | |||||
| /* | |||||
| * Windows resource file for libavutil | |||||
| * | |||||
| * Copyright (C) 2012 James Almer | |||||
| * Copyright (C) 2013 Tiancheng "Timothy" Gu | |||||
| * | |||||
| * This file is part of FFmpeg. | |||||
| * | |||||
| * FFmpeg is free software; you can redistribute it and/or | |||||
| * modify it under the terms of the GNU Lesser General Public | |||||
| * License as published by the Free Software Foundation; either | |||||
| * version 2.1 of the License, or (at your option) any later version. | |||||
| * | |||||
| * FFmpeg is distributed in the hope that it will be useful, | |||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||||
| * Lesser General Public License for more details. | |||||
| * | |||||
| * You should have received a copy of the GNU Lesser General Public | |||||
| * License along with FFmpeg; if not, write to the Free Software | |||||
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||||
| */ | |||||
| #include <windows.h> | |||||
| #include "libavutil/version.h" | |||||
| #include "libavutil/ffversion.h" | |||||
| #include "config.h" | |||||
| 1 VERSIONINFO | |||||
| FILEVERSION LIBAVUTIL_VERSION_MAJOR, LIBAVUTIL_VERSION_MINOR, LIBAVUTIL_VERSION_MICRO, 0 | |||||
| PRODUCTVERSION LIBAVUTIL_VERSION_MAJOR, LIBAVUTIL_VERSION_MINOR, LIBAVUTIL_VERSION_MICRO, 0 | |||||
| FILEFLAGSMASK VS_FFI_FILEFLAGSMASK | |||||
| FILEOS VOS_NT_WINDOWS32 | |||||
| FILETYPE VFT_DLL | |||||
| { | |||||
| BLOCK "StringFileInfo" | |||||
| { | |||||
| BLOCK "040904B0" | |||||
| { | |||||
| VALUE "CompanyName", "FFmpeg Project" | |||||
| VALUE "FileDescription", "FFmpeg utility library" | |||||
| VALUE "FileVersion", AV_STRINGIFY(LIBAVUTIL_VERSION) | |||||
| VALUE "InternalName", "libavutil" | |||||
| VALUE "LegalCopyright", "Copyright (C) 2000-" AV_STRINGIFY(CONFIG_THIS_YEAR) " FFmpeg Project" | |||||
| VALUE "OriginalFilename", "avutil" BUILDSUF "-" AV_STRINGIFY(LIBAVUTIL_VERSION_MAJOR) SLIBSUF | |||||
| VALUE "ProductName", "FFmpeg" | |||||
| VALUE "ProductVersion", FFMPEG_VERSION | |||||
| } | |||||
| } | |||||
| BLOCK "VarFileInfo" | |||||
| { | |||||
| VALUE "Translation", 0x0409, 0x04B0 | |||||
| } | |||||
| } | |||||
| @@ -7,3 +7,6 @@ HEADERS = postprocess.h \ | |||||
| version.h \ | version.h \ | ||||
| OBJS = postprocess.o | OBJS = postprocess.o | ||||
| # Windows resource file | |||||
| SLIBOBJS-$(HAVE_GNU_WINDRES) += postprocres.o | |||||
| @@ -0,0 +1,55 @@ | |||||
| /* | |||||
| * Windows resource file for libpostproc | |||||
| * | |||||
| * Copyright (C) 2012 James Almer | |||||
| * Copyright (C) 2013 Tiancheng "Timothy" Gu | |||||
| * | |||||
| * This file is part of FFmpeg. | |||||
| * | |||||
| * FFmpeg is free software; you can redistribute it and/or | |||||
| * modify it under the terms of the GNU Lesser General Public | |||||
| * License as published by the Free Software Foundation; either | |||||
| * version 2.1 of the License, or (at your option) any later version. | |||||
| * | |||||
| * FFmpeg is distributed in the hope that it will be useful, | |||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||||
| * Lesser General Public License for more details. | |||||
| * | |||||
| * You should have received a copy of the GNU Lesser General Public | |||||
| * License along with FFmpeg; if not, write to the Free Software | |||||
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||||
| */ | |||||
| #include <windows.h> | |||||
| #include "libpostproc/version.h" | |||||
| #include "libavutil/ffversion.h" | |||||
| #include "config.h" | |||||
| 1 VERSIONINFO | |||||
| FILEVERSION LIBPOSTPROC_VERSION_MAJOR, LIBPOSTPROC_VERSION_MINOR, LIBPOSTPROC_VERSION_MICRO, 0 | |||||
| PRODUCTVERSION LIBPOSTPROC_VERSION_MAJOR, LIBPOSTPROC_VERSION_MINOR, LIBPOSTPROC_VERSION_MICRO, 0 | |||||
| FILEFLAGSMASK VS_FFI_FILEFLAGSMASK | |||||
| FILEOS VOS_NT_WINDOWS32 | |||||
| FILETYPE VFT_DLL | |||||
| { | |||||
| BLOCK "StringFileInfo" | |||||
| { | |||||
| BLOCK "040904B0" | |||||
| { | |||||
| VALUE "CompanyName", "FFmpeg Project" | |||||
| VALUE "FileDescription", "FFmpeg postprocessing library" | |||||
| VALUE "FileVersion", AV_STRINGIFY(LIBPOSTPROC_VERSION) | |||||
| VALUE "InternalName", "libpostproc" | |||||
| VALUE "LegalCopyright", "Copyright (C) 2000-" AV_STRINGIFY(CONFIG_THIS_YEAR) " FFmpeg Project" | |||||
| VALUE "OriginalFilename", "postproc" BUILDSUF "-" AV_STRINGIFY(LIBPOSTPROC_VERSION_MAJOR) SLIBSUF | |||||
| VALUE "ProductName", "FFmpeg" | |||||
| VALUE "ProductVersion", FFMPEG_VERSION | |||||
| } | |||||
| } | |||||
| BLOCK "VarFileInfo" | |||||
| { | |||||
| VALUE "Translation", 0x0409, 0x04B0 | |||||
| } | |||||
| } | |||||
| @@ -51,7 +51,7 @@ $(EXAMPLES) $(TESTPROGS) $(TOOLS): %$(EXESUF): %.o $(EXEOBJS) | |||||
| $(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR) | $(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR) | ||||
| $(Q)cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME) | $(Q)cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME) | ||||
| $(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SUBDIR)lib$(NAME).ver | |||||
| $(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SLIBOBJS) $(SUBDIR)lib$(NAME).ver | |||||
| $(SLIB_CREATE_DEF_CMD) | $(SLIB_CREATE_DEF_CMD) | ||||
| $$(LD) $(SHFLAGS) $(LDFLAGS) $$(LD_O) $$(filter %.o,$$^) $(FFEXTRALIBS) | $$(LD) $(SHFLAGS) $(LDFLAGS) $$(LD_O) $$(filter %.o,$$^) $(FFEXTRALIBS) | ||||
| $(SLIB_EXTRA_CMD) | $(SLIB_EXTRA_CMD) | ||||
| @@ -15,4 +15,7 @@ OBJS = audioconvert.o \ | |||||
| OBJS-$(CONFIG_LIBSOXR) += soxr_resample.o | OBJS-$(CONFIG_LIBSOXR) += soxr_resample.o | ||||
| OBJS-$(CONFIG_SHARED) += log2_tab.o | OBJS-$(CONFIG_SHARED) += log2_tab.o | ||||
| # Windows resource file | |||||
| SLIBOBJS-$(HAVE_GNU_WINDRES) += swresampleres.o | |||||
| TESTPROGS = swresample | TESTPROGS = swresample | ||||
| @@ -0,0 +1,55 @@ | |||||
| /* | |||||
| * Windows resource file for libswresample | |||||
| * | |||||
| * Copyright (C) 2012 James Almer | |||||
| * Copyright (C) 2013 Tiancheng "Timothy" Gu | |||||
| * | |||||
| * This file is part of FFmpeg. | |||||
| * | |||||
| * FFmpeg is free software; you can redistribute it and/or | |||||
| * modify it under the terms of the GNU Lesser General Public | |||||
| * License as published by the Free Software Foundation; either | |||||
| * version 2.1 of the License, or (at your option) any later version. | |||||
| * | |||||
| * FFmpeg is distributed in the hope that it will be useful, | |||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||||
| * Lesser General Public License for more details. | |||||
| * | |||||
| * You should have received a copy of the GNU Lesser General Public | |||||
| * License along with FFmpeg; if not, write to the Free Software | |||||
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||||
| */ | |||||
| #include <windows.h> | |||||
| #include "libswresample/version.h" | |||||
| #include "libavutil/ffversion.h" | |||||
| #include "config.h" | |||||
| 1 VERSIONINFO | |||||
| FILEVERSION LIBSWRESAMPLE_VERSION_MAJOR, LIBSWRESAMPLE_VERSION_MINOR, LIBSWRESAMPLE_VERSION_MICRO, 0 | |||||
| PRODUCTVERSION LIBSWRESAMPLE_VERSION_MAJOR, LIBSWRESAMPLE_VERSION_MINOR, LIBSWRESAMPLE_VERSION_MICRO, 0 | |||||
| FILEFLAGSMASK VS_FFI_FILEFLAGSMASK | |||||
| FILEOS VOS_NT_WINDOWS32 | |||||
| FILETYPE VFT_DLL | |||||
| { | |||||
| BLOCK "StringFileInfo" | |||||
| { | |||||
| BLOCK "040904B0" | |||||
| { | |||||
| VALUE "CompanyName", "FFmpeg Project" | |||||
| VALUE "FileDescription", "FFmpeg audio resampling library" | |||||
| VALUE "FileVersion", AV_STRINGIFY(LIBSWRESAMPLE_VERSION) | |||||
| VALUE "InternalName", "libswresample" | |||||
| VALUE "LegalCopyright", "Copyright (C) 2000-" AV_STRINGIFY(CONFIG_THIS_YEAR) " FFmpeg Project" | |||||
| VALUE "OriginalFilename", "swresample" BUILDSUF "-" AV_STRINGIFY(LIBSWRESAMPLE_VERSION_MAJOR) SLIBSUF | |||||
| VALUE "ProductName", "FFmpeg" | |||||
| VALUE "ProductVersion", FFMPEG_VERSION | |||||
| } | |||||
| } | |||||
| BLOCK "VarFileInfo" | |||||
| { | |||||
| VALUE "Translation", 0x0409, 0x04B0 | |||||
| } | |||||
| } | |||||
| @@ -15,5 +15,8 @@ OBJS = input.o \ | |||||
| utils.o \ | utils.o \ | ||||
| yuv2rgb.o \ | yuv2rgb.o \ | ||||
| # Windows resource file | |||||
| SLIBOBJS-$(HAVE_GNU_WINDRES) += swscaleres.o | |||||
| TESTPROGS = colorspace \ | TESTPROGS = colorspace \ | ||||
| swscale \ | swscale \ | ||||
| @@ -0,0 +1,55 @@ | |||||
| /* | |||||
| * Windows resource file for libswscale | |||||
| * | |||||
| * Copyright (C) 2012 James Almer | |||||
| * Copyright (C) 2013 Tiancheng "Timothy" Gu | |||||
| * | |||||
| * This file is part of FFmpeg. | |||||
| * | |||||
| * FFmpeg is free software; you can redistribute it and/or | |||||
| * modify it under the terms of the GNU Lesser General Public | |||||
| * License as published by the Free Software Foundation; either | |||||
| * version 2.1 of the License, or (at your option) any later version. | |||||
| * | |||||
| * FFmpeg is distributed in the hope that it will be useful, | |||||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||||
| * Lesser General Public License for more details. | |||||
| * | |||||
| * You should have received a copy of the GNU Lesser General Public | |||||
| * License along with FFmpeg; if not, write to the Free Software | |||||
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||||
| */ | |||||
| #include <windows.h> | |||||
| #include "libswscale/version.h" | |||||
| #include "libavutil/ffversion.h" | |||||
| #include "config.h" | |||||
| 1 VERSIONINFO | |||||
| FILEVERSION LIBSWSCALE_VERSION_MAJOR, LIBSWSCALE_VERSION_MINOR, LIBSWSCALE_VERSION_MICRO, 0 | |||||
| PRODUCTVERSION LIBSWSCALE_VERSION_MAJOR, LIBSWSCALE_VERSION_MINOR, LIBSWSCALE_VERSION_MICRO, 0 | |||||
| FILEFLAGSMASK VS_FFI_FILEFLAGSMASK | |||||
| FILEOS VOS_NT_WINDOWS32 | |||||
| FILETYPE VFT_DLL | |||||
| { | |||||
| BLOCK "StringFileInfo" | |||||
| { | |||||
| BLOCK "040904B0" | |||||
| { | |||||
| VALUE "CompanyName", "FFmpeg Project" | |||||
| VALUE "FileDescription", "FFmpeg image rescaling library" | |||||
| VALUE "FileVersion", AV_STRINGIFY(LIBSWSCALE_VERSION) | |||||
| VALUE "InternalName", "libswscale" | |||||
| VALUE "LegalCopyright", "Copyright (C) 2000-" AV_STRINGIFY(CONFIG_THIS_YEAR) " FFmpeg Project" | |||||
| VALUE "OriginalFilename", "swscale" BUILDSUF "-" AV_STRINGIFY(LIBSWSCALE_VERSION_MAJOR) SLIBSUF | |||||
| VALUE "ProductName", "FFmpeg" | |||||
| VALUE "ProductVersion", FFMPEG_VERSION | |||||
| } | |||||
| } | |||||
| BLOCK "VarFileInfo" | |||||
| { | |||||
| VALUE "Translation", 0x0409, 0x04B0 | |||||
| } | |||||
| } | |||||