[SCM] faad2/master: New upstream version 2.8.8
fabian at users.alioth.debian.org
fabian at users.alioth.debian.org
Mon Dec 18 20:33:03 UTC 2017
The following commit has been merged in the master branch:
commit 181e344659591fda9b83435d8a440b75b143dbb0
Author: Fabian Greffrath <fabian at debian.org>
Date: Mon Dec 18 21:27:45 2017 +0100
New upstream version 2.8.8
diff --git a/ChangeLog b/ChangeLog
index be909a3..ba0cd5c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+2.8.7:
+ - MSVC build fixes
+ - fixed a coulple bugs
2.8.6:
2.8.5:
- another package fix
diff --git a/Makefile.am b/Makefile.am
index e6407a4..058a38e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,6 +1,6 @@
SUBDIRS = libfaad common frontend plugins
-EXTRA_DIST = faad2.spec docs/libfaad.3
+EXTRA_DIST = faad2.spec docs/libfaad.3 project utils
rpm: Makefile
make dist
diff --git a/Makefile.in b/Makefile.in
index c1b4492..84a3ed3 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -331,7 +331,7 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
SUBDIRS = libfaad common frontend plugins
-EXTRA_DIST = faad2.spec docs/libfaad.3
+EXTRA_DIST = faad2.spec docs/libfaad.3 project utils
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
diff --git a/configure b/configure
index 5ee6770..050c633 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for faad2 2.8.6.
+# Generated by GNU Autoconf 2.69 for faad2 2.8.8.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -587,8 +587,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='faad2'
PACKAGE_TARNAME='faad2'
-PACKAGE_VERSION='2.8.6'
-PACKAGE_STRING='faad2 2.8.6'
+PACKAGE_VERSION='2.8.8'
+PACKAGE_STRING='faad2 2.8.8'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1344,7 +1344,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures faad2 2.8.6 to adapt to many kinds of systems.
+\`configure' configures faad2 2.8.8 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1415,7 +1415,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of faad2 2.8.6:";;
+ short | recursive ) echo "Configuration of faad2 2.8.8:";;
esac
cat <<\_ACEOF
@@ -1531,7 +1531,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-faad2 configure 2.8.6
+faad2 configure 2.8.8
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2071,7 +2071,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by faad2 $as_me 2.8.6, which was
+It was created by faad2 $as_me 2.8.8, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2934,7 +2934,7 @@ fi
# Define the identity of the package.
PACKAGE='faad2'
- VERSION='2.8.6'
+ VERSION='2.8.8'
cat >>confdefs.h <<_ACEOF
@@ -18296,7 +18296,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by faad2 $as_me 2.8.6, which was
+This file was extended by faad2 $as_me 2.8.8, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -18362,7 +18362,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-faad2 config.status 2.8.6
+faad2 config.status 2.8.8
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index cd2933a..a03cafe 100644
--- a/configure.ac
+++ b/configure.ac
@@ -8,7 +8,7 @@ dnl - xmms input mp4/aac plugin
dnl - mpeg4ip plugin (requires mpeg4ip's libmp4v2 to be installed)
AC_PREREQ(2.50)
-AC_INIT(faad2, 2.8.6)
+AC_INIT(faad2, 2.8.8)
AC_CONFIG_AUX_DIR(.)
AM_INIT_AUTOMAKE([subdir-objects])
diff --git a/faad2.spec b/faad2.spec
index ae2d45a..904f33c 100644
--- a/faad2.spec
+++ b/faad2.spec
@@ -24,7 +24,7 @@
Summary: C library and frontend for decoding MPEG2/4 AAC
Name: faad2
-Version: 2.8.6
+Version: 2.8.8
Release: 1
License: GPL
Group: Applications/Multimedia
diff --git a/frontend/Makefile.am b/frontend/Makefile.am
index 5f096d8..c11c25d 100644
--- a/frontend/Makefile.am
+++ b/frontend/Makefile.am
@@ -5,6 +5,6 @@ AM_CPPFLAGS = -I$(top_srcdir)/include
faad_LDADD = $(top_builddir)/libfaad/libfaad.la
-faad_SOURCES = mp4read.c audio.c main.c audio.h mp4read.h
+faad_SOURCES = mp4read.c audio.c main.c audio.h mp4read.h unicode_support.c unicode_support.h
EXTRA_faad_SOURCES = getopt.c
diff --git a/frontend/Makefile.in b/frontend/Makefile.in
index 08b2650..eb3d0aa 100644
--- a/frontend/Makefile.in
+++ b/frontend/Makefile.in
@@ -101,7 +101,8 @@ CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
PROGRAMS = $(bin_PROGRAMS)
-am_faad_OBJECTS = mp4read.$(OBJEXT) audio.$(OBJEXT) main.$(OBJEXT)
+am_faad_OBJECTS = mp4read.$(OBJEXT) audio.$(OBJEXT) main.$(OBJEXT) \
+ unicode_support.$(OBJEXT)
faad_OBJECTS = $(am_faad_OBJECTS)
faad_DEPENDENCIES = $(top_builddir)/libfaad/libfaad.la
AM_V_lt = $(am__v_lt_ at AM_V@)
@@ -331,7 +332,7 @@ top_srcdir = @top_srcdir@
dist_man1_MANS = faad.man
AM_CPPFLAGS = -I$(top_srcdir)/include
faad_LDADD = $(top_builddir)/libfaad/libfaad.la
-faad_SOURCES = mp4read.c audio.c main.c audio.h mp4read.h
+faad_SOURCES = mp4read.c audio.c main.c audio.h mp4read.h unicode_support.c unicode_support.h
EXTRA_faad_SOURCES = getopt.c
all: all-am
@@ -430,6 +431,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/getopt.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/main.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/mp4read.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/unicode_support.Po at am__quote@
.c.o:
@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
diff --git a/frontend/audio.c b/frontend/audio.c
index 9ab7a2a..c8df015 100644
--- a/frontend/audio.c
+++ b/frontend/audio.c
@@ -38,6 +38,7 @@
#include <neaacdec.h>
#include <stdint.h>
+#include "unicode_support.h"
#include "audio.h"
@@ -74,13 +75,13 @@ audio_file *open_audio_file(char *infile, int samplerate, int channels,
if(infile[0] == '-')
{
#ifdef _WIN32
- setmode(fileno(stdout), O_BINARY);
+ _setmode(_fileno(stdout), O_BINARY);
#endif
aufile->sndfile = stdout;
aufile->toStdio = 1;
} else {
aufile->toStdio = 0;
- aufile->sndfile = fopen(infile, "wb");
+ aufile->sndfile = faad_fopen(infile, "wb");
}
if (aufile->sndfile == NULL)
diff --git a/frontend/main.c b/frontend/main.c
index deaa039..3b0850d 100644
--- a/frontend/main.c
+++ b/frontend/main.c
@@ -35,6 +35,7 @@
#ifdef _WIN32
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
+#include <io.h>
#ifndef __MINGW32__
#define off_t __int64
#endif
@@ -51,6 +52,7 @@
#include <neaacdec.h>
+#include "unicode_support.h"
#include "audio.h"
#include "mp4read.h"
@@ -68,6 +70,7 @@
#define MAX_CHANNELS 6 /* make this higher to support files with
more channels */
+#define MAX_PERCENTS 384
static int quiet = 0;
@@ -78,11 +81,16 @@ static void faad_fprintf(FILE *stream, const char *fmt, ...)
if (!quiet)
{
va_start(ap, fmt);
-
vfprintf(stream, fmt, ap);
-
va_end(ap);
}
+
+#ifdef _WIN32
+ if (!_isatty(_fileno(stream)))
+ {
+ fflush(stream); /*ensure real-time progress output on Win32*/
+ }
+#endif
}
/* FAAD file buffering routines */
@@ -462,7 +470,7 @@ static int decodeAACfile(char *aacfile, char *sndfile, char *adts_fn, int to_std
NeAACDecFrameInfo frameInfo;
NeAACDecConfigurationPtr config;
- char percents[200];
+ char percents[MAX_PERCENTS];
int percent, old_percent = -1;
int bread, fileread;
int header_type = 0;
@@ -479,7 +487,7 @@ static int decodeAACfile(char *aacfile, char *sndfile, char *adts_fn, int to_std
if (adts_out)
{
- adtsFile = fopen(adts_fn, "wb");
+ adtsFile = faad_fopen(adts_fn, "wb");
if (adtsFile == NULL)
{
faad_fprintf(stderr, "Error opening file: %s\n", adts_fn);
@@ -491,12 +499,12 @@ static int decodeAACfile(char *aacfile, char *sndfile, char *adts_fn, int to_std
{
b.infile = stdin;
#ifdef _WIN32
- setmode(fileno(stdin), O_BINARY);
+ _setmode(_fileno(stdin), O_BINARY);
#endif
} else
{
- b.infile = fopen(aacfile, "rb");
+ b.infile = faad_fopen(aacfile, "rb");
if (b.infile == NULL)
{
/* unable to open file */
@@ -727,7 +735,7 @@ static int decodeAACfile(char *aacfile, char *sndfile, char *adts_fn, int to_std
if (percent > old_percent)
{
old_percent = percent;
- sprintf(percents, "%d%% decoding %s.", percent, aacfile);
+ snprintf(percents, MAX_PERCENTS, "%d%% decoding %s.", percent, aacfile);
faad_fprintf(stderr, "%s\r", percents);
#ifdef _WIN32
SetConsoleTitle(percents);
@@ -795,7 +803,7 @@ static int decodeMP4file(char *mp4file, char *sndfile, char *adts_fn, int to_std
NeAACDecFrameInfo frameInfo;
mp4AudioSpecificConfig mp4ASC;
- char percents[200];
+ char percents[MAX_PERCENTS];
int percent, old_percent = -1;
int first_time = 1;
@@ -833,7 +841,7 @@ static int decodeMP4file(char *mp4file, char *sndfile, char *adts_fn, int to_std
if (adts_out)
{
- adtsFile = fopen(adts_fn, "wb");
+ adtsFile = faad_fopen(adts_fn, "wb");
if (adtsFile == NULL)
{
faad_fprintf(stderr, "Error opening file: %s\n", adts_fn);
@@ -953,7 +961,7 @@ static int decodeMP4file(char *mp4file, char *sndfile, char *adts_fn, int to_std
outputFormat, fileType, aacChannelConfig2wavexChannelMask(&frameInfo));
} else {
#ifdef _WIN32
- setmode(fileno(stdout), O_BINARY);
+ _setmode(_fileno(stdout), O_BINARY);
#endif
aufile = open_audio_file("-", frameInfo.samplerate, frameInfo.channels,
outputFormat, fileType, aacChannelConfig2wavexChannelMask(&frameInfo));
@@ -972,7 +980,7 @@ static int decodeMP4file(char *mp4file, char *sndfile, char *adts_fn, int to_std
if (percent > old_percent)
{
old_percent = percent;
- sprintf(percents, "%d%% decoding %s.", percent, mp4file);
+ snprintf(percents, MAX_PERCENTS, "%d%% decoding %s.", percent, mp4file);
faad_fprintf(stderr, "%s\r", percents);
#ifdef _WIN32
SetConsoleTitle(percents);
@@ -1007,7 +1015,7 @@ static int decodeMP4file(char *mp4file, char *sndfile, char *adts_fn, int to_std
return frameInfo.error;
}
-int main(int argc, char *argv[])
+static int faad_main(int argc, char *argv[])
{
int result;
int infoOnly = 0;
@@ -1265,13 +1273,13 @@ int main(int argc, char *argv[])
readFromStdin = 1;
hMP4File = stdin;
#ifdef _WIN32
- setmode(fileno(stdin), O_BINARY);
+ _setmode(_fileno(stdin), O_BINARY);
#endif
} else {
mp4file = 0;
- hMP4File = fopen(aacFileName, "rb");
+ hMP4File = faad_fopen(aacFileName, "rb");
if (!hMP4File)
{
faad_fprintf(stderr, "Error opening file: %s\n", aacFileName);
@@ -1338,3 +1346,19 @@ int main(int argc, char *argv[])
return 0;
}
+
+int main(int argc, char *argv[])
+{
+#if defined WIN32 || defined _WIN32 || defined WIN64 || defined _WIN64
+ int argc_utf8, exit_code;
+ char **argv_utf8;
+ init_console_utf8(stderr);
+ init_commandline_arguments_utf8(&argc_utf8, &argv_utf8);
+ exit_code = faad_main(argc_utf8, argv_utf8);
+ free_commandline_arguments_utf8(&argc_utf8, &argv_utf8);
+ uninit_console_utf8();
+ return exit_code;
+#else
+ return faad_main(argc, argv);
+#endif
+}
\ No newline at end of file
diff --git a/frontend/mp4read.c b/frontend/mp4read.c
index 9d92bf5..9767383 100644
--- a/frontend/mp4read.c
+++ b/frontend/mp4read.c
@@ -24,6 +24,7 @@
#include <time.h>
#include <limits.h>
+#include "unicode_support.h"
#include "mp4read.h"
enum ATOM_TYPE
@@ -45,17 +46,29 @@ mp4config_t mp4config = { 0 };
static FILE *g_fin = NULL;
-static inline uint32_t bswap32(uint32_t u32)
+static inline uint32_t bswap32(const uint32_t u32)
{
#ifndef WORDS_BIGENDIAN
+#ifdef _MSC_VER
+ return _byteswap_ulong(u32);
+#else
return __builtin_bswap32(u32);
#endif
+#else
+ return u32;
+#endif
}
-static inline uint16_t bswap16(uint16_t u16)
+static inline uint16_t bswap16(const uint16_t u16)
{
#ifndef WORDS_BIGENDIAN
- return __builtin_bswap16(u16);
+#ifdef _MSC_VER
+ return _byteswap_ushort(u16);
+#else
+ return __builtin_bswap16(u16);
+#endif
+#else
+ return u16;
#endif
}
@@ -927,7 +940,7 @@ int mp4read_seek(int framenum)
static void mp4info(void)
{
- fprintf(stderr, "Modification Time:\t\%s", mp4time(mp4config.mtime));
+ fprintf(stderr, "Modification Time:\t\t%s", mp4time(mp4config.mtime));
fprintf(stderr, "Samplerate:\t\t%d\n", mp4config.samplerate);
fprintf(stderr, "Total samples:\t\t%d\n", mp4config.samples);
fprintf(stderr, "Total channels:\t\t%d\n", mp4config.channels);
@@ -958,7 +971,7 @@ int mp4read_open(char *name)
mp4read_close();
- g_fin = fopen(name, "rb");
+ g_fin = faad_fopen(name, "rb");
if (!g_fin)
return ERR_FAIL;
diff --git a/frontend/unicode_support.c b/frontend/unicode_support.c
new file mode 100644
index 0000000..96ea5a4
--- /dev/null
+++ b/frontend/unicode_support.c
@@ -0,0 +1,172 @@
+/* Copyright (c) 2004-2012 LoRd_MuldeR <mulder2 at gmx.de>
+ File: unicode_support.c
+
+ This file was originally part of a patch included with LameXP,
+ released under the same license as the original audio tools.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#if defined WIN32 || defined _WIN32 || defined WIN64 || defined _WIN64
+
+#include "unicode_support.h"
+
+#include <windows.h>
+#include <io.h>
+
+static UINT g_old_output_cp = ((UINT)-1);
+
+char *utf16_to_utf8(const wchar_t *input)
+{
+ char *Buffer;
+ int BuffSize = 0, Result = 0;
+
+ BuffSize = WideCharToMultiByte(CP_UTF8, 0, input, -1, NULL, 0, NULL, NULL);
+ Buffer = (char*) malloc(sizeof(char) * BuffSize);
+ if(Buffer)
+ {
+ Result = WideCharToMultiByte(CP_UTF8, 0, input, -1, Buffer, BuffSize, NULL, NULL);
+ }
+
+ return ((Result > 0) && (Result <= BuffSize)) ? Buffer : NULL;
+}
+
+char *utf16_to_ansi(const wchar_t *input)
+{
+ char *Buffer;
+ int BuffSize = 0, Result = 0;
+
+ BuffSize = WideCharToMultiByte(CP_ACP, 0, input, -1, NULL, 0, NULL, NULL);
+ Buffer = (char*) malloc(sizeof(char) * BuffSize);
+ if(Buffer)
+ {
+ Result = WideCharToMultiByte(CP_ACP, 0, input, -1, Buffer, BuffSize, NULL, NULL);
+ }
+
+ return ((Result > 0) && (Result <= BuffSize)) ? Buffer : NULL;
+}
+
+wchar_t *utf8_to_utf16(const char *input)
+{
+ wchar_t *Buffer;
+ int BuffSize = 0, Result = 0;
+
+ BuffSize = MultiByteToWideChar(CP_UTF8, 0, input, -1, NULL, 0);
+ Buffer = (wchar_t*) malloc(sizeof(wchar_t) * BuffSize);
+ if(Buffer)
+ {
+ Result = MultiByteToWideChar(CP_UTF8, 0, input, -1, Buffer, BuffSize);
+ }
+
+ return ((Result > 0) && (Result <= BuffSize)) ? Buffer : NULL;
+}
+
+void init_commandline_arguments_utf8(int *argc, char ***argv)
+{
+ int i, nArgs;
+ LPWSTR *szArglist;
+
+ szArglist = CommandLineToArgvW(GetCommandLineW(), &nArgs);
+
+ if(NULL == szArglist)
+ {
+ fprintf(stderr, "\nFATAL: CommandLineToArgvW failed\n\n");
+ exit(-1);
+ }
+
+ *argv = (char**) malloc(sizeof(char*) * nArgs);
+ *argc = nArgs;
+
+ if(NULL == *argv)
+ {
+ fprintf(stderr, "\nFATAL: Malloc failed\n\n");
+ exit(-1);
+ }
+
+ for(i = 0; i < nArgs; i++)
+ {
+ (*argv)[i] = utf16_to_utf8(szArglist[i]);
+ if(NULL == (*argv)[i])
+ {
+ fprintf(stderr, "\nFATAL: utf16_to_utf8 failed\n\n");
+ exit(-1);
+ }
+ }
+
+ LocalFree(szArglist);
+}
+
+void free_commandline_arguments_utf8(int *argc, char ***argv)
+{
+ int i = 0;
+
+ if(*argv != NULL)
+ {
+ for(i = 0; i < *argc; i++)
+ {
+ if((*argv)[i] != NULL)
+ {
+ free((*argv)[i]);
+ (*argv)[i] = NULL;
+ }
+ }
+ free(*argv);
+ *argv = NULL;
+ }
+}
+
+FILE *fopen_utf8(const char *filename_utf8, const char *mode_utf8)
+{
+ FILE *ret = NULL;
+ wchar_t *filename_utf16 = utf8_to_utf16(filename_utf8);
+ wchar_t *mode_utf16 = utf8_to_utf16(mode_utf8);
+
+ if(filename_utf16 && mode_utf16)
+ {
+ ret = _wfopen(filename_utf16, mode_utf16);
+ }
+
+ if(filename_utf16) free(filename_utf16);
+ if(mode_utf16) free(mode_utf16);
+
+ return ret;
+}
+
+void init_console_utf8(FILE *const stream)
+{
+ if (_isatty(_fileno(stream)))
+ {
+ g_old_output_cp = GetConsoleOutputCP();
+ SetConsoleOutputCP(CP_UTF8);
+ }
+}
+
+void uninit_console_utf8(void)
+{
+ if(g_old_output_cp != ((UINT)-1))
+ {
+ SetConsoleOutputCP(g_old_output_cp);
+ }
+}
+
+#endif
\ No newline at end of file
diff --git a/frontend/unicode_support.h b/frontend/unicode_support.h
new file mode 100644
index 0000000..064fa34
--- /dev/null
+++ b/frontend/unicode_support.h
@@ -0,0 +1,49 @@
+/* Copyright (c) 2004-2012 LoRd_MuldeR <mulder2 at gmx.de>
+ File: unicode_support.h
+
+ This file was originally part of a patch included with LameXP,
+ released under the same license as the original audio tools.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+#ifndef UNICODE_SUPPORT_H_INCLUDED
+#define UNICODE_SUPPORT_H_INCLUDED
+
+#include <stdio.h>
+
+#if defined WIN32 || defined _WIN32 || defined WIN64 || defined _WIN64
+char *utf16_to_utf8(const wchar_t *input);
+char *utf16_to_ansi(const wchar_t *input);
+wchar_t *utf8_to_utf16(const char *input);
+void init_commandline_arguments_utf8(int *argc, char ***argv);
+void free_commandline_arguments_utf8(int *argc, char ***argv);
+FILE *fopen_utf8(const char *filename_utf8, const char *mode_utf8);
+void init_console_utf8(FILE *const stream);
+void uninit_console_utf8(void);
+#define faad_fopen(X,Y) fopen_utf8((X),(Y))
+#else
+#define faad_fopen(X,Y) fopen((X),(Y))
+#endif
+
+#endif //UNICODE_SUPPORT_H_INCLUDED
diff --git a/libfaad/decoder.c b/libfaad/decoder.c
index 44762f6..52a387f 100644
--- a/libfaad/decoder.c
+++ b/libfaad/decoder.c
@@ -53,6 +53,10 @@
uint16_t dbg_count;
#endif
+#if defined WIN32 || defined _WIN32 || defined WIN64 || defined _WIN64
+#include "win32_ver.h"
+#endif
+
/* static function declarations */
static void* aac_frame_decode(NeAACDecStruct *hDecoder,
NeAACDecFrameInfo *hInfo,
diff --git a/project/msvc/aacinfo.vcxproj b/project/msvc/aacinfo.vcxproj
new file mode 100644
index 0000000..4cca6d6
--- /dev/null
+++ b/project/msvc/aacinfo.vcxproj
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{FE985E4D-79DB-4DD3-BFED-824B4677A161}</ProjectGuid>
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v141</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v141</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>15.0.26730.12</_ProjectFileVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>.\bin\$(Configuration)\</OutDir>
+ <IntDir>.\intermediate\$(Configuration)\$(ProjectName)\</IntDir>
+ <LinkIncremental>true</LinkIncremental>
+ <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules />
+ <CodeAnalysisRuleAssemblies />
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>.\bin\$(Configuration)\</OutDir>
+ <IntDir>.\intermediate\$(Configuration)\$(ProjectName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules />
+ <CodeAnalysisRuleAssemblies />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_DEBUG;WIN32;_CONSOLE;TEST;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeader />
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0413</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;NDEBUG;WIN32;_CONSOLE;TEST;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader />
+ <WarningLevel>Level3</WarningLevel>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0413</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalOptions>/MACHINE:I386 %(AdditionalOptions)</AdditionalOptions>
+ <SubSystem>Console</SubSystem>
+ <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="../../common/faad/aacinfo.c" />
+ <ClCompile Include="../../common/faad/filestream.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="../../common/faad/aacinfo.h" />
+ <ClInclude Include="../../common/faad/filestream.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/project/msvc/aacinfo.vcxproj.filters b/project/msvc/aacinfo.vcxproj.filters
new file mode 100644
index 0000000..44b0428
--- /dev/null
+++ b/project/msvc/aacinfo.vcxproj.filters
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{791f5160-53a5-4c5e-a4a5-23a05c773c22}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{f1d3687c-4d55-4c4e-98b4-657ceb0b9ad2}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="../../common/faad/aacinfo.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="../../common/faad/filestream.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="../../common/faad/aacinfo.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="../../common/faad/filestream.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/project/msvc/faad.vcxproj b/project/msvc/faad.vcxproj
new file mode 100644
index 0000000..c741e31
--- /dev/null
+++ b/project/msvc/faad.vcxproj
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{2BD8CBB3-DFC9-4A6A-9B7A-07ED749BED58}</ProjectGuid>
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>15.0.26730.12</_ProjectFileVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>.\bin\$(Configuration)\</OutDir>
+ <IntDir>.\intermediate\$(Configuration)\$(ProjectName)\</IntDir>
+ <LinkIncremental>true</LinkIncremental>
+ <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules />
+ <CodeAnalysisRuleAssemblies />
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>.\bin\$(Configuration)\</OutDir>
+ <IntDir>.\intermediate\$(Configuration)\$(ProjectName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules />
+ <CodeAnalysisRuleAssemblies />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Midl>
+ <TypeLibraryName>.\Debug/faad.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../include;../../common/mp4ff;../../frontend;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader />
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0413</Culture>
+ </ResourceCompile>
+ <Link>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Midl>
+ <TypeLibraryName>.\Release/faad.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <Optimization>MinSpace</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <AdditionalIncludeDirectories>../../include;../../common/mp4ff;../../frontend;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader />
+ <WarningLevel>Level3</WarningLevel>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0413</Culture>
+ </ResourceCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\frontend\audio.c" />
+ <ClCompile Include="..\..\frontend\main.c" />
+ <ClCompile Include="..\..\frontend\mp4read.c" />
+ <ClCompile Include="..\..\frontend\unicode_support.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\frontend\getopt.h" />
+ <ClInclude Include="..\..\common\mp4v2\win32_ver.h" />
+ <ClInclude Include="..\..\frontend\mp4read.h" />
+ <ClInclude Include="..\..\frontend\unicode_support.h" />
+ <ClInclude Include="..\..\include\neaacdec.h" />
+ <ClInclude Include="..\..\frontend\audio.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="libfaad.vcxproj">
+ <Project>{bc3efe27-9015-4c9c-ad3c-72b3b7ed2114}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/project/msvc/faad.vcxproj.filters b/project/msvc/faad.vcxproj.filters
new file mode 100644
index 0000000..47e778a
--- /dev/null
+++ b/project/msvc/faad.vcxproj.filters
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{6471b163-f0fb-4df0-b3f4-a98d81d5acd5}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{b68959bb-0fd2-4bc1-92be-187b7a5161e4}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\frontend\audio.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\frontend\main.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\frontend\mp4read.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\frontend\unicode_support.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\frontend\audio.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\frontend\getopt.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\neaacdec.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\common\mp4v2\win32_ver.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\frontend\mp4read.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\frontend\unicode_support.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/project/msvc/faad2.sln b/project/msvc/faad2.sln
new file mode 100644
index 0000000..cecc722
--- /dev/null
+++ b/project/msvc/faad2.sln
@@ -0,0 +1,45 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.26730.12
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "aacinfo", "aacinfo.vcxproj", "{FE985E4D-79DB-4DD3-BFED-824B4677A161}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libfaad", "libfaad.vcxproj", "{BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libfaad2_dll", "libfaad2_dll.vcxproj", "{482DA264-EE88-4575-B208-87C4CB80CD08}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "faad", "faad.vcxproj", "{2BD8CBB3-DFC9-4A6A-9B7A-07ED749BED58}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {FE985E4D-79DB-4DD3-BFED-824B4677A161}.Debug|Win32.ActiveCfg = Debug|Win32
+ {FE985E4D-79DB-4DD3-BFED-824B4677A161}.Debug|Win32.Build.0 = Debug|Win32
+ {FE985E4D-79DB-4DD3-BFED-824B4677A161}.Release|Win32.ActiveCfg = Release|Win32
+ {FE985E4D-79DB-4DD3-BFED-824B4677A161}.Release|Win32.Build.0 = Release|Win32
+ {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}.Debug|Win32.ActiveCfg = Debug|Win32
+ {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}.Debug|Win32.Build.0 = Debug|Win32
+ {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}.Release|Win32.ActiveCfg = Release|Win32
+ {BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}.Release|Win32.Build.0 = Release|Win32
+ {482DA264-EE88-4575-B208-87C4CB80CD08}.Debug|Win32.ActiveCfg = Debug|Win32
+ {482DA264-EE88-4575-B208-87C4CB80CD08}.Debug|Win32.Build.0 = Debug|Win32
+ {482DA264-EE88-4575-B208-87C4CB80CD08}.Release|Win32.ActiveCfg = Release|Win32
+ {482DA264-EE88-4575-B208-87C4CB80CD08}.Release|Win32.Build.0 = Release|Win32
+ {2BD8CBB3-DFC9-4A6A-9B7A-07ED749BED58}.Debug|Win32.ActiveCfg = Debug|Win32
+ {2BD8CBB3-DFC9-4A6A-9B7A-07ED749BED58}.Debug|Win32.Build.0 = Debug|Win32
+ {2BD8CBB3-DFC9-4A6A-9B7A-07ED749BED58}.Release|Win32.ActiveCfg = Release|Win32
+ {2BD8CBB3-DFC9-4A6A-9B7A-07ED749BED58}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {89E2B8B3-42E4-4058-9565-E79943F3445F}
+ EndGlobalSection
+ GlobalSection(DPCodeReviewSolutionGUID) = preSolution
+ DPCodeReviewSolutionGUID = {00000000-0000-0000-0000-000000000000}
+ EndGlobalSection
+EndGlobal
diff --git a/project/msvc/libfaad.vcxproj b/project/msvc/libfaad.vcxproj
new file mode 100644
index 0000000..5f194b5
--- /dev/null
+++ b/project/msvc/libfaad.vcxproj
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{BC3EFE27-9015-4C9C-AD3C-72B3B7ED2114}</ProjectGuid>
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>15.0.26730.12</_ProjectFileVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>.\bin\$(Configuration)\</OutDir>
+ <IntDir>.\intermediate\$(Configuration)\$(ProjectName)\</IntDir>
+ <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules />
+ <CodeAnalysisRuleAssemblies />
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>.\bin\$(Configuration)\</OutDir>
+ <IntDir>.\intermediate\$(Configuration)\$(ProjectName)\</IntDir>
+ <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules />
+ <CodeAnalysisRuleAssemblies />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;NDEBUG;WIN32;_LIB;HAVE_LRINTF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader />
+ <WarningLevel>Level3</WarningLevel>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0413</Culture>
+ </ResourceCompile>
+ <Lib />
+ <PreBuildEvent>
+ <Command>"$(SolutionDir)..\..\utils\win32\ac2ver.exe" "faad2" "$(SolutionDir)..\..\configure.ac" > "$(SolutionDir)..\..\libfaad\win32_ver.h"</Command>
+ </PreBuildEvent>
+ <PreBuildEvent>
+ <Message>Retrieving package version...</Message>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_DEBUG;WIN32;_LIB;HAVE_LRINTF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader />
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0413</Culture>
+ </ResourceCompile>
+ <Lib />
+ <PreBuildEvent>
+ <Command>"$(SolutionDir)..\..\utils\win32\ac2ver.exe" "faad2" "$(SolutionDir)..\..\configure.ac" > "$(SolutionDir)..\..\libfaad\win32_ver.h"</Command>
+ </PreBuildEvent>
+ <PreBuildEvent>
+ <Message>Retrieving package version...</Message>
+ </PreBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\libfaad\bits.c" />
+ <ClCompile Include="..\..\libfaad\cfft.c" />
+ <ClCompile Include="..\..\libfaad\common.c" />
+ <ClCompile Include="..\..\libfaad\decoder.c" />
+ <ClCompile Include="..\..\libfaad\drc.c" />
+ <ClCompile Include="..\..\libfaad\drm_dec.c" />
+ <ClCompile Include="..\..\libfaad\error.c" />
+ <ClCompile Include="..\..\libfaad\filtbank.c" />
+ <ClCompile Include="..\..\libfaad\hcr.c" />
+ <ClCompile Include="..\..\libfaad\huffman.c" />
+ <ClCompile Include="..\..\libfaad\ic_predict.c" />
+ <ClCompile Include="..\..\libfaad\is.c" />
+ <ClCompile Include="..\..\libfaad\lt_predict.c" />
+ <ClCompile Include="..\..\libfaad\mdct.c" />
+ <ClCompile Include="..\..\libfaad\mp4.c" />
+ <ClCompile Include="..\..\libfaad\ms.c" />
+ <ClCompile Include="..\..\libfaad\output.c" />
+ <ClCompile Include="..\..\libfaad\pns.c" />
+ <ClCompile Include="..\..\libfaad\ps_dec.c" />
+ <ClCompile Include="..\..\libfaad\ps_syntax.c" />
+ <ClCompile Include="..\..\libfaad\pulse.c" />
+ <ClCompile Include="..\..\libfaad\rvlc.c" />
+ <ClCompile Include="..\..\libfaad\sbr_dct.c" />
+ <ClCompile Include="..\..\libfaad\sbr_dec.c" />
+ <ClCompile Include="..\..\libfaad\sbr_e_nf.c" />
+ <ClCompile Include="..\..\libfaad\sbr_fbt.c" />
+ <ClCompile Include="..\..\libfaad\sbr_hfadj.c" />
+ <ClCompile Include="..\..\libfaad\sbr_hfgen.c" />
+ <ClCompile Include="..\..\libfaad\sbr_huff.c" />
+ <ClCompile Include="..\..\libfaad\sbr_qmf.c" />
+ <ClCompile Include="..\..\libfaad\sbr_syntax.c" />
+ <ClCompile Include="..\..\libfaad\sbr_tf_grid.c" />
+ <ClCompile Include="..\..\libfaad\specrec.c" />
+ <ClCompile Include="..\..\libfaad\ssr.c" />
+ <ClCompile Include="..\..\libfaad\ssr_fb.c" />
+ <ClCompile Include="..\..\libfaad\ssr_ipqf.c" />
+ <ClCompile Include="..\..\libfaad\syntax.c" />
+ <ClCompile Include="..\..\libfaad\tns.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\libfaad\analysis.h" />
+ <ClInclude Include="..\..\libfaad\bits.h" />
+ <ClInclude Include="..\..\libfaad\cfft.h" />
+ <ClInclude Include="..\..\libfaad\cfft_tab.h" />
+ <ClInclude Include="..\..\libfaad\codebook\hcb.h" />
+ <ClInclude Include="..\..\libfaad\codebook\hcb_1.h" />
+ <ClInclude Include="..\..\libfaad\codebook\hcb_10.h" />
+ <ClInclude Include="..\..\libfaad\codebook\hcb_11.h" />
+ <ClInclude Include="..\..\libfaad\codebook\hcb_2.h" />
+ <ClInclude Include="..\..\libfaad\codebook\hcb_3.h" />
+ <ClInclude Include="..\..\libfaad\codebook\hcb_4.h" />
+ <ClInclude Include="..\..\libfaad\codebook\hcb_5.h" />
+ <ClInclude Include="..\..\libfaad\codebook\hcb_6.h" />
+ <ClInclude Include="..\..\libfaad\codebook\hcb_7.h" />
+ <ClInclude Include="..\..\libfaad\codebook\hcb_8.h" />
+ <ClInclude Include="..\..\libfaad\codebook\hcb_9.h" />
+ <ClInclude Include="..\..\libfaad\codebook\hcb_sf.h" />
+ <ClInclude Include="..\..\libfaad\common.h" />
+ <ClInclude Include="..\..\libfaad\drc.h" />
+ <ClInclude Include="..\..\libfaad\drm_dec.h" />
+ <ClInclude Include="..\..\libfaad\error.h" />
+ <ClInclude Include="..\..\libfaad\filtbank.h" />
+ <ClInclude Include="..\..\libfaad\fixed.h" />
+ <ClInclude Include="..\..\libfaad\huffman.h" />
+ <ClInclude Include="..\..\libfaad\ic_predict.h" />
+ <ClInclude Include="..\..\libfaad\iq_table.h" />
+ <ClInclude Include="..\..\libfaad\is.h" />
+ <ClInclude Include="..\..\libfaad\kbd_win.h" />
+ <ClInclude Include="..\..\libfaad\lt_predict.h" />
+ <ClInclude Include="..\..\libfaad\mdct.h" />
+ <ClInclude Include="..\..\libfaad\mp4.h" />
+ <ClInclude Include="..\..\libfaad\ms.h" />
+ <ClInclude Include="..\..\libfaad\output.h" />
+ <ClInclude Include="..\..\libfaad\pns.h" />
+ <ClInclude Include="..\..\libfaad\ps_dec.h" />
+ <ClInclude Include="..\..\libfaad\ps_tables.h" />
+ <ClInclude Include="..\..\libfaad\pulse.h" />
+ <ClInclude Include="..\..\libfaad\rvlc.h" />
+ <ClInclude Include="..\..\libfaad\sbr_dct.h" />
+ <ClInclude Include="..\..\libfaad\sbr_dec.h" />
+ <ClInclude Include="..\..\libfaad\sbr_e_nf.h" />
+ <ClInclude Include="..\..\libfaad\sbr_fbt.h" />
+ <ClInclude Include="..\..\libfaad\sbr_hfadj.h" />
+ <ClInclude Include="..\..\libfaad\sbr_hfgen.h" />
+ <ClInclude Include="..\..\libfaad\sbr_huff.h" />
+ <ClInclude Include="..\..\libfaad\sbr_noise.h" />
+ <ClInclude Include="..\..\libfaad\sbr_qmf.h" />
+ <ClInclude Include="..\..\libfaad\sbr_syntax.h" />
+ <ClInclude Include="..\..\libfaad\sbr_tf_grid.h" />
+ <ClInclude Include="..\..\libfaad\sine_win.h" />
+ <ClInclude Include="..\..\libfaad\specrec.h" />
+ <ClInclude Include="..\..\libfaad\ssr.h" />
+ <ClInclude Include="..\..\libfaad\structs.h" />
+ <ClInclude Include="..\..\libfaad\syntax.h" />
+ <ClInclude Include="..\..\libfaad\tns.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/project/msvc/libfaad.vcxproj.filters b/project/msvc/libfaad.vcxproj.filters
new file mode 100644
index 0000000..51f4cc7
--- /dev/null
+++ b/project/msvc/libfaad.vcxproj.filters
@@ -0,0 +1,299 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{619aded3-55ea-4189-9fe0-5214a4d91e93}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{6f786fdd-858d-47ce-9a6e-e09b46c63fbb}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl</Extensions>
+ </Filter>
+ <Filter Include="Header Files\codebook">
+ <UniqueIdentifier>{8cc5d783-4bb8-4e95-9da0-67901052651a}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\libfaad\bits.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\cfft.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\common.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\decoder.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\drc.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\drm_dec.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\error.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\filtbank.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\hcr.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\huffman.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\ic_predict.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\is.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\lt_predict.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\mdct.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\mp4.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\ms.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\output.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\pns.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\ps_dec.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\ps_syntax.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\pulse.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\rvlc.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\sbr_dct.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\sbr_dec.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\sbr_e_nf.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\sbr_fbt.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\sbr_hfadj.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\sbr_hfgen.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\sbr_huff.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\sbr_qmf.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\sbr_syntax.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\sbr_tf_grid.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\specrec.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\ssr.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\ssr_fb.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\ssr_ipqf.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\syntax.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\tns.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\libfaad\analysis.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\bits.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\cfft.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\cfft_tab.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\common.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\drc.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\drm_dec.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\error.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\filtbank.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\fixed.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\codebook\hcb.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\huffman.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\ic_predict.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\iq_table.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\is.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\kbd_win.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\lt_predict.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\mdct.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\mp4.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\ms.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\output.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\pns.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\ps_dec.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\ps_tables.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\pulse.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\rvlc.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\sbr_dct.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\sbr_dec.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\sbr_e_nf.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\sbr_fbt.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\sbr_hfadj.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\sbr_hfgen.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\sbr_huff.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\sbr_noise.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\sbr_qmf.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\sbr_syntax.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\sbr_tf_grid.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\sine_win.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\specrec.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\ssr.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\structs.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\syntax.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\tns.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\codebook\hcb_1.h">
+ <Filter>Header Files\codebook</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\codebook\hcb_10.h">
+ <Filter>Header Files\codebook</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\codebook\hcb_11.h">
+ <Filter>Header Files\codebook</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\codebook\hcb_2.h">
+ <Filter>Header Files\codebook</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\codebook\hcb_3.h">
+ <Filter>Header Files\codebook</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\codebook\hcb_4.h">
+ <Filter>Header Files\codebook</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\codebook\hcb_5.h">
+ <Filter>Header Files\codebook</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\codebook\hcb_6.h">
+ <Filter>Header Files\codebook</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\codebook\hcb_7.h">
+ <Filter>Header Files\codebook</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\codebook\hcb_8.h">
+ <Filter>Header Files\codebook</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\codebook\hcb_9.h">
+ <Filter>Header Files\codebook</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\codebook\hcb_sf.h">
+ <Filter>Header Files\codebook</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/project/msvc/libfaad2.def b/project/msvc/libfaad2.def
new file mode 100644
index 0000000..9d7d52d
--- /dev/null
+++ b/project/msvc/libfaad2.def
@@ -0,0 +1,15 @@
+EXPORTS
+;
+; libfaad2 exports
+;
+NeAACDecOpen @1
+NeAACDecGetCurrentConfiguration @2
+NeAACDecSetConfiguration @3
+NeAACDecInit @4
+NeAACDecInit2 @5
+NeAACDecDecode @6
+NeAACDecClose @7
+NeAACDecGetErrorMessage @8
+NeAACDecAudioSpecificConfig @9
+NeAACDecPostSeekReset @10
+NeAACDecDecode2 @11
diff --git a/project/msvc/libfaad2_dll.vcxproj b/project/msvc/libfaad2_dll.vcxproj
new file mode 100644
index 0000000..0c7b455
--- /dev/null
+++ b/project/msvc/libfaad2_dll.vcxproj
@@ -0,0 +1,184 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{482DA264-EE88-4575-B208-87C4CB80CD08}</ProjectGuid>
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v141</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>15.0.26730.12</_ProjectFileVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>.\bin\$(Configuration)\</OutDir>
+ <IntDir>.\intermediate\$(Configuration)\$(ProjectName)\</IntDir>
+ <LinkIncremental>true</LinkIncremental>
+ <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules />
+ <CodeAnalysisRuleAssemblies />
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>.\bin\$(Configuration)\</OutDir>
+ <IntDir>.\intermediate\$(Configuration)\$(ProjectName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+ <CodeAnalysisRules />
+ <CodeAnalysisRuleAssemblies />
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>.\DebugDLL/libfaad2_dll.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_WINDOWS;_USRDLL;HAVE_LRINTF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader />
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0407</Culture>
+ </ResourceCompile>
+ <Link>
+ <ModuleDefinitionFile>.\libfaad2.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Midl>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MkTypLibCompatible>true</MkTypLibCompatible>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <TargetEnvironment>Win32</TargetEnvironment>
+ <TypeLibraryName>.\ReleaseDLL/libfaad2_dll.tlb</TypeLibraryName>
+ </Midl>
+ <ClCompile>
+ <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_WINDOWS;_USRDLL;HAVE_LRINTF;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader />
+ <WarningLevel>Level3</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0407</Culture>
+ </ResourceCompile>
+ <Link>
+ <ModuleDefinitionFile>.\libfaad2.def</ModuleDefinitionFile>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\libfaad\bits.c" />
+ <ClCompile Include="..\..\libfaad\cfft.c" />
+ <ClCompile Include="..\..\libfaad\common.c" />
+ <ClCompile Include="..\..\libfaad\decoder.c" />
+ <ClCompile Include="..\..\libfaad\drc.c" />
+ <ClCompile Include="..\..\libfaad\drm_dec.c" />
+ <ClCompile Include="..\..\libfaad\error.c" />
+ <ClCompile Include="..\..\libfaad\filtbank.c" />
+ <ClCompile Include="..\..\libfaad\hcr.c" />
+ <ClCompile Include="..\..\libfaad\huffman.c" />
+ <ClCompile Include="..\..\libfaad\ic_predict.c" />
+ <ClCompile Include="..\..\libfaad\is.c" />
+ <ClCompile Include="..\..\libfaad\lt_predict.c" />
+ <ClCompile Include="..\..\libfaad\mdct.c" />
+ <ClCompile Include="..\..\libfaad\mp4.c" />
+ <ClCompile Include="..\..\libfaad\ms.c" />
+ <ClCompile Include="..\..\libfaad\output.c" />
+ <ClCompile Include="..\..\libfaad\pns.c" />
+ <ClCompile Include="..\..\libfaad\ps_dec.c" />
+ <ClCompile Include="..\..\libfaad\ps_syntax.c" />
+ <ClCompile Include="..\..\libfaad\pulse.c" />
+ <ClCompile Include="..\..\libfaad\rvlc.c" />
+ <ClCompile Include="..\..\libfaad\sbr_dct.c" />
+ <ClCompile Include="..\..\libfaad\sbr_dec.c" />
+ <ClCompile Include="..\..\libfaad\sbr_e_nf.c" />
+ <ClCompile Include="..\..\libfaad\sbr_fbt.c" />
+ <ClCompile Include="..\..\libfaad\sbr_hfadj.c" />
+ <ClCompile Include="..\..\libfaad\sbr_hfgen.c" />
+ <ClCompile Include="..\..\libfaad\sbr_huff.c" />
+ <ClCompile Include="..\..\libfaad\sbr_qmf.c" />
+ <ClCompile Include="..\..\libfaad\sbr_syntax.c" />
+ <ClCompile Include="..\..\libfaad\sbr_tf_grid.c" />
+ <ClCompile Include="..\..\libfaad\specrec.c" />
+ <ClCompile Include="..\..\libfaad\ssr.c" />
+ <ClCompile Include="..\..\libfaad\ssr_fb.c" />
+ <ClCompile Include="..\..\libfaad\ssr_ipqf.c" />
+ <ClCompile Include="..\..\libfaad\syntax.c" />
+ <ClCompile Include="..\..\libfaad\tns.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\libfaad\analysis.h" />
+ <ClInclude Include="..\..\libfaad\bits.h" />
+ <ClInclude Include="..\..\libfaad\cfft.h" />
+ <ClInclude Include="..\..\libfaad\codebook\hcb.h" />
+ <ClInclude Include="..\..\libfaad\common.h" />
+ <ClInclude Include="..\..\libfaad\drc.h" />
+ <ClInclude Include="..\..\libfaad\error.h" />
+ <ClInclude Include="..\..\libfaad\filtbank.h" />
+ <ClInclude Include="..\..\libfaad\huffman.h" />
+ <ClInclude Include="..\..\libfaad\ic_predict.h" />
+ <ClInclude Include="..\..\libfaad\is.h" />
+ <ClInclude Include="..\..\libfaad\kbd_win.h" />
+ <ClInclude Include="..\..\libfaad\lt_predict.h" />
+ <ClInclude Include="..\..\libfaad\mdct.h" />
+ <ClInclude Include="..\..\libfaad\mp4.h" />
+ <ClInclude Include="..\..\libfaad\ms.h" />
+ <ClInclude Include="..\..\libfaad\output.h" />
+ <ClInclude Include="..\..\libfaad\pns.h" />
+ <ClInclude Include="..\..\libfaad\pulse.h" />
+ <ClInclude Include="..\..\libfaad\rvlc.h" />
+ <ClInclude Include="..\..\libfaad\specrec.h" />
+ <ClInclude Include="..\..\libfaad\ssr.h" />
+ <ClInclude Include="..\..\libfaad\syntax.h" />
+ <ClInclude Include="..\..\libfaad\Tns.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="libfaad2.def" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/project/msvc/libfaad2_dll.vcxproj.filters b/project/msvc/libfaad2_dll.vcxproj.filters
new file mode 100644
index 0000000..f89e02c
--- /dev/null
+++ b/project/msvc/libfaad2_dll.vcxproj.filters
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{49a4bc70-d8e3-49e8-89e3-a91112cd9fd2}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{05b5a1d9-6070-414e-9fa5-21734fddfce8}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\libfaad\bits.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\cfft.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\common.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\decoder.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\drc.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\drm_dec.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\error.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\filtbank.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\hcr.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\huffman.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\ic_predict.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\is.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\lt_predict.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\mdct.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\mp4.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\ms.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\output.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\pns.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\ps_dec.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\ps_syntax.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\pulse.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\rvlc.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\sbr_dct.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\sbr_dec.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\sbr_e_nf.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\sbr_fbt.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\sbr_hfadj.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\sbr_hfgen.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\sbr_huff.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\sbr_qmf.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\sbr_syntax.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\sbr_tf_grid.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\specrec.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\ssr.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\ssr_fb.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\ssr_ipqf.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\syntax.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libfaad\tns.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\libfaad\analysis.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\bits.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\cfft.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\common.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\drc.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\error.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\filtbank.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\codebook\hcb.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\huffman.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\ic_predict.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\is.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\kbd_win.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\lt_predict.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\mdct.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\mp4.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\ms.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\output.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\pns.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\pulse.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\rvlc.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\specrec.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\ssr.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\syntax.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libfaad\Tns.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="libfaad2.def" />
+ </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/utils/win32/ac2ver.c b/utils/win32/ac2ver.c
new file mode 100644
index 0000000..171d6dd
--- /dev/null
+++ b/utils/win32/ac2ver.c
@@ -0,0 +1,103 @@
+/*
+** AC2VER - extract version number from AC_INIT macro (configure.ac)
+** Copyright (C) 2017 LoRd_MuldeR <mulder2 at GMX.de>
+**
+** This software is released under the CC0 1.0 Universal [CC0 1.0] licence!
+** https://creativecommons.org/publicdomain/zero/1.0/legalcode
+**/
+
+#define BUFF_SIZE 4096
+#define _CRT_SECURE_NO_WARNINGS 1
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <ctype.h>
+
+static int clean_string(char *const str)
+{
+ size_t i = 0, j = 0;
+ while(str[i])
+ {
+ if(isalnum(str[i]) || strchr("._-", str[i]))
+ {
+ if(i != j)
+ {
+ str[j] = str[i];
+ }
+ ++j;
+ }
+ ++i;
+ }
+ str[j] = '\0';
+ return !!j;
+}
+
+static int parse_version(FILE *const input, const char *const format, char *const version)
+{
+ char buffer[BUFF_SIZE];
+
+ while(!(feof(input) || ferror(input)))
+ {
+ const char *line = fgets(buffer, BUFF_SIZE, input);
+ if(line)
+ {
+ while((*line) && (isspace(*line)))
+ {
+ ++line; /*skip space*/
+ }
+ if(sscanf(line, format, version) == 1)
+ {
+ if(clean_string(version))
+ {
+ return 1; /*found!*/
+ }
+ }
+ }
+ }
+
+ version[0] = '\0';
+ return 0;
+}
+
+static int get_version(const wchar_t *const lib_name, const wchar_t *const file_name)
+{
+ char format[128], version[BUFF_SIZE];
+
+ FILE *const input = _wfopen(file_name, L"r");
+ if(!input)
+ {
+ fprintf(stderr, "Error: Failed to open input file!\n%S\n\n", file_name);
+ return 0;
+ }
+
+ _snprintf(format, 128, "AC_INIT ( %S , %%s", lib_name);
+ //printf("<%s>\n", format);
+
+ if(parse_version(input, format, version))
+ {
+ printf("#define PACKAGE_VERSION \"%s\"\n", version);
+ fclose(input);
+ return 1;
+ }
+ else
+ {
+ fprintf(stderr, "Error: Version string could not be found!\n\n");
+ fclose(input);
+ return 0;
+ }
+}
+
+int wmain(int argc, wchar_t* argv[])
+{
+ if((argc != 3) || (!argv[1][0]) || (!argv[2][0]))
+ {
+ wchar_t file_name[_MAX_FNAME], file_ext[_MAX_EXT];
+ _wsplitpath(argv[0], NULL, NULL, file_name, file_ext);
+ fprintf(stderr, "AC2VER [%s]\n\n", __DATE__);
+ fprintf(stderr, "Usage: %S%S <lib_name> <path/to/configure.ac>\n\n", file_name, file_ext);
+ return EXIT_FAILURE;
+ }
+
+ return get_version(argv[1], argv[2]) ? EXIT_SUCCESS : EXIT_FAILURE;
+}
diff --git a/utils/win32/ac2ver.exe b/utils/win32/ac2ver.exe
new file mode 100644
index 0000000..73861ab
Binary files /dev/null and b/utils/win32/ac2ver.exe differ
--
faad2 packaging
More information about the pkg-multimedia-commits
mailing list