diff --git a/MSVC/ring-daemon.vcxproj b/MSVC/ring-daemon.vcxproj index c0e662bf39abefda906ec3caa40cf1d402859649..413adfed82cb001be491f35615385f4c17ebe6c2 100644 --- a/MSVC/ring-daemon.vcxproj +++ b/MSVC/ring-daemon.vcxproj @@ -259,7 +259,7 @@ <UseFullPaths>false</UseFullPaths> </ClCompile> <Link> - <AdditionalDependencies>ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;avcodecd.lib;avdeviced.lib;avfilterd.lib;avformatd.lib;avutild.lib;libpjproject.lib;libsamplerate.lib;libsndfile.lib;libupnp.lib;libyaml-cpp.lib;opendht.lib;pcred.lib;pjlib.lib;pjlib_util.lib;pjnath.lib;pjsip_core.lib;pjsip_simple.lib;pjmedia.lib;pjmedia_codec.lib;pjsip_ua.lib;pjsua2_lib.lib;pjsua_lib.lib;portaudio.lib;swresampled.lib;swscaled.lib;lib_json.lib;Strmiids.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;avcodecd.lib;avdeviced.lib;avfilterd.lib;avformatd.lib;avutild.lib;libpjproject.lib;libsamplerate.lib;libupnp.lib;libyaml-cpp.lib;opendht.lib;pcred.lib;pjlib.lib;pjlib_util.lib;pjnath.lib;pjsip_core.lib;pjsip_simple.lib;pjmedia.lib;pjmedia_codec.lib;pjsip_ua.lib;pjsua2_lib.lib;pjsua_lib.lib;portaudio.lib;swresampled.lib;swscaled.lib;lib_json.lib;Strmiids.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalLibraryDirectories>..\..\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> <AdditionalOptions>/VERBOSE:LIB /NODEFAULTLIB:libcmtd /NODEFAULTLIB:libcmt /OPT:NOLBR /OPT:NOICF /ignore:4099 /ignore:4049 /ignore:4217 /INCREMENTAL /LTCG:OFF /FORCE:MULTIPLE</AdditionalOptions> <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration> @@ -294,7 +294,7 @@ <UseFullPaths>false</UseFullPaths> </ClCompile> <Link> - <AdditionalDependencies>ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;avcodecd.lib;avdeviced.lib;avfilterd.lib;avformatd.lib;avutild.lib;libpjproject.lib;libsamplerate.lib;libsndfile.lib;libupnp.lib;libyaml-cpp.lib;opendht.lib;pcred.lib;pjlib.lib;pjlib_util.lib;pjnath.lib;pjsip_core.lib;pjsip_simple.lib;pjmedia.lib;pjmedia_codec.lib;pjsip_ua.lib;pjsua2_lib.lib;pjsua_lib.lib;portaudio.lib;swresampled.lib;swscaled.lib;lib_json.lib;Strmiids.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;avcodecd.lib;avdeviced.lib;avfilterd.lib;avformatd.lib;avutild.lib;libpjproject.lib;libsamplerate.lib;libupnp.lib;libyaml-cpp.lib;opendht.lib;pcred.lib;pjlib.lib;pjlib_util.lib;pjnath.lib;pjsip_core.lib;pjsip_simple.lib;pjmedia.lib;pjmedia_codec.lib;pjsip_ua.lib;pjsua2_lib.lib;pjsua_lib.lib;portaudio.lib;swresampled.lib;swscaled.lib;lib_json.lib;Strmiids.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalLibraryDirectories>..\..\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> <AdditionalOptions>/VERBOSE:LIB /NODEFAULTLIB:libcmtd /NODEFAULTLIB:libcmt /OPT:NOLBR /OPT:NOICF /ignore:4099 /ignore:4049 /ignore:4217 /INCREMENTAL /LTCG:OFF /FORCE:MULTIPLE</AdditionalOptions> <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration> @@ -309,7 +309,7 @@ </Command> </PreBuildEvent> <Lib> - <AdditionalDependencies>ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;avcodecd.lib;avdeviced.lib;avfilterd.lib;avformatd.lib;avutild.lib;ixml.lib;libaacs.lib;libavutil.lib;libbaseclasses.lib;libgcrypt.lib;libgmp.lib;libgpg-error.lib;libgtest.lib;libhogweed.lib;libiconv.lib;libilbccodec.lib;libmilenage.lib;libnettle.lib;libogg.lib;liboggd.lib;libpjproject.lib;libresample.lib;libsamplerate.lib;libsndfile.lib;libspeex.lib;libspeexdsp.lib;libsrtp.lib;libupnp.lib;libuuid.lib;libvorbis.lib;libvpx.lib;libx264.lib;libx265.lib;libx265_10b.lib;libx265_12b.lib;libyaml-cpp.lib;libzlib.lib;msgpack.lib;opendht.lib;opus.lib;pcred.lib;portaudio.lib;pjlib.lib;pjlib_util.lib;pjnath.lib;pjsip_core.lib;pjsip_simple.lib;pjmedia.lib;pjmedia_codec.lib;pjsip_ua.lib;pjsua2_lib.lib;pjsua_lib.lib;swresampled.lib;swscaled.lib;lib_json.lib;Strmiids.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;avcodecd.lib;avdeviced.lib;avfilterd.lib;avformatd.lib;avutild.lib;ixml.lib;libaacs.lib;libavutil.lib;libbaseclasses.lib;libgcrypt.lib;libgmp.lib;libgpg-error.lib;libgtest.lib;libhogweed.lib;libiconv.lib;libilbccodec.lib;libmilenage.lib;libnettle.lib;libogg.lib;liboggd.lib;libpjproject.lib;libresample.lib;libsamplerate.lib;libspeex.lib;libspeexdsp.lib;libsrtp.lib;libupnp.lib;libuuid.lib;libvorbis.lib;libvpx.lib;libx264.lib;libx265.lib;libx265_10b.lib;libx265_12b.lib;libyaml-cpp.lib;libzlib.lib;msgpack.lib;opendht.lib;opus.lib;pcred.lib;portaudio.lib;pjlib.lib;pjlib_util.lib;pjnath.lib;pjsip_core.lib;pjsip_simple.lib;pjmedia.lib;pjmedia_codec.lib;pjsip_ua.lib;pjsua2_lib.lib;pjsua_lib.lib;swresampled.lib;swscaled.lib;lib_json.lib;Strmiids.lib;%(AdditionalDependencies)</AdditionalDependencies> </Lib> <Lib> <AdditionalLibraryDirectories>..\contrib\lib\x86;</AdditionalLibraryDirectories> @@ -337,7 +337,7 @@ <UseFullPaths>false</UseFullPaths> </ClCompile> <Link> - <AdditionalDependencies>ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;avcodecd.lib;avdeviced.lib;avfilterd.lib;avformatd.lib;avutild.lib;libpjproject.lib;libsamplerate.lib;libsndfile.lib;libupnp.lib;libyaml-cpp.lib;opendht.lib;pcred.lib;pjlib.lib;pjlib_util.lib;pjnath.lib;pjsip_core.lib;pjsip_simple.lib;pjmedia.lib;pjmedia_codec.lib;pjsip_ua.lib;pjsua2_lib.lib;pjsua_lib.lib;portaudio.lib;swresampled.lib;swscaled.lib;lib_json.lib;Strmiids.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;avcodecd.lib;avdeviced.lib;avfilterd.lib;avformatd.lib;avutild.lib;libpjproject.lib;libsamplerate.lib;libupnp.lib;libyaml-cpp.lib;opendht.lib;pcred.lib;pjlib.lib;pjlib_util.lib;pjnath.lib;pjsip_core.lib;pjsip_simple.lib;pjmedia.lib;pjmedia_codec.lib;pjsip_ua.lib;pjsua2_lib.lib;pjsua_lib.lib;portaudio.lib;swresampled.lib;swscaled.lib;lib_json.lib;Strmiids.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalLibraryDirectories>..\..\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> <AdditionalOptions>/VERBOSE:LIB /NODEFAULTLIB:libcmtd /NODEFAULTLIB:libcmt /OPT:NOLBR /OPT:NOICF /ignore:4099 /ignore:4049 /ignore:4217 /INCREMENTAL /LTCG:OFF /FORCE:MULTIPLE</AdditionalOptions> <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration> @@ -352,7 +352,7 @@ </Command> </PreBuildEvent> <Lib> - <AdditionalDependencies>ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;avcodecd.lib;avdeviced.lib;avfilterd.lib;avformatd.lib;avutild.lib;ixml.lib;libaacs.lib;libavutil.lib;libbaseclasses.lib;libgcrypt.lib;libgmp.lib;libgpg-error.lib;libgsmcodec.lib;libgtest.lib;libhogweed.lib;libiconv.lib;libilbccodec.lib;libmilenage.lib;libnettle.lib;libogg.lib;liboggd.lib;libpjproject.lib;libresample.lib;libsamplerate.lib;libsndfile.lib;libspeex.lib;libspeexdsp.lib;libsrtp.lib;libupnp.lib;libuuid.lib;libvorbis.lib;libvpx.lib;libx264.lib;libx265.lib;libx265_10b.lib;libx265_12b.lib;libyaml-cpp.lib;libzlib.lib;msgpack.lib;opendht.lib;opus.lib;pcred.lib;portaudio.lib;pjlib.lib;pjlib_util.lib;pjnath.lib;pjsip_core.lib;pjsip_simple.lib;pjmedia.lib;pjmedia_codec.lib;pjsip_ua.lib;pjsua2_lib.lib;pjsua_lib.lib;swresampled.lib;swscaled.lib;lib_json.lib;Strmiids.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;avcodecd.lib;avdeviced.lib;avfilterd.lib;avformatd.lib;avutild.lib;ixml.lib;libaacs.lib;libavutil.lib;libbaseclasses.lib;libgcrypt.lib;libgmp.lib;libgpg-error.lib;libgsmcodec.lib;libgtest.lib;libhogweed.lib;libiconv.lib;libilbccodec.lib;libmilenage.lib;libnettle.lib;libogg.lib;liboggd.lib;libpjproject.lib;libresample.lib;libsamplerate.lib;libspeex.lib;libspeexdsp.lib;libsrtp.lib;libupnp.lib;libuuid.lib;libvorbis.lib;libvpx.lib;libx264.lib;libx265.lib;libx265_10b.lib;libx265_12b.lib;libyaml-cpp.lib;libzlib.lib;msgpack.lib;opendht.lib;opus.lib;pcred.lib;portaudio.lib;pjlib.lib;pjlib_util.lib;pjnath.lib;pjsip_core.lib;pjsip_simple.lib;pjmedia.lib;pjmedia_codec.lib;pjsip_ua.lib;pjsua2_lib.lib;pjsua_lib.lib;swresampled.lib;swscaled.lib;lib_json.lib;Strmiids.lib;%(AdditionalDependencies)</AdditionalDependencies> </Lib> <Lib> <AdditionalLibraryDirectories>..\contrib\lib\x86;</AdditionalLibraryDirectories> @@ -373,7 +373,7 @@ </ClCompile> <Link> <AdditionalLibraryDirectories>$(ProjectDir)..\contrib\build\ffmpeg\Build\Windows10\x64\bin;$(ProjectDir)..\contrib\msvc\lib\x64;$(ProjectDir)..\contrib\build\boost\stage\lib;$(ProjectDir)..\contrib\build\pjproject\pjsip\lib;$(ProjectDir)..\contrib\build\pjproject\pjmedia\lib;$(ProjectDir)..\contrib\build\pjproject\pjlib-util\lib;$(ProjectDir)..\contrib\build\pjproject\third_party\lib;$(ProjectDir)..\contrib\build\pjproject\pjlib\lib;$(ProjectDir)..\contrib\build\pjproject\pjnath\lib;$(ProjectDir)..\contrib\build\restbed\build\Release;$(ProjectDir)..\contrib\build\restbed\dependency\openssl\out32dll;$(ProjectDir)..\contrib\build\jsoncpp\makefiles\vs2017\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> - <AdditionalDependencies>ws2_32.lib;Strmiids.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avresample.lib;avutil.lib;ixml.lib;libaacsd.lib;libavutil.lib;libavutild.lib;libbaseclasses.lib;libgcryptd.lib;libgmp.lib;libgmpd.lib;libgpg-errord.lib;libgtest.lib;libhogweed.lib;libiconv.lib;libiconvd.lib;libilbccodec.lib;libmilenage.lib;libnettle.lib;libogg.lib;liboggd.lib;libpjproject.lib;libportaudio.lib;libresample.lib;libsamplerate.lib;libsndfile.lib;libspeex.lib;libspeexd.lib;libspeexdsp.lib;libsrtp.lib;libupnp.lib;libuuid.lib;libvorbis.lib;libvorbisd.lib;libvpx.lib;libvpxd.lib;libx264d.lib;libx265d.lib;libx265_10bd.lib;libx265_12bd.lib;libyaml-cppmdd.lib;libzlib.lib;msgpack.lib;opendht.lib;opus.lib;pcred.lib;pjlib-util.lib;pjlib.lib;pjmedia-audiodev.lib;pjmedia-codec.lib;pjmedia-videodev.lib;pjmedia.lib;pjnath.lib;pjsip-core.lib;pjsip-simple.lib;pjsip-ua.lib;pjsua-lib.lib;pjsua2-lib.lib;portaudio_x86.lib;swresample.lib;swscale.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;Strmiids.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avresample.lib;avutil.lib;ixml.lib;libaacsd.lib;libavutil.lib;libavutild.lib;libbaseclasses.lib;libgcryptd.lib;libgmp.lib;libgmpd.lib;libgpg-errord.lib;libgtest.lib;libhogweed.lib;libiconv.lib;libiconvd.lib;libilbccodec.lib;libmilenage.lib;libnettle.lib;libogg.lib;liboggd.lib;libpjproject.lib;libportaudio.lib;libresample.lib;libsamplerate.lib;libspeex.lib;libspeexd.lib;libspeexdsp.lib;libsrtp.lib;libupnp.lib;libuuid.lib;libvorbis.lib;libvorbisd.lib;libvpx.lib;libvpxd.lib;libx264d.lib;libx265d.lib;libx265_10bd.lib;libx265_12bd.lib;libyaml-cppmdd.lib;libzlib.lib;msgpack.lib;opendht.lib;opus.lib;pcred.lib;pjlib-util.lib;pjlib.lib;pjmedia-audiodev.lib;pjmedia-codec.lib;pjmedia-videodev.lib;pjmedia.lib;pjnath.lib;pjsip-core.lib;pjsip-simple.lib;pjsip-ua.lib;pjsua-lib.lib;pjsua2-lib.lib;portaudio_x86.lib;swresample.lib;swscale.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalOptions>/VERBOSE:LIB /NODEFAULTLIB:libcmtd /NODEFAULTLIB:libcmt /OPT:NOLBR /OPT:NOICF /ignore:4099 /ignore:4049 /ignore:4217 /INCREMENTAL /LTCG:OFF</AdditionalOptions> <TargetMachine>MachineX86</TargetMachine> <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration> @@ -400,7 +400,7 @@ </ClCompile> <Link> <AdditionalLibraryDirectories>..\..\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> - <AdditionalDependencies>ws2_32.lib;Strmiids.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avresample.lib;avutil.lib;ixml.lib;libaacsd.lib;libavutil.lib;libavutild.lib;libbaseclasses.lib;libgcryptd.lib;libgmp.lib;libgmpd.lib;libgpg-errord.lib;libgtest.lib;libhogweed.lib;libiconv.lib;libiconvd.lib;libilbccodec.lib;libmilenage.lib;libnettle.lib;libogg.lib;liboggd.lib;libpjproject.lib;libportaudio.lib;libresample.lib;libsamplerate.lib;libsndfile.lib;libspeex.lib;libspeexd.lib;libspeexdsp.lib;libsrtp.lib;libupnp.lib;libuuid.lib;libvorbis.lib;libvorbisd.lib;libvpx.lib;libvpxd.lib;libx264d.lib;libx265d.lib;libx265_10bd.lib;libx265_12bd.lib;libyaml-cppmdd.lib;libzlib.lib;msgpack.lib;opendht.lib;opus.lib;pcred.lib;pjlib-util.lib;pjlib.lib;pjmedia-audiodev.lib;pjmedia-codec.lib;pjmedia-videodev.lib;pjmedia.lib;pjnath.lib;pjsip-core.lib;pjsip-simple.lib;pjsip-ua.lib;pjsua-lib.lib;pjsua2-lib.lib;portaudio_x86.lib;swresample.lib;swscale.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;Strmiids.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avresample.lib;avutil.lib;ixml.lib;libaacsd.lib;libavutil.lib;libavutild.lib;libbaseclasses.lib;libgcryptd.lib;libgmp.lib;libgmpd.lib;libgpg-errord.lib;libgtest.lib;libhogweed.lib;libiconv.lib;libiconvd.lib;libilbccodec.lib;libmilenage.lib;libnettle.lib;libogg.lib;liboggd.lib;libpjproject.lib;libportaudio.lib;libresample.lib;libsamplerate.lib;libspeex.lib;libspeexd.lib;libspeexdsp.lib;libsrtp.lib;libupnp.lib;libuuid.lib;libvorbis.lib;libvorbisd.lib;libvpx.lib;libvpxd.lib;libx264d.lib;libx265d.lib;libx265_10bd.lib;libx265_12bd.lib;libyaml-cppmdd.lib;libzlib.lib;msgpack.lib;opendht.lib;opus.lib;pcred.lib;pjlib-util.lib;pjlib.lib;pjmedia-audiodev.lib;pjmedia-codec.lib;pjmedia-videodev.lib;pjmedia.lib;pjnath.lib;pjsip-core.lib;pjsip-simple.lib;pjsip-ua.lib;pjsua-lib.lib;pjsua2-lib.lib;portaudio_x86.lib;swresample.lib;swscale.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalOptions>/VERBOSE:LIB /NODEFAULTLIB:libcmtd /NODEFAULTLIB:libcmt /OPT:NOLBR /OPT:NOICF /ignore:4099 /ignore:4049 /ignore:4217 /INCREMENTAL /LTCG:OFF</AdditionalOptions> <TargetMachine>MachineX86</TargetMachine> <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration> @@ -410,7 +410,7 @@ <LinkLibraryDependencies>false</LinkLibraryDependencies> </ProjectReference> <Lib> - <AdditionalDependencies>ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;avcodecd.lib;avdeviced.lib;avfilterd.lib;avformatd.lib;avutild.lib;ixml.lib;libaacs.lib;libavutil.lib;libbaseclasses.lib;libgcrypt.lib;libgmp.lib;libgpg-error.lib;libgtest.lib;libhogweed.lib;libiconv.lib;libilbccodec.lib;libmilenage.lib;libnettle.lib;libogg.lib;liboggd.lib;libpjproject.lib;libresample.lib;libsamplerate.lib;libsndfile.lib;libspeex.lib;libspeexdsp.lib;libsrtp.lib;libupnp.lib;libuuid.lib;libvorbis.lib;libvpx.lib;libx264.lib;libx265.lib;libx265_10b.lib;libx265_12b.lib;libyaml-cpp.lib;libzlib.lib;msgpack.lib;opendht.lib;opus.lib;pcred.lib;portaudio.lib;pjlib.lib;pjlib_util.lib;pjnath.lib;pjsip_core.lib;pjsip_simple.lib;pjmedia.lib;pjmedia_codec.lib;pjsip_ua.lib;pjsua2_lib.lib;pjsua_lib.lib;swresampled.lib;swscaled.lib;lib_json.lib;Strmiids.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;avcodecd.lib;avdeviced.lib;avfilterd.lib;avformatd.lib;avutild.lib;ixml.lib;libaacs.lib;libavutil.lib;libbaseclasses.lib;libgcrypt.lib;libgmp.lib;libgpg-error.lib;libgtest.lib;libhogweed.lib;libiconv.lib;libilbccodec.lib;libmilenage.lib;libnettle.lib;libogg.lib;liboggd.lib;libpjproject.lib;libresample.lib;libsamplerate.lib;libspeex.lib;libspeexdsp.lib;libsrtp.lib;libupnp.lib;libuuid.lib;libvorbis.lib;libvpx.lib;libx264.lib;libx265.lib;libx265_10b.lib;libx265_12b.lib;libyaml-cpp.lib;libzlib.lib;msgpack.lib;opendht.lib;opus.lib;pcred.lib;portaudio.lib;pjlib.lib;pjlib_util.lib;pjnath.lib;pjsip_core.lib;pjsip_simple.lib;pjmedia.lib;pjmedia_codec.lib;pjsip_ua.lib;pjsua2_lib.lib;pjsua_lib.lib;swresampled.lib;swscaled.lib;lib_json.lib;Strmiids.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalLibraryDirectories>$(ProjectDir)..\contrib\build\ffmpeg\Build\Windows10\x64\bin;$(ProjectDir)..\contrib\msvc\lib\x64;$(ProjectDir)..\contrib\build\boost\stage\lib;$(ProjectDir)..\contrib\build\pjproject\pjsip\lib;$(ProjectDir)..\contrib\build\pjproject\pjmedia\lib;$(ProjectDir)..\contrib\build\pjproject\pjlib-util\lib;$(ProjectDir)..\contrib\build\pjproject\third_party\lib;$(ProjectDir)..\contrib\build\pjproject\pjlib\lib;$(ProjectDir)..\contrib\build\pjproject\pjnath\lib;$(ProjectDir)..\contrib\build\restbed\build\Release;$(ProjectDir)..\contrib\build\restbed\dependency\openssl\out32dll;$(ProjectDir)..\contrib\build\argon2\vs2015\Argon2Ref\vs2015\build;$(ProjectDir)..\contrib\build\pcre\msvc\Release;$(ProjectDir)..\contrib\build\yaml-cpp\msvc\Release</AdditionalLibraryDirectories> <AdditionalOptions>/ignore:4006 /ignore:4221 %(AdditionalOptions)</AdditionalOptions> </Lib> @@ -432,7 +432,7 @@ </ClCompile> <Link> <AdditionalLibraryDirectories>..\..\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> - <AdditionalDependencies>ws2_32.lib;Strmiids.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avresample.lib;avutil.lib;ixml.lib;libaacsd.lib;libavutil.lib;libavutild.lib;libbaseclasses.lib;libgcryptd.lib;libgmp.lib;libgmpd.lib;libgpg-errord.lib;libgsmcodec.lib;libgtest.lib;libhogweed.lib;libiconv.lib;libiconvd.lib;libilbccodec.lib;libmilenage.lib;libnettle.lib;libogg.lib;liboggd.lib;libpjproject.lib;libportaudio.lib;libresample.lib;libsamplerate.lib;libsndfile.lib;libspeex.lib;libspeexd.lib;libspeexdsp.lib;libsrtp.lib;libupnp.lib;libuuid.lib;libvorbis.lib;libvorbisd.lib;libvpx.lib;libvpxd.lib;libx264d.lib;libx265d.lib;libx265_10bd.lib;libx265_12bd.lib;libyaml-cppmdd.lib;libzlib.lib;msgpack.lib;opendht.lib;opus.lib;pcred.lib;pjlib-util.lib;pjlib.lib;pjmedia-audiodev.lib;pjmedia-codec.lib;pjmedia-videodev.lib;pjmedia.lib;pjnath.lib;pjsip-core.lib;pjsip-simple.lib;pjsip-ua.lib;pjsua-lib.lib;pjsua2-lib.lib;portaudio_x86.lib;swresample.lib;swscale.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;Strmiids.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avresample.lib;avutil.lib;ixml.lib;libaacsd.lib;libavutil.lib;libavutild.lib;libbaseclasses.lib;libgcryptd.lib;libgmp.lib;libgmpd.lib;libgpg-errord.lib;libgsmcodec.lib;libgtest.lib;libhogweed.lib;libiconv.lib;libiconvd.lib;libilbccodec.lib;libmilenage.lib;libnettle.lib;libogg.lib;liboggd.lib;libpjproject.lib;libportaudio.lib;libresample.lib;libsamplerate.lib;libspeex.lib;libspeexd.lib;libspeexdsp.lib;libsrtp.lib;libupnp.lib;libuuid.lib;libvorbis.lib;libvorbisd.lib;libvpx.lib;libvpxd.lib;libx264d.lib;libx265d.lib;libx265_10bd.lib;libx265_12bd.lib;libyaml-cppmdd.lib;libzlib.lib;msgpack.lib;opendht.lib;opus.lib;pcred.lib;pjlib-util.lib;pjlib.lib;pjmedia-audiodev.lib;pjmedia-codec.lib;pjmedia-videodev.lib;pjmedia.lib;pjnath.lib;pjsip-core.lib;pjsip-simple.lib;pjsip-ua.lib;pjsua-lib.lib;pjsua2-lib.lib;portaudio_x86.lib;swresample.lib;swscale.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalOptions>/VERBOSE:LIB /NODEFAULTLIB:libcmtd /NODEFAULTLIB:libcmt /OPT:NOLBR /OPT:NOICF /ignore:4099 /ignore:4049 /ignore:4217 /INCREMENTAL /LTCG:OFF</AdditionalOptions> <TargetMachine>MachineX86</TargetMachine> <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration> @@ -473,7 +473,7 @@ <Link> <EnableCOMDATFolding>true</EnableCOMDATFolding> <OptimizeReferences>true</OptimizeReferences> - <AdditionalDependencies>ws2_32.lib;iphlpapi.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;Strmiids.lib;libavcodec.lib;libavdevice.lib;libavfilter.lib;libavformat.lib;libavutil.lib;libswresample.lib;libswscale.lib;libsamplerate.lib;libsndfile.lib;libgnutls.lib;lib_json.lib;opendht.lib;argon.lib;blake.lib;pcre.lib;pjlib.lib;pjlib_util.lib;pjmedia.lib;pjmedia_codec.lib;pjnath.lib;pjsip_core.lib;pjsip_simple.lib;pjsip_ua.lib;pjsua2_lib.lib;pjsua_lib.lib;yaml-cpp.lib;libupnp.lib;pthreadVC2.lib;portaudio.lib;libspeex-pj.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;iphlpapi.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;Strmiids.lib;libavcodec.lib;libavdevice.lib;libavfilter.lib;libavformat.lib;libavutil.lib;libswresample.lib;libswscale.lib;libsamplerate.lib;libgnutls.lib;lib_json.lib;opendht.lib;argon.lib;blake.lib;pcre.lib;pjlib.lib;pjlib_util.lib;pjmedia.lib;pjmedia_codec.lib;pjnath.lib;pjsip_core.lib;pjsip_simple.lib;pjsip_ua.lib;pjsua2_lib.lib;pjsua_lib.lib;yaml-cpp.lib;libupnp.lib;pthreadVC2.lib;portaudio.lib;libspeex-pj.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalLibraryDirectories>..\..\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> <AdditionalOptions>/VERBOSE:LIB /NODEFAULTLIB:libcmtd /NODEFAULTLIB:libcmt /OPT:NOLBR /OPT:NOICF %(AdditionalOptions)</AdditionalOptions> <LinkTimeCodeGeneration>UseFastLinkTimeCodeGeneration</LinkTimeCodeGeneration> @@ -524,7 +524,7 @@ </Command> </PreBuildEvent> <Lib> - <AdditionalDependencies>ws2_32.lib;iphlpapi.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;Strmiids.lib;libavcodec.lib;libavdevice.lib;libavfilter.lib;libavformat.lib;libavutil.lib;libswresample.lib;libswscale.lib;libsamplerate.lib;libsndfile.lib;libgnutls.lib;lib_json.lib;opendht.lib;argon.lib;blake.lib;pcre.lib;pjlib.lib;pjlib_util.lib;pjmedia.lib;pjmedia_codec.lib;pjnath.lib;pjsip_core.lib;pjsip_simple.lib;pjsip_ua.lib;pjsua2_lib.lib;pjsua_lib.lib;yaml-cpp.lib;libupnp.lib;pthreadVC2.lib;portaudio.lib;libspeex-pj.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;iphlpapi.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;Strmiids.lib;libavcodec.lib;libavdevice.lib;libavfilter.lib;libavformat.lib;libavutil.lib;libswresample.lib;libswscale.lib;libsamplerate.lib;libgnutls.lib;lib_json.lib;opendht.lib;argon.lib;blake.lib;pcre.lib;pjlib.lib;pjlib_util.lib;pjmedia.lib;pjmedia_codec.lib;pjnath.lib;pjsip_core.lib;pjsip_simple.lib;pjsip_ua.lib;pjsua2_lib.lib;pjsua_lib.lib;yaml-cpp.lib;libupnp.lib;pthreadVC2.lib;portaudio.lib;libspeex-pj.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalLibraryDirectories>..\contrib\lib\x86;</AdditionalLibraryDirectories> <AdditionalOptions>/ignore:4006 /ignore:4221 /VERBOSE:LIB /NODEFAULTLIB:libcmt /LTCG:OFF %(AdditionalOptions)</AdditionalOptions> </Lib> @@ -566,7 +566,7 @@ </Command> </PreBuildEvent> <Lib> - <AdditionalDependencies>ws2_32.lib;iphlpapi.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;Strmiids.lib;libavcodec.lib;libavdevice.lib;libavfilter.lib;libavformat.lib;libavutil.lib;libswresample.lib;libswscale.lib;libsamplerate.lib;libsndfile.lib;libgnutls.lib;lib_json.lib;opendht.lib;argon.lib;blake.lib;pcre.lib;pjlib.lib;pjlib_util.lib;pjmedia.lib;pjmedia_codec.lib;pjnath.lib;pjsip_core.lib;pjsip_simple.lib;pjsip_ua.lib;pjsua2_lib.lib;pjsua_lib.lib;yaml-cpp.lib;libupnp.lib;pthreadVC2.lib;portaudio.lib;libspeex-pj.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;iphlpapi.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;Strmiids.lib;libavcodec.lib;libavdevice.lib;libavfilter.lib;libavformat.lib;libavutil.lib;libswresample.lib;libswscale.lib;libsamplerate.lib;libgnutls.lib;lib_json.lib;opendht.lib;argon.lib;blake.lib;pcre.lib;pjlib.lib;pjlib_util.lib;pjmedia.lib;pjmedia_codec.lib;pjnath.lib;pjsip_core.lib;pjsip_simple.lib;pjsip_ua.lib;pjsua2_lib.lib;pjsua_lib.lib;yaml-cpp.lib;libupnp.lib;pthreadVC2.lib;portaudio.lib;libspeex-pj.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalLibraryDirectories>..\contrib\lib\x86;</AdditionalLibraryDirectories> <AdditionalOptions>/ignore:4006 /ignore:4221 /VERBOSE:LIB /NODEFAULTLIB:libcmt /LTCG:OFF %(AdditionalOptions)</AdditionalOptions> </Lib> @@ -592,7 +592,7 @@ <EnableCOMDATFolding>true</EnableCOMDATFolding> <OptimizeReferences>true</OptimizeReferences> <AdditionalLibraryDirectories>$(ProjectDir)..\contrib\build\ffmpeg\Build\Windows10\x64\bin;$(ProjectDir)..\contrib\msvc\lib\x64;$(ProjectDir)..\contrib\build\boost\stage\lib;$(ProjectDir)..\contrib\build\pjproject\pjsip\lib;$(ProjectDir)..\contrib\build\pjproject\pjmedia\lib;$(ProjectDir)..\contrib\build\pjproject\pjlib-util\lib;$(ProjectDir)..\contrib\build\pjproject\third_party\lib;$(ProjectDir)..\contrib\build\pjproject\pjlib\lib;$(ProjectDir)..\contrib\build\pjproject\pjnath\lib;$(ProjectDir)..\contrib\build\restbed\build\Release;$(ProjectDir)..\contrib\build\restbed\dependency\openssl\out32dll;$(ProjectDir)..\contrib\build\jsoncpp\makefiles\vs2017\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> - <AdditionalDependencies>ws2_32.lib;iphlpapi.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;Strmiids.lib;libavcodec.lib;libavdevice.lib;libavfilter.lib;libavformat.lib;libavutil.lib;libswresample.lib;libswscale.lib;libsamplerate.lib;libsndfile.lib;libgnutls.lib;lib_json.lib;opendht.lib;Argon2Ref.lib;pcre.lib;pjlib.lib;pjlib_util.lib;pjmedia.lib;pjmedia_codec.lib;pjnath.lib;pjsip_core.lib;pjsip_simple.lib;pjsip_ua.lib;pjsua2_lib.lib;pjsua_lib.lib;yaml-cpp.lib;libupnp.lib;pthreadVC2.lib;portaudio.lib;libspeex-pj.lib;secp256k1.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;iphlpapi.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;Strmiids.lib;libavcodec.lib;libavdevice.lib;libavfilter.lib;libavformat.lib;libavutil.lib;libswresample.lib;libswscale.lib;libsamplerate.lib;libgnutls.lib;lib_json.lib;opendht.lib;Argon2Ref.lib;pcre.lib;pjlib.lib;pjlib_util.lib;pjmedia.lib;pjmedia_codec.lib;pjnath.lib;pjsip_core.lib;pjsip_simple.lib;pjsip_ua.lib;pjsua2_lib.lib;pjsua_lib.lib;yaml-cpp.lib;libupnp.lib;pthreadVC2.lib;portaudio.lib;libspeex-pj.lib;secp256k1.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalOptions>/VERBOSE:LIB /NODEFAULTLIB:libcmtd /NODEFAULTLIB:libcmt /OPT:NOLBR /OPT:NOICF /ignore:4006 %(AdditionalOptions)</AdditionalOptions> <TargetMachine>MachineX64</TargetMachine> <LinkTimeCodeGeneration>UseFastLinkTimeCodeGeneration</LinkTimeCodeGeneration> @@ -685,7 +685,7 @@ </Command> </PreBuildEvent> <Lib> - <AdditionalDependencies>ws2_32.lib;iphlpapi.lib;advapi32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;swresample.lib;swscale.lib;libsamplerate.lib;libgnutls.lib;lib_json.lib;libopendht.lib;Argon2Ref.lib;pcre.lib;secp256k1.lib;libyaml-cppmd.lib;portaudio.lib;libupnp.lib;pjsip-core-x86_64-x64-vc15-Release.lib;pjsip-simple-x86_64-x64-vc15-Release.lib;pjsua2-lib-x86_64-x64-vc15-Release.lib;pjsua-lib-x86_64-x64-vc15-Release.lib;pjsip-ua-x86_64-x64-vc15-Release.lib;pjmedia-x86_64-x64-vc15-Release.lib;pjlib-util-x86_64-x64-vc15-Release.lib;pjlib-x86_64-x64-vc15-Release.lib;pjnath-x86_64-x64-vc15-Release.lib;restbed.lib;libeay32.lib;ssleay32.lib;libsndfile.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>ws2_32.lib;iphlpapi.lib;advapi32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;swresample.lib;swscale.lib;libsamplerate.lib;libgnutls.lib;lib_json.lib;libopendht.lib;Argon2Ref.lib;pcre.lib;secp256k1.lib;libyaml-cppmd.lib;portaudio.lib;libupnp.lib;pjsip-core-x86_64-x64-vc15-Release.lib;pjsip-simple-x86_64-x64-vc15-Release.lib;pjsua2-lib-x86_64-x64-vc15-Release.lib;pjsua-lib-x86_64-x64-vc15-Release.lib;pjsip-ua-x86_64-x64-vc15-Release.lib;pjmedia-x86_64-x64-vc15-Release.lib;pjlib-util-x86_64-x64-vc15-Release.lib;pjlib-x86_64-x64-vc15-Release.lib;pjnath-x86_64-x64-vc15-Release.lib;restbed.lib;libeay32.lib;ssleay32.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalLibraryDirectories>$(ProjectDir)..\contrib\build\ffmpeg\Build\win32\x64\bin;$(ProjectDir)..\contrib\msvc\lib\x64;$(ProjectDir)..\contrib\build\boost\stage\lib;$(ProjectDir)..\contrib\build\pjproject\pjsip\lib;$(ProjectDir)..\contrib\build\pjproject\pjmedia\lib;$(ProjectDir)..\contrib\build\pjproject\pjlib-util\lib;$(ProjectDir)..\contrib\build\pjproject\third_party\lib;$(ProjectDir)..\contrib\build\pjproject\pjlib\lib;$(ProjectDir)..\contrib\build\pjproject\pjnath\lib;$(ProjectDir)..\contrib\build\restbed\build\Release;$(ProjectDir)..\contrib\build\restbed\dependency\openssl\out32dll;$(ProjectDir)..\contrib\build\argon2\vs2015\Argon2Ref\vs2015\build;$(ProjectDir)..\contrib\build\pcre\msvc\Release;$(ProjectDir)..\contrib\build\yaml-cpp\msvc\Release;$(ProjectDir)..\contrib\build\sndfile\msvc\x64\Release</AdditionalLibraryDirectories> <AdditionalOptions>/ignore:4006 /ignore:4221 %(AdditionalOptions)</AdditionalOptions> <LinkTimeCodeGeneration>true</LinkTimeCodeGeneration> @@ -721,8 +721,6 @@ <ClCompile Include="..\src\media\audio\audiobuffer.cpp" /> <ClCompile Include="..\src\media\audio\audiolayer.cpp" /> <ClCompile Include="..\src\media\audio\audioloop.cpp" /> - <ClCompile Include="..\src\media\audio\audiorecord.cpp" /> - <ClCompile Include="..\src\media\audio\audiorecorder.cpp" /> <ClCompile Include="..\src\media\audio\audio_rtp_session.cpp" /> <ClCompile Include="..\src\media\audio\dcblocker.cpp" /> <ClCompile Include="..\src\media\audio\dsp.cpp"> @@ -876,8 +874,6 @@ <ClInclude Include="..\src\media\audio\audiobuffer.h" /> <ClInclude Include="..\src\media\audio\audiolayer.h" /> <ClInclude Include="..\src\media\audio\audioloop.h" /> - <ClInclude Include="..\src\media\audio\audiorecord.h" /> - <ClInclude Include="..\src\media\audio\audiorecorder.h" /> <ClInclude Include="..\src\media\audio\audio_rtp_session.h" /> <ClInclude Include="..\src\media\audio\dcblocker.h" /> <ClInclude Include="..\src\media\audio\dsp.h"> diff --git a/configure.ac b/configure.ac index 7430c590816a1293eb7ed3fcc1a579f2ad635979..5e6bca434027409290ad216c979847dee5a640c9 100644 --- a/configure.ac +++ b/configure.ac @@ -355,9 +355,6 @@ dnl Check for the samplerate development package - name: libsamplerate0-dev LIBSAMPLERATE_MIN_VERSION=0.1.2 PKG_CHECK_MODULES(SAMPLERATE, samplerate >= ${LIBSAMPLERATE_MIN_VERSION},, AC_MSG_ERROR([Missing libsamplerate development files])) -dnl Check for the sndfile development package - name: libsndfile-dev -PKG_CHECK_MODULES(SNDFILE, sndfile,, AC_MSG_ERROR([Missing sndfile development files])) - dnl Coverage is default-disabled AC_ARG_ENABLE([coverage], AS_HELP_STRING([--enable-coverage], [Enable coverage])) diff --git a/contrib/build_all.bat b/contrib/build_all.bat index 2fb8acd0e17a2b12de4c44536d014eaaedc97664..37f496bf0ffc4daa1895a6cad47c6c7cd75f81a0 100644 --- a/contrib/build_all.bat +++ b/contrib/build_all.bat @@ -115,7 +115,6 @@ build\portaudio\msvc\portaudio.vcxproj, ^ build\yaml-cpp\msvc\yaml-cpp.vcxproj, ^ build\pcre\msvc\pcre.vcxproj, ^ build\libsamplerate\msvc\libsamplerate.vcxproj, ^ -build\sndfile\msvc\libsndfile.vcxproj, ^ ) goto startBuild diff --git a/contrib/src/fetch_all.bat b/contrib/src/fetch_all.bat index 1d774a2aff2af92ab0c4f761c2f8365fbfbb0be6..c2e718ef7dac00d884345d9fee3c4b53f30fb38c 100644 --- a/contrib/src/fetch_all.bat +++ b/contrib/src/fetch_all.bat @@ -65,7 +65,6 @@ pthreads, ^ restbed, ^ samplerate, ^ secp256k1, ^ -sndfile, ^ upnp, ^ vpx, ^ x264, ^ diff --git a/contrib/src/sndfile/SHA512SUMS b/contrib/src/sndfile/SHA512SUMS deleted file mode 100644 index ad45e4bd6dd04fbcac5a980ad97ff1163bbf3224..0000000000000000000000000000000000000000 --- a/contrib/src/sndfile/SHA512SUMS +++ /dev/null @@ -1 +0,0 @@ -4ca9780ed0a915aca8a10ef91bf4bf48b05ecb85285c2c3fe7eef1d46d3e0747e61416b6bddbef369bd69adf4b796ff5f61380e0bc998906b170a93341ba6f78 libsndfile-1.0.25.tar.gz diff --git a/contrib/src/sndfile/autotools.patch b/contrib/src/sndfile/autotools.patch deleted file mode 100644 index ef93ccaeb4ab1b3fd7142b958a88abaa3f091414..0000000000000000000000000000000000000000 --- a/contrib/src/sndfile/autotools.patch +++ /dev/null @@ -1,35 +0,0 @@ -From ca790066b639ea570067afb3cb2a36c9e3383ae8 Mon Sep 17 00:00:00 2001 -From: Erik de Castro Lopo <erikd@mega-nerd.com> -Date: Sat, 13 Jul 2013 17:04:45 +1000 -Subject: [PATCH] configure.ac : Fix for current versions of autotools. - -Patch from Cristian Rodriguez. ---- - configure.ac | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git a/configure.ac b/configure.ac -index bef0c18..3b32cb7 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -20,7 +20,8 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) - - AC_LANG([C]) - --AC_PROG_CC -+AC_PROG_CC_STDC -+AC_USE_SYSTEM_EXTENSIONS - AM_PROG_CC_C_O - AC_PROG_CXX - AC_PROG_SED -@@ -331,8 +332,8 @@ if test -n "$PKG_CONFIG" ; then - HAVE_EXTERNAL_LIBS=1 - enable_external_libs=yes - -- EXTERNAL_CFLAGS="$FLAC_CFLAGS $OGG_CFLAGS $VORBISENC_CFLAGS $SPEEX_CFLAGS" -- EXTERNAL_LIBS="$FLAC_LIBS $VORBISENC_LIBS $SPEEX_LIBS" -+ EXTERNAL_CFLAGS="$FLAC_CFLAGS $OGG_CFLAGS $VORBIS_CFLAGS $VORBISENC_CFLAGS $SPEEX_CFLAGS" -+ EXTERNAL_LIBS="$FLAC_LIBS $OGG_LIBS $VORBIS_LIBS $VORBISENC_LIBS $SPEEX_LIBS " - else - echo - AC_MSG_WARN([[*** One or more of the external libraries (ie libflac, libogg and]]) diff --git a/contrib/src/sndfile/carbon.patch b/contrib/src/sndfile/carbon.patch deleted file mode 100644 index 22d89bae541c95afc8feb79da094804b8eed8cab..0000000000000000000000000000000000000000 --- a/contrib/src/sndfile/carbon.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/programs/sndfile-play.c.orig 2014-06-26 18:33:49.000000000 -0400 -+++ b/programs/sndfile-play.c 2014-06-26 18:33:52.000000000 -0400 -@@ -63,7 +63,6 @@ - #include <sys/soundcard.h> - - #elif (defined (__MACH__) && defined (__APPLE__)) -- #include <Carbon.h> - #include <CoreAudio/AudioHardware.h> - - #elif defined (HAVE_SNDIO_H) diff --git a/contrib/src/sndfile/disable_programs.patch b/contrib/src/sndfile/disable_programs.patch deleted file mode 100644 index ea06b971de2ce2199fb8449c0c95fe3600090356..0000000000000000000000000000000000000000 --- a/contrib/src/sndfile/disable_programs.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/Makefile.am 2016-05-30 11:59:21.000000000 -0400 -+++ b/Makefile.am 2016-05-30 11:59:28.000000000 -0400 -@@ -6,8 +6,8 @@ - octave_dir = Octave - endif - --SUBDIRS = M4 man doc Win32 src $(octave_dir) examples regtest tests programs --DIST_SUBDIRS = M4 man doc Win32 src Octave examples regtest tests programs -+SUBDIRS = M4 man doc Win32 src $(octave_dir) -+DIST_SUBDIRS = M4 man doc Win32 src Octave - - EXTRA_DIST = libsndfile.spec.in sndfile.pc.in diff --git a/contrib/src/sndfile/fetch_and_patch.bat b/contrib/src/sndfile/fetch_and_patch.bat deleted file mode 100644 index e66288095c40f95009cf11d5b68aecb8d768ff8d..0000000000000000000000000000000000000000 --- a/contrib/src/sndfile/fetch_and_patch.bat +++ /dev/null @@ -1,22 +0,0 @@ -set BUILD=%SRC%..\build - -set SNDFILE_VERSION=1.0.25 -set SNDFILE_URL=http://www.mega-nerd.com/libsndfile/files/libsndfile-%SNDFILE_VERSION%.tar.gz - -mkdir %BUILD% - -if %USE_CACHE%==1 ( - copy %CACHE_DIR%\libsndfile-%SNDFILE_URL%.tar.gz %cd% -) else ( - %WGET_CMD% %SNDFILE_URL% -) - -7z -y x libsndfile-%SNDFILE_VERSION%.tar.gz && 7z -y x libsndfile-%SNDFILE_VERSION%.tar -o%BUILD% -del libsndfile-%SNDFILE_VERSION%.tar && del libsndfile-%SNDFILE_VERSION%.tar.gz -rename %BUILD%\libsndfile-%SNDFILE_VERSION% sndfile - -cd %BUILD%\sndfile - -%APPLY_CMD% %SRC%\sndfile\sndfile-vs2017.patch - -cd %SRC% \ No newline at end of file diff --git a/contrib/src/sndfile/rules.mak b/contrib/src/sndfile/rules.mak deleted file mode 100644 index c92e8a079fd2413d1f316681af7a8a725f3d5261..0000000000000000000000000000000000000000 --- a/contrib/src/sndfile/rules.mak +++ /dev/null @@ -1,32 +0,0 @@ -# SNDFILE -SNDFILE_VERSION := 1.0.25 -SNDFILE_URL := http://www.mega-nerd.com/libsndfile/files/libsndfile-$(SNDFILE_VERSION).tar.gz - -PKGS += sndfile -ifeq ($(call need_pkg,"sndfile"),) -PKGS_FOUND += sndfile -endif - -DEPS_sndfile = ogg vorbis flac - -$(TARBALLS)/libsndfile-$(SNDFILE_VERSION).tar.gz: - $(call download,$(SNDFILE_URL)) - -.sum-sndfile: libsndfile-$(SNDFILE_VERSION).tar.gz - -sndfile: libsndfile-$(SNDFILE_VERSION).tar.gz .sum-sndfile - $(UNPACK) - $(APPLY) $(SRC)/sndfile/soundcard.patch - $(APPLY) $(SRC)/sndfile/carbon.patch - $(APPLY) $(SRC)/sndfile/autotools.patch - $(APPLY) $(SRC)/sndfile/disable_programs.patch - $(UPDATE_AUTOCONFIG) && cd $(UNPACK_DIR) && mv config.guess config.sub Cfg && autoreconf -fi -ifdef HAVE_IOS - rm -Rf examples -endif - $(MOVE) - -.sndfile: sndfile - cd $< && $(HOSTVARS) ./configure $(HOSTCONF) - cd $< && $(MAKE) install - touch $@ diff --git a/contrib/src/sndfile/sndfile-vs2017.patch b/contrib/src/sndfile/sndfile-vs2017.patch deleted file mode 100644 index 490f63eab6c28a53ae6f5be2644e71479a783f03..0000000000000000000000000000000000000000 --- a/contrib/src/sndfile/sndfile-vs2017.patch +++ /dev/null @@ -1,1346 +0,0 @@ ---- /dev/null -+++ b/msvc/libsndfile.vcxproj -@@ -0,0 +1,210 @@ -+<?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> -+ <ProjectConfiguration Include="Debug|x64"> -+ <Configuration>Debug</Configuration> -+ <Platform>x64</Platform> -+ </ProjectConfiguration> -+ <ProjectConfiguration Include="Release|x64"> -+ <Configuration>Release</Configuration> -+ <Platform>x64</Platform> -+ </ProjectConfiguration> -+ </ItemGroup> -+ <PropertyGroup Label="Globals"> -+ <VCProjectVersion>15.0</VCProjectVersion> -+ <ProjectGuid>{98F6F9C2-48F4-4173-83A2-80550A94CF0D}</ProjectGuid> -+ <RootNamespace>libsndfile</RootNamespace> -+ <WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion> -+ </PropertyGroup> -+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> -+ <ConfigurationType>Application</ConfigurationType> -+ <UseDebugLibraries>true</UseDebugLibraries> -+ <PlatformToolset>v141</PlatformToolset> -+ <CharacterSet>MultiByte</CharacterSet> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> -+ <ConfigurationType>StaticLibrary</ConfigurationType> -+ <UseDebugLibraries>false</UseDebugLibraries> -+ <PlatformToolset>v141</PlatformToolset> -+ <WholeProgramOptimization>true</WholeProgramOptimization> -+ <CharacterSet>MultiByte</CharacterSet> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> -+ <ConfigurationType>Application</ConfigurationType> -+ <UseDebugLibraries>true</UseDebugLibraries> -+ <PlatformToolset>v141</PlatformToolset> -+ <CharacterSet>MultiByte</CharacterSet> -+ </PropertyGroup> -+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> -+ <ConfigurationType>StaticLibrary</ConfigurationType> -+ <UseDebugLibraries>false</UseDebugLibraries> -+ <PlatformToolset>v141</PlatformToolset> -+ <WholeProgramOptimization>true</WholeProgramOptimization> -+ <CharacterSet>MultiByte</CharacterSet> -+ </PropertyGroup> -+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> -+ <ImportGroup Label="ExtensionSettings"> -+ </ImportGroup> -+ <ImportGroup Label="Shared"> -+ </ImportGroup> -+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> -+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> -+ </ImportGroup> -+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> -+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> -+ </ImportGroup> -+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> -+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> -+ </ImportGroup> -+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> -+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> -+ </ImportGroup> -+ <PropertyGroup Label="UserMacros" /> -+ <PropertyGroup /> -+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> -+ <ClCompile> -+ <WarningLevel>Level3</WarningLevel> -+ <Optimization>Disabled</Optimization> -+ <SDLCheck>true</SDLCheck> -+ <ConformanceMode>true</ConformanceMode> -+ </ClCompile> -+ </ItemDefinitionGroup> -+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> -+ <ClCompile> -+ <WarningLevel>Level3</WarningLevel> -+ <Optimization>Disabled</Optimization> -+ <SDLCheck>true</SDLCheck> -+ <ConformanceMode>true</ConformanceMode> -+ </ClCompile> -+ </ItemDefinitionGroup> -+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> -+ <ClCompile> -+ <WarningLevel>TurnOffAllWarnings</WarningLevel> -+ <Optimization>MaxSpeed</Optimization> -+ <FunctionLevelLinking>true</FunctionLevelLinking> -+ <IntrinsicFunctions>true</IntrinsicFunctions> -+ <SDLCheck>true</SDLCheck> -+ <ConformanceMode>true</ConformanceMode> -+ <AdditionalIncludeDirectories>$(ProjectDir)../src;$(ProjectDir)../../../../MSVC</AdditionalIncludeDirectories> -+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ <DisableSpecificWarnings>4224;%(DisableSpecificWarnings)</DisableSpecificWarnings> -+ </ClCompile> -+ <Link> -+ <EnableCOMDATFolding>true</EnableCOMDATFolding> -+ <OptimizeReferences>true</OptimizeReferences> -+ </Link> -+ </ItemDefinitionGroup> -+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> -+ <ClCompile> -+ <WarningLevel>TurnOffAllWarnings</WarningLevel> -+ <Optimization>MaxSpeed</Optimization> -+ <FunctionLevelLinking>true</FunctionLevelLinking> -+ <IntrinsicFunctions>true</IntrinsicFunctions> -+ <SDLCheck>true</SDLCheck> -+ <ConformanceMode>true</ConformanceMode> -+ <AdditionalIncludeDirectories>$(ProjectDir)../src;$(ProjectDir)../../../../MSVC</AdditionalIncludeDirectories> -+ <PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions> -+ <DisableSpecificWarnings>4224;%(DisableSpecificWarnings)</DisableSpecificWarnings> -+ </ClCompile> -+ <Link> -+ <EnableCOMDATFolding>true</EnableCOMDATFolding> -+ <OptimizeReferences>true</OptimizeReferences> -+ </Link> -+ </ItemDefinitionGroup> -+ <ItemGroup> -+ <ClCompile Include="..\src\aiff.c" /> -+ <ClCompile Include="..\src\alaw.c" /> -+ <ClCompile Include="..\src\au.c" /> -+ <ClCompile Include="..\src\audio_detect.c" /> -+ <ClCompile Include="..\src\avr.c" /> -+ <ClCompile Include="..\src\broadcast.c" /> -+ <ClCompile Include="..\src\caf.c" /> -+ <ClCompile Include="..\src\chanmap.c" /> -+ <ClCompile Include="..\src\chunk.c" /> -+ <ClCompile Include="..\src\command.c" /> -+ <ClCompile Include="..\src\common.c" /> -+ <ClCompile Include="..\src\dither.c" /> -+ <ClCompile Include="..\src\double64.c" /> -+ <ClCompile Include="..\src\dwd.c" /> -+ <ClCompile Include="..\src\dwvw.c" /> -+ <ClCompile Include="..\src\file_io.c" /> -+ <ClCompile Include="..\src\flac.c" /> -+ <ClCompile Include="..\src\float32.c" /> -+ <ClCompile Include="..\src\htk.c" /> -+ <ClCompile Include="..\src\id3.c" /> -+ <ClCompile Include="..\src\ima_adpcm.c" /> -+ <ClCompile Include="..\src\ima_oki_adpcm.c" /> -+ <ClCompile Include="..\src\interleave.c" /> -+ <ClCompile Include="..\src\ircam.c" /> -+ <ClCompile Include="..\src\macbinary3.c" /> -+ <ClCompile Include="..\src\macos.c" /> -+ <ClCompile Include="..\src\mat4.c" /> -+ <ClCompile Include="..\src\mat5.c" /> -+ <ClCompile Include="..\src\mpc2k.c" /> -+ <ClCompile Include="..\src\ms_adpcm.c" /> -+ <ClCompile Include="..\src\nist.c" /> -+ <ClCompile Include="..\src\ogg.c" /> -+ <ClCompile Include="..\src\ogg_pcm.c" /> -+ <ClCompile Include="..\src\ogg_speex.c" /> -+ <ClCompile Include="..\src\ogg_vorbis.c" /> -+ <ClCompile Include="..\src\paf.c" /> -+ <ClCompile Include="..\src\pcm.c" /> -+ <ClCompile Include="..\src\pvf.c" /> -+ <ClCompile Include="..\src\raw.c" /> -+ <ClCompile Include="..\src\rf64.c" /> -+ <ClCompile Include="..\src\rx2.c" /> -+ <ClCompile Include="..\src\sd2.c" /> -+ <ClCompile Include="..\src\sds.c" /> -+ <ClCompile Include="..\src\sndfile.c" /> -+ <ClCompile Include="..\src\strings.c" /> -+ <ClCompile Include="..\src\svx.c" /> -+ <ClCompile Include="..\src\test_audio_detect.c" /> -+ <ClCompile Include="..\src\test_broadcast_var.c" /> -+ <ClCompile Include="..\src\test_conversions.c" /> -+ <ClCompile Include="..\src\test_endswap.c" /> -+ <ClCompile Include="..\src\test_file_io.c" /> -+ <ClCompile Include="..\src\test_float.c" /> -+ <ClCompile Include="..\src\test_ima_oki_adpcm.c" /> -+ <ClCompile Include="..\src\test_log_printf.c" /> -+ <ClCompile Include="..\src\test_main.c" /> -+ <ClCompile Include="..\src\test_strncpy_crlf.c" /> -+ <ClCompile Include="..\src\txw.c" /> -+ <ClCompile Include="..\src\ulaw.c" /> -+ <ClCompile Include="..\src\voc.c" /> -+ <ClCompile Include="..\src\vox_adpcm.c" /> -+ <ClCompile Include="..\src\w64.c" /> -+ <ClCompile Include="..\src\wav.c" /> -+ <ClCompile Include="..\src\wav_w64.c" /> -+ <ClCompile Include="..\src\windows.c" /> -+ <ClCompile Include="..\src\wve.c" /> -+ <ClCompile Include="..\src\xi.c" /> -+ </ItemGroup> -+ <ItemGroup> -+ <None Include="..\src\config.h.in" /> -+ <None Include="..\src\sndfile.h.in" /> -+ </ItemGroup> -+ <ItemGroup> -+ <ClInclude Include="..\src\chanmap.h" /> -+ <ClInclude Include="..\src\common.h" /> -+ <ClInclude Include="..\src\ima_oki_adpcm.h" /> -+ <ClInclude Include="..\src\ogg.h" /> -+ <ClInclude Include="..\src\sfconfig.h" /> -+ <ClInclude Include="..\src\sfendian.h" /> -+ <ClInclude Include="..\src\sf_unistd.h" /> -+ <ClInclude Include="..\src\sndfile.hh" /> -+ <ClInclude Include="..\src\test_main.h" /> -+ <ClInclude Include="..\src\wav_w64.h" /> -+ </ItemGroup> -+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> -+ <ImportGroup Label="ExtensionTargets"> -+ </ImportGroup> -+</Project> -\ No newline at end of file ---- a/src/common.c -+++ b/src/common.c -@@ -23,7 +23,9 @@ - #include <ctype.h> - #include <math.h> - #include <time.h> -+#ifndef _MSC_VER - #include <sys/time.h> -+#endif - - #include "sndfile.h" - #include "sfendian.h" ---- /dev/null -+++ b/src/config.h -@@ -0,0 +1,324 @@ -+/* src/config.h. Generated from config.h.in by configure. */ -+/* src/config.h.in. Generated from configure.ac by autoheader. */ -+ -+/* Set to 1 if the compile is GNU GCC. */ -+#define COMPILER_IS_GCC 0 -+ -+/* Target processor clips on negative float to int conversion. */ -+#define CPU_CLIPS_NEGATIVE 0 -+ -+/* Target processor clips on positive float to int conversion. */ -+#define CPU_CLIPS_POSITIVE 0 -+ -+/* Target processor is big endian. */ -+#define CPU_IS_BIG_ENDIAN 0 -+ -+/* Target processor is little endian. */ -+#define CPU_IS_LITTLE_ENDIAN 1 -+ -+/* Set to 1 to enable experimental code. */ -+#define ENABLE_EXPERIMENTAL_CODE 0 -+ -+/* Define to 1 if you have the <alsa/asoundlib.h> header file. */ -+/* #undef HAVE_ALSA_ASOUNDLIB_H */ -+ -+/* Define to 1 if you have the <byteswap.h> header file. */ -+/* #undef HAVE_BYTESWAP_H */ -+ -+/* Define to 1 if you have the `calloc' function. */ -+#define HAVE_CALLOC 1 -+ -+/* Define to 1 if you have the `ceil' function. */ -+#define HAVE_CEIL 1 -+ -+/* Set to 1 if S_IRGRP is defined. */ -+#define HAVE_DECL_S_IRGRP 1 -+ -+/* Define to 1 if you have the <dlfcn.h> header file. */ -+#define HAVE_DLFCN_H 0 -+ -+/* Define to 1 if you have the <endian.h> header file. */ -+/* #undef HAVE_ENDIAN_H */ -+ -+/* Will be set to 1 if flac, ogg and vorbis are available. */ -+#define HAVE_EXTERNAL_LIBS 0 -+ -+/* Set to 1 if the compile supports the struct hack. */ -+#define HAVE_FLEXIBLE_ARRAY 0 -+ -+/* Define to 1 if you have the `floor' function. */ -+#define HAVE_FLOOR 1 -+ -+/* Define to 1 if you have the `fmod' function. */ -+#define HAVE_FMOD 1 -+ -+/* Define to 1 if you have the `free' function. */ -+#define HAVE_FREE 1 -+ -+/* Define to 1 if you have the `fstat' function. */ -+#define HAVE_FSTAT 1 -+ -+/* Define to 1 if you have the `fsync' function. */ -+#define HAVE_FSYNC 1 -+ -+/* Define to 1 if you have the `ftruncate' function. */ -+#define HAVE_FTRUNCATE 1 -+ -+/* Define to 1 if you have the `getpagesize' function. */ -+#define HAVE_GETPAGESIZE 0 -+ -+/* Define to 1 if you have the `gettimeofday' function. */ -+#define HAVE_GETTIMEOFDAY 0 -+ -+/* Define to 1 if you have the `gmtime' function. */ -+#define HAVE_GMTIME 0 -+ -+/* Define to 1 if you have the `gmtime_r' function. */ -+#undef HAVE_GMTIME_R -+ -+/* Define to 1 if you have the <inttypes.h> header file. */ -+#define HAVE_INTTYPES_H 1 -+ -+/* Define to 1 if you have the `m' library (-lm). */ -+#define HAVE_LIBM 0 -+ -+/* Define to 1 if you have the <locale.h> header file. */ -+#define HAVE_LOCALE_H 0 -+ -+/* Define to 1 if you have the `localtime' function. */ -+#define HAVE_LOCALTIME 1 -+ -+/* Define to 1 if you have the `localtime_r' function. */ -+#define HAVE_LOCALTIME_R 1 -+ -+/* Define if you have C99's lrint function. */ -+#define HAVE_LRINT 1 -+ -+/* Define if you have C99's lrintf function. */ -+#define HAVE_LRINTF 1 -+ -+/* Define to 1 if you have the `lseek' function. */ -+#define HAVE_LSEEK 1 -+ -+/* Define to 1 if you have the `malloc' function. */ -+#define HAVE_MALLOC 1 -+ -+/* Define to 1 if you have the <memory.h> header file. */ -+#define HAVE_MEMORY_H 1 -+ -+/* Define to 1 if you have the `mmap' function. */ -+#define HAVE_MMAP 1 -+ -+/* Define to 1 if you have the `open' function. */ -+#define HAVE_OPEN 1 -+ -+/* Define to 1 if you have the `pipe' function. */ -+#define HAVE_PIPE 1 -+ -+/* Define to 1 if you have the `pread' function. */ -+#define HAVE_PREAD 1 -+ -+/* Define to 1 if you have the `pwrite' function. */ -+#define HAVE_PWRITE 1 -+ -+/* Define to 1 if you have the `read' function. */ -+#define HAVE_READ 1 -+ -+/* Define to 1 if you have the `realloc' function. */ -+#define HAVE_REALLOC 1 -+ -+/* Define to 1 if you have the `setlocale' function. */ -+#define HAVE_SETLOCALE 1 -+ -+/* Define to 1 if you have the <sndio.h> header file. */ -+/* #undef HAVE_SNDIO_H */ -+ -+/* Define to 1 if you have the `snprintf' function. */ -+#define HAVE_SNPRINTF 1 -+ -+/* Set to 1 if you have libsqlite3. */ -+#define HAVE_SQLITE3 0 -+ -+/* Define to 1 if the system has the type `ssize_t'. */ -+#define HAVE_SSIZE_T 1 -+ -+/* Define to 1 if you have the <stdint.h> header file. */ -+#define HAVE_STDINT_H 1 -+ -+/* Define to 1 if you have the <stdlib.h> header file. */ -+#define HAVE_STDLIB_H 1 -+ -+/* Define to 1 if you have the <strings.h> header file. */ -+#define HAVE_STRINGS_H 1 -+ -+/* Define to 1 if you have the <string.h> header file. */ -+#define HAVE_STRING_H 1 -+ -+/* Define to 1 if you have the <sys/stat.h> header file. */ -+#define HAVE_SYS_STAT_H 1 -+ -+/* Define to 1 if you have the <sys/time.h> header file. */ -+#define HAVE_SYS_TIME_H 1 -+ -+/* Define to 1 if you have the <sys/types.h> header file. */ -+#define HAVE_SYS_TYPES_H 1 -+ -+/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */ -+#define HAVE_SYS_WAIT_H 1 -+ -+/* Define to 1 if you have the <unistd.h> header file. */ -+#define HAVE_UNISTD_H 1 -+ -+/* Define to 1 if you have the `vsnprintf' function. */ -+#define HAVE_VSNPRINTF 1 -+ -+/* Define to 1 if you have the `waitpid' function. */ -+#define HAVE_WAITPID 1 -+ -+/* Define to 1 if you have the `write' function. */ -+#define HAVE_WRITE 1 -+ -+/* Define to the sub-directory where libtool stores uninstalled libraries. */ -+#define LT_OBJDIR ".libs/" -+ -+/* Set to 1 if compiling for MacOSX */ -+#define OS_IS_MACOSX 0 -+ -+/* Set to 1 if compiling for Win32 */ -+#define OS_IS_WIN32 1 -+ -+/* Name of package */ -+#define PACKAGE "libsndfile" -+ -+/* Define to the address where bug reports for this package should be sent. */ -+#define PACKAGE_BUGREPORT "sndfile@mega-nerd.com" -+ -+/* Define to the full name of this package. */ -+#define PACKAGE_NAME "libsndfile" -+ -+/* Define to the full name and version of this package. */ -+#define PACKAGE_STRING "libsndfile 1.0.25" -+ -+/* Define to the one symbol short name of this package. */ -+#define PACKAGE_TARNAME "libsndfile" -+ -+/* Define to the home page for this package. */ -+#define PACKAGE_URL "http://www.mega-nerd.com/libsndfile/" -+ -+/* Define to the version of this package. */ -+#define PACKAGE_VERSION "1.0.25" -+ -+/* Set to maximum allowed value of sf_count_t type. */ -+#define SF_COUNT_MAX 0x7FFFFFFFFFFFFFFFLL -+ -+/* The size of `double', as computed by sizeof. */ -+#define SIZEOF_DOUBLE 8 -+ -+/* The size of `float', as computed by sizeof. */ -+#define SIZEOF_FLOAT 4 -+ -+/* The size of `int', as computed by sizeof. */ -+#define SIZEOF_INT 4 -+ -+/* The size of `int64_t', as computed by sizeof. */ -+#define SIZEOF_INT64_T 8 -+ -+/* The size of `loff_t', as computed by sizeof. */ -+/* #undef SIZEOF_LOFF_T */ -+ -+/* The size of `long', as computed by sizeof. */ -+#define SIZEOF_LONG 8 -+ -+/* The size of `long long', as computed by sizeof. */ -+#define SIZEOF_LONG_LONG 8 -+ -+/* The size of `off64_t', as computed by sizeof. */ -+/* #undef SIZEOF_OFF64_T */ -+ -+/* The size of `off_t', as computed by sizeof. */ -+#define SIZEOF_OFF_T 8 -+ -+/* Set to sizeof (long) if unknown. */ -+#define SIZEOF_SF_COUNT_T 8 -+ -+/* The size of `short', as computed by sizeof. */ -+#define SIZEOF_SHORT 2 -+ -+/* The size of `size_t', as computed by sizeof. */ -+#define SIZEOF_SIZE_T 8 -+ -+/* The size of `ssize_t', as computed by sizeof. */ -+#define SIZEOF_SSIZE_T 8 -+ -+/* The size of `void*', as computed by sizeof. */ -+#define SIZEOF_VOIDP 8 -+ -+/* The size of `wchar_t', as computed by sizeof. */ -+#define SIZEOF_WCHAR_T 4 -+ -+/* Define to 1 if you have the ANSI C header files. */ -+#define STDC_HEADERS 1 -+ -+/* Set to long if unknown. */ -+#define TYPEOF_SF_COUNT_T int64_t -+ -+/* Enable extensions on AIX 3, Interix. */ -+#ifndef _ALL_SOURCE -+# define _ALL_SOURCE 1 -+#endif -+/* Enable GNU extensions on systems that have them. */ -+#ifndef _GNU_SOURCE -+# define _GNU_SOURCE 1 -+#endif -+/* Enable threading extensions on Solaris. */ -+#ifndef _POSIX_PTHREAD_SEMANTICS -+# define _POSIX_PTHREAD_SEMANTICS 1 -+#endif -+/* Enable extensions on HP NonStop. */ -+#ifndef _TANDEM_SOURCE -+# define _TANDEM_SOURCE 1 -+#endif -+/* Enable general extensions on Solaris. */ -+#ifndef __EXTENSIONS__ -+# define __EXTENSIONS__ 1 -+#endif -+ -+ -+/* Set to 1 to use the native windows API */ -+#define USE_WINDOWS_API 1 -+ -+/* Version number of package */ -+#define VERSION "1.0.25" -+ -+/* Set to 1 if windows DLL is being built. */ -+#define WIN32_TARGET_DLL 0 -+ -+/* Target processor is big endian. */ -+#define WORDS_BIGENDIAN 0 -+ -+#include <BaseTsd.h> -+typedef SSIZE_T ssize_t; -+#define _USE_MATH_DEFINES -+#include <math.h> -+ -+/* Number of bits in a file offset, on hosts where this is settable. */ -+/* #undef _FILE_OFFSET_BITS */ -+ -+/* Define to make fseeko etc. visible, on some hosts. */ -+/* #undef _LARGEFILE_SOURCE */ -+ -+/* Define for large files, on AIX-style hosts. */ -+/* #undef _LARGE_FILES */ -+ -+/* Define to 1 if on MINIX. */ -+/* #undef _MINIX */ -+ -+/* Define to 2 if the system does not provide POSIX.1 features except with -+ this defined. */ -+/* #undef _POSIX_1_SOURCE */ -+ -+/* Define to 1 if you need to in order for `stat' and other things to work. */ -+/* #undef _POSIX_SOURCE */ -+ -+/* Set to 1 to use C99 printf/snprintf in MinGW. */ -+/* #undef __USE_MINGW_ANSI_STDIO */ -\ No newline at end of file ---- /dev/null -+++ b/src/sndfile.h -@@ -0,0 +1,666 @@ -+/* -+** Copyright (C) 1999-2011Erik de Castro Lopo <erikd@mega-nerd.com> -+** -+** This program 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. -+** -+** This program 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 this program; if not, write to the Free Software -+** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+*/ -+ -+/* -+** sndfile.h -- system-wide definitions -+** -+** API documentation is in the doc/ directory of the source code tarball -+** and at http://www.mega-nerd.com/libsndfile/api.html. -+*/ -+ -+#ifndef SNDFILE_H -+#define SNDFILE_H -+ -+/* This is the version 1.0.X header file. */ -+#define SNDFILE_1 -+ -+#include <stdio.h> -+#include <sys/types.h> -+ -+#ifdef __cplusplus -+extern "C" { -+#endif /* __cplusplus */ -+ -+/* The following file types can be read and written. -+** A file type would consist of a major type (ie SF_FORMAT_WAV) bitwise -+** ORed with a minor type (ie SF_FORMAT_PCM). SF_FORMAT_TYPEMASK and -+** SF_FORMAT_SUBMASK can be used to separate the major and minor file -+** types. -+*/ -+ -+enum -+{ /* Major formats. */ -+ SF_FORMAT_WAV = 0x010000, /* Microsoft WAV format (little endian default). */ -+ SF_FORMAT_AIFF = 0x020000, /* Apple/SGI AIFF format (big endian). */ -+ SF_FORMAT_AU = 0x030000, /* Sun/NeXT AU format (big endian). */ -+ SF_FORMAT_RAW = 0x040000, /* RAW PCM data. */ -+ SF_FORMAT_PAF = 0x050000, /* Ensoniq PARIS file format. */ -+ SF_FORMAT_SVX = 0x060000, /* Amiga IFF / SVX8 / SV16 format. */ -+ SF_FORMAT_NIST = 0x070000, /* Sphere NIST format. */ -+ SF_FORMAT_VOC = 0x080000, /* VOC files. */ -+ SF_FORMAT_IRCAM = 0x0A0000, /* Berkeley/IRCAM/CARL */ -+ SF_FORMAT_W64 = 0x0B0000, /* Sonic Foundry's 64 bit RIFF/WAV */ -+ SF_FORMAT_MAT4 = 0x0C0000, /* Matlab (tm) V4.2 / GNU Octave 2.0 */ -+ SF_FORMAT_MAT5 = 0x0D0000, /* Matlab (tm) V5.0 / GNU Octave 2.1 */ -+ SF_FORMAT_PVF = 0x0E0000, /* Portable Voice Format */ -+ SF_FORMAT_XI = 0x0F0000, /* Fasttracker 2 Extended Instrument */ -+ SF_FORMAT_HTK = 0x100000, /* HMM Tool Kit format */ -+ SF_FORMAT_SDS = 0x110000, /* Midi Sample Dump Standard */ -+ SF_FORMAT_AVR = 0x120000, /* Audio Visual Research */ -+ SF_FORMAT_WAVEX = 0x130000, /* MS WAVE with WAVEFORMATEX */ -+ SF_FORMAT_SD2 = 0x160000, /* Sound Designer 2 */ -+ SF_FORMAT_FLAC = 0x170000, /* FLAC lossless file format */ -+ SF_FORMAT_CAF = 0x180000, /* Core Audio File format */ -+ SF_FORMAT_WVE = 0x190000, /* Psion WVE format */ -+ SF_FORMAT_OGG = 0x200000, /* Xiph OGG container */ -+ SF_FORMAT_MPC2K = 0x210000, /* Akai MPC 2000 sampler */ -+ SF_FORMAT_RF64 = 0x220000, /* RF64 WAV file */ -+ -+ /* Subtypes from here on. */ -+ -+ SF_FORMAT_PCM_S8 = 0x0001, /* Signed 8 bit data */ -+ SF_FORMAT_PCM_16 = 0x0002, /* Signed 16 bit data */ -+ SF_FORMAT_PCM_24 = 0x0003, /* Signed 24 bit data */ -+ SF_FORMAT_PCM_32 = 0x0004, /* Signed 32 bit data */ -+ -+ SF_FORMAT_PCM_U8 = 0x0005, /* Unsigned 8 bit data (WAV and RAW only) */ -+ -+ SF_FORMAT_FLOAT = 0x0006, /* 32 bit float data */ -+ SF_FORMAT_DOUBLE = 0x0007, /* 64 bit float data */ -+ -+ SF_FORMAT_ULAW = 0x0010, /* U-Law encoded. */ -+ SF_FORMAT_ALAW = 0x0011, /* A-Law encoded. */ -+ SF_FORMAT_IMA_ADPCM = 0x0012, /* IMA ADPCM. */ -+ SF_FORMAT_MS_ADPCM = 0x0013, /* Microsoft ADPCM. */ -+ -+ SF_FORMAT_GSM610 = 0x0020, /* GSM 6.10 encoding. */ -+ SF_FORMAT_VOX_ADPCM = 0x0021, /* OKI / Dialogix ADPCM */ -+ -+ SF_FORMAT_G721_32 = 0x0030, /* 32kbs G721 ADPCM encoding. */ -+ SF_FORMAT_G723_24 = 0x0031, /* 24kbs G723 ADPCM encoding. */ -+ SF_FORMAT_G723_40 = 0x0032, /* 40kbs G723 ADPCM encoding. */ -+ -+ SF_FORMAT_DWVW_12 = 0x0040, /* 12 bit Delta Width Variable Word encoding. */ -+ SF_FORMAT_DWVW_16 = 0x0041, /* 16 bit Delta Width Variable Word encoding. */ -+ SF_FORMAT_DWVW_24 = 0x0042, /* 24 bit Delta Width Variable Word encoding. */ -+ SF_FORMAT_DWVW_N = 0x0043, /* N bit Delta Width Variable Word encoding. */ -+ -+ SF_FORMAT_DPCM_8 = 0x0050, /* 8 bit differential PCM (XI only) */ -+ SF_FORMAT_DPCM_16 = 0x0051, /* 16 bit differential PCM (XI only) */ -+ -+ SF_FORMAT_VORBIS = 0x0060, /* Xiph Vorbis encoding. */ -+ -+ /* Endian-ness options. */ -+ -+ SF_ENDIAN_FILE = 0x00000000, /* Default file endian-ness. */ -+ SF_ENDIAN_LITTLE = 0x10000000, /* Force little endian-ness. */ -+ SF_ENDIAN_BIG = 0x20000000, /* Force big endian-ness. */ -+ SF_ENDIAN_CPU = 0x30000000, /* Force CPU endian-ness. */ -+ -+ SF_FORMAT_SUBMASK = 0x0000FFFF, -+ SF_FORMAT_TYPEMASK = 0x0FFF0000, -+ SF_FORMAT_ENDMASK = 0x30000000 -+} ; -+ -+/* -+** The following are the valid command numbers for the sf_command() -+** interface. The use of these commands is documented in the file -+** command.html in the doc directory of the source code distribution. -+*/ -+ -+enum -+{ SFC_GET_LIB_VERSION = 0x1000, -+ SFC_GET_LOG_INFO = 0x1001, -+ SFC_GET_CURRENT_SF_INFO = 0x1002, -+ -+ -+ SFC_GET_NORM_DOUBLE = 0x1010, -+ SFC_GET_NORM_FLOAT = 0x1011, -+ SFC_SET_NORM_DOUBLE = 0x1012, -+ SFC_SET_NORM_FLOAT = 0x1013, -+ SFC_SET_SCALE_FLOAT_INT_READ = 0x1014, -+ SFC_SET_SCALE_INT_FLOAT_WRITE = 0x1015, -+ -+ SFC_GET_SIMPLE_FORMAT_COUNT = 0x1020, -+ SFC_GET_SIMPLE_FORMAT = 0x1021, -+ -+ SFC_GET_FORMAT_INFO = 0x1028, -+ -+ SFC_GET_FORMAT_MAJOR_COUNT = 0x1030, -+ SFC_GET_FORMAT_MAJOR = 0x1031, -+ SFC_GET_FORMAT_SUBTYPE_COUNT = 0x1032, -+ SFC_GET_FORMAT_SUBTYPE = 0x1033, -+ -+ SFC_CALC_SIGNAL_MAX = 0x1040, -+ SFC_CALC_NORM_SIGNAL_MAX = 0x1041, -+ SFC_CALC_MAX_ALL_CHANNELS = 0x1042, -+ SFC_CALC_NORM_MAX_ALL_CHANNELS = 0x1043, -+ SFC_GET_SIGNAL_MAX = 0x1044, -+ SFC_GET_MAX_ALL_CHANNELS = 0x1045, -+ -+ SFC_SET_ADD_PEAK_CHUNK = 0x1050, -+ SFC_SET_ADD_HEADER_PAD_CHUNK = 0x1051, -+ -+ SFC_UPDATE_HEADER_NOW = 0x1060, -+ SFC_SET_UPDATE_HEADER_AUTO = 0x1061, -+ -+ SFC_FILE_TRUNCATE = 0x1080, -+ -+ SFC_SET_RAW_START_OFFSET = 0x1090, -+ -+ SFC_SET_DITHER_ON_WRITE = 0x10A0, -+ SFC_SET_DITHER_ON_READ = 0x10A1, -+ -+ SFC_GET_DITHER_INFO_COUNT = 0x10A2, -+ SFC_GET_DITHER_INFO = 0x10A3, -+ -+ SFC_GET_EMBED_FILE_INFO = 0x10B0, -+ -+ SFC_SET_CLIPPING = 0x10C0, -+ SFC_GET_CLIPPING = 0x10C1, -+ -+ SFC_GET_INSTRUMENT = 0x10D0, -+ SFC_SET_INSTRUMENT = 0x10D1, -+ -+ SFC_GET_LOOP_INFO = 0x10E0, -+ -+ SFC_GET_BROADCAST_INFO = 0x10F0, -+ SFC_SET_BROADCAST_INFO = 0x10F1, -+ -+ SFC_GET_CHANNEL_MAP_INFO = 0x1100, -+ SFC_SET_CHANNEL_MAP_INFO = 0x1101, -+ -+ SFC_RAW_DATA_NEEDS_ENDSWAP = 0x1110, -+ -+ /* Support for Wavex Ambisonics Format */ -+ SFC_WAVEX_SET_AMBISONIC = 0x1200, -+ SFC_WAVEX_GET_AMBISONIC = 0x1201, -+ -+ SFC_SET_VBR_ENCODING_QUALITY = 0x1300, -+ -+ /* Following commands for testing only. */ -+ SFC_TEST_IEEE_FLOAT_REPLACE = 0x6001, -+ -+ /* -+ ** SFC_SET_ADD_* values are deprecated and will disappear at some -+ ** time in the future. They are guaranteed to be here up to and -+ ** including version 1.0.8 to avoid breakage of existng software. -+ ** They currently do nothing and will continue to do nothing. -+ */ -+ SFC_SET_ADD_DITHER_ON_WRITE = 0x1070, -+ SFC_SET_ADD_DITHER_ON_READ = 0x1071 -+} ; -+ -+ -+/* -+** String types that can be set and read from files. Not all file types -+** support this and even the file types which support one, may not support -+** all string types. -+*/ -+ -+enum -+{ SF_STR_TITLE = 0x01, -+ SF_STR_COPYRIGHT = 0x02, -+ SF_STR_SOFTWARE = 0x03, -+ SF_STR_ARTIST = 0x04, -+ SF_STR_COMMENT = 0x05, -+ SF_STR_DATE = 0x06, -+ SF_STR_ALBUM = 0x07, -+ SF_STR_LICENSE = 0x08, -+ SF_STR_TRACKNUMBER = 0x09, -+ SF_STR_GENRE = 0x10 -+} ; -+ -+/* -+** Use the following as the start and end index when doing metadata -+** transcoding. -+*/ -+ -+#define SF_STR_FIRST SF_STR_TITLE -+#define SF_STR_LAST SF_STR_GENRE -+ -+enum -+{ /* True and false */ -+ SF_FALSE = 0, -+ SF_TRUE = 1, -+ -+ /* Modes for opening files. */ -+ SFM_READ = 0x10, -+ SFM_WRITE = 0x20, -+ SFM_RDWR = 0x30, -+ -+ SF_AMBISONIC_NONE = 0x40, -+ SF_AMBISONIC_B_FORMAT = 0x41 -+} ; -+ -+/* Public error values. These are guaranteed to remain unchanged for the duration -+** of the library major version number. -+** There are also a large number of private error numbers which are internal to -+** the library which can change at any time. -+*/ -+ -+enum -+{ SF_ERR_NO_ERROR = 0, -+ SF_ERR_UNRECOGNISED_FORMAT = 1, -+ SF_ERR_SYSTEM = 2, -+ SF_ERR_MALFORMED_FILE = 3, -+ SF_ERR_UNSUPPORTED_ENCODING = 4 -+} ; -+ -+ -+/* Channel map values (used with SFC_SET/GET_CHANNEL_MAP). -+*/ -+ -+enum -+{ SF_CHANNEL_MAP_INVALID = 0, -+ SF_CHANNEL_MAP_MONO = 1, -+ SF_CHANNEL_MAP_LEFT, /* Apple calls this 'Left' */ -+ SF_CHANNEL_MAP_RIGHT, /* Apple calls this 'Right' */ -+ SF_CHANNEL_MAP_CENTER, /* Apple calls this 'Center' */ -+ SF_CHANNEL_MAP_FRONT_LEFT, -+ SF_CHANNEL_MAP_FRONT_RIGHT, -+ SF_CHANNEL_MAP_FRONT_CENTER, -+ SF_CHANNEL_MAP_REAR_CENTER, /* Apple calls this 'Center Surround', Msft calls this 'Back Center' */ -+ SF_CHANNEL_MAP_REAR_LEFT, /* Apple calls this 'Left Surround', Msft calls this 'Back Left' */ -+ SF_CHANNEL_MAP_REAR_RIGHT, /* Apple calls this 'Right Surround', Msft calls this 'Back Right' */ -+ SF_CHANNEL_MAP_LFE, /* Apple calls this 'LFEScreen', Msft calls this 'Low Frequency' */ -+ SF_CHANNEL_MAP_FRONT_LEFT_OF_CENTER, /* Apple calls this 'Left Center' */ -+ SF_CHANNEL_MAP_FRONT_RIGHT_OF_CENTER, /* Apple calls this 'Right Center */ -+ SF_CHANNEL_MAP_SIDE_LEFT, /* Apple calls this 'Left Surround Direct' */ -+ SF_CHANNEL_MAP_SIDE_RIGHT, /* Apple calls this 'Right Surround Direct' */ -+ SF_CHANNEL_MAP_TOP_CENTER, /* Apple calls this 'Top Center Surround' */ -+ SF_CHANNEL_MAP_TOP_FRONT_LEFT, /* Apple calls this 'Vertical Height Left' */ -+ SF_CHANNEL_MAP_TOP_FRONT_RIGHT, /* Apple calls this 'Vertical Height Right' */ -+ SF_CHANNEL_MAP_TOP_FRONT_CENTER, /* Apple calls this 'Vertical Height Center' */ -+ SF_CHANNEL_MAP_TOP_REAR_LEFT, /* Apple and MS call this 'Top Back Left' */ -+ SF_CHANNEL_MAP_TOP_REAR_RIGHT, /* Apple and MS call this 'Top Back Right' */ -+ SF_CHANNEL_MAP_TOP_REAR_CENTER, /* Apple and MS call this 'Top Back Center' */ -+ -+ SF_CHANNEL_MAP_AMBISONIC_B_W, -+ SF_CHANNEL_MAP_AMBISONIC_B_X, -+ SF_CHANNEL_MAP_AMBISONIC_B_Y, -+ SF_CHANNEL_MAP_AMBISONIC_B_Z, -+ -+ SF_CHANNEL_MAP_MAX -+} ; -+ -+ -+/* A SNDFILE* pointer can be passed around much like stdio.h's FILE* pointer. */ -+ -+typedef struct SNDFILE_tag SNDFILE ; -+ -+/* The following typedef is system specific and is defined when libsndfile is -+** compiled. sf_count_t will be a 64 bit value when the underlying OS allows -+** 64 bit file offsets. -+** On windows, we need to allow the same header file to be compiler by both GCC -+** and the Microsoft compiler. -+*/ -+ -+#if (defined (_MSCVER) || defined (_MSC_VER)) -+typedef __int64 sf_count_t ; -+#define SF_COUNT_MAX 0x7fffffffffffffffi64 -+#else -+typedef @TYPEOF_SF_COUNT_T@ sf_count_t ; -+#define SF_COUNT_MAX @SF_COUNT_MAX@ -+#endif -+ -+ -+/* A pointer to a SF_INFO structure is passed to sf_open () and filled in. -+** On write, the SF_INFO structure is filled in by the user and passed into -+** sf_open (). -+*/ -+ -+struct SF_INFO -+{ sf_count_t frames ; /* Used to be called samples. Changed to avoid confusion. */ -+ int samplerate ; -+ int channels ; -+ int format ; -+ int sections ; -+ int seekable ; -+} ; -+ -+typedef struct SF_INFO SF_INFO ; -+ -+/* The SF_FORMAT_INFO struct is used to retrieve information about the sound -+** file formats libsndfile supports using the sf_command () interface. -+** -+** Using this interface will allow applications to support new file formats -+** and encoding types when libsndfile is upgraded, without requiring -+** re-compilation of the application. -+** -+** Please consult the libsndfile documentation (particularly the information -+** on the sf_command () interface) for examples of its use. -+*/ -+ -+typedef struct -+{ int format ; -+ const char *name ; -+ const char *extension ; -+} SF_FORMAT_INFO ; -+ -+/* -+** Enums and typedefs for adding dither on read and write. -+** See the html documentation for sf_command(), SFC_SET_DITHER_ON_WRITE -+** and SFC_SET_DITHER_ON_READ. -+*/ -+ -+enum -+{ SFD_DEFAULT_LEVEL = 0, -+ SFD_CUSTOM_LEVEL = 0x40000000, -+ -+ SFD_NO_DITHER = 500, -+ SFD_WHITE = 501, -+ SFD_TRIANGULAR_PDF = 502 -+} ; -+ -+typedef struct -+{ int type ; -+ double level ; -+ const char *name ; -+} SF_DITHER_INFO ; -+ -+/* Struct used to retrieve information about a file embedded within a -+** larger file. See SFC_GET_EMBED_FILE_INFO. -+*/ -+ -+typedef struct -+{ sf_count_t offset ; -+ sf_count_t length ; -+} SF_EMBED_FILE_INFO ; -+ -+/* -+** Structs used to retrieve music sample information from a file. -+*/ -+ -+enum -+{ /* -+ ** The loop mode field in SF_INSTRUMENT will be one of the following. -+ */ -+ SF_LOOP_NONE = 800, -+ SF_LOOP_FORWARD, -+ SF_LOOP_BACKWARD, -+ SF_LOOP_ALTERNATING -+} ; -+ -+typedef struct -+{ int gain ; -+ char basenote, detune ; -+ char velocity_lo, velocity_hi ; -+ char key_lo, key_hi ; -+ int loop_count ; -+ -+ struct -+ { int mode ; -+ unsigned int start ; -+ unsigned int end ; -+ unsigned int count ; -+ } loops [16] ; /* make variable in a sensible way */ -+} SF_INSTRUMENT ; -+ -+ -+ -+/* Struct used to retrieve loop information from a file.*/ -+typedef struct -+{ -+ short time_sig_num ; /* any positive integer > 0 */ -+ short time_sig_den ; /* any positive power of 2 > 0 */ -+ int loop_mode ; /* see SF_LOOP enum */ -+ -+ int num_beats ; /* this is NOT the amount of quarter notes !!!*/ -+ /* a full bar of 4/4 is 4 beats */ -+ /* a full bar of 7/8 is 7 beats */ -+ -+ float bpm ; /* suggestion, as it can be calculated using other fields:*/ -+ /* file's lenght, file's sampleRate and our time_sig_den*/ -+ /* -> bpms are always the amount of _quarter notes_ per minute */ -+ -+ int root_key ; /* MIDI note, or -1 for None */ -+ int future [6] ; -+} SF_LOOP_INFO ; -+ -+ -+/* Struct used to retrieve broadcast (EBU) information from a file. -+** Strongly (!) based on EBU "bext" chunk format used in Broadcast WAVE. -+*/ -+#define SF_BROADCAST_INFO_VAR(coding_hist_size) \ -+ struct \ -+ { char description [256] ; \ -+ char originator [32] ; \ -+ char originator_reference [32] ; \ -+ char origination_date [10] ; \ -+ char origination_time [8] ; \ -+ unsigned int time_reference_low ; \ -+ unsigned int time_reference_high ; \ -+ short version ; \ -+ char umid [64] ; \ -+ char reserved [190] ; \ -+ unsigned int coding_history_size ; \ -+ char coding_history [coding_hist_size] ; \ -+ } -+ -+/* SF_BROADCAST_INFO is the above struct with coding_history field of 256 bytes. */ -+typedef SF_BROADCAST_INFO_VAR (256) SF_BROADCAST_INFO ; -+ -+ -+/* Virtual I/O functionality. */ -+ -+typedef sf_count_t (*sf_vio_get_filelen) (void *user_data) ; -+typedef sf_count_t (*sf_vio_seek) (sf_count_t offset, int whence, void *user_data) ; -+typedef sf_count_t (*sf_vio_read) (void *ptr, sf_count_t count, void *user_data) ; -+typedef sf_count_t (*sf_vio_write) (const void *ptr, sf_count_t count, void *user_data) ; -+typedef sf_count_t (*sf_vio_tell) (void *user_data) ; -+ -+struct SF_VIRTUAL_IO -+{ sf_vio_get_filelen get_filelen ; -+ sf_vio_seek seek ; -+ sf_vio_read read ; -+ sf_vio_write write ; -+ sf_vio_tell tell ; -+} ; -+ -+typedef struct SF_VIRTUAL_IO SF_VIRTUAL_IO ; -+ -+ -+/* Open the specified file for read, write or both. On error, this will -+** return a NULL pointer. To find the error number, pass a NULL SNDFILE -+** to sf_strerror (). -+** All calls to sf_open() should be matched with a call to sf_close(). -+*/ -+ -+SNDFILE* sf_open (const char *path, int mode, SF_INFO *sfinfo) ; -+ -+ -+/* Use the existing file descriptor to create a SNDFILE object. If close_desc -+** is TRUE, the file descriptor will be closed when sf_close() is called. If -+** it is FALSE, the descritor will not be closed. -+** When passed a descriptor like this, the library will assume that the start -+** of file header is at the current file offset. This allows sound files within -+** larger container files to be read and/or written. -+** On error, this will return a NULL pointer. To find the error number, pass a -+** NULL SNDFILE to sf_strerror (). -+** All calls to sf_open_fd() should be matched with a call to sf_close(). -+ -+*/ -+ -+SNDFILE* sf_open_fd (int fd, int mode, SF_INFO *sfinfo, int close_desc) ; -+ -+SNDFILE* sf_open_virtual (SF_VIRTUAL_IO *sfvirtual, int mode, SF_INFO *sfinfo, void *user_data) ; -+ -+ -+/* sf_error () returns a error number which can be translated to a text -+** string using sf_error_number(). -+*/ -+ -+int sf_error (SNDFILE *sndfile) ; -+ -+ -+/* sf_strerror () returns to the caller a pointer to the current error message for -+** the given SNDFILE. -+*/ -+ -+const char* sf_strerror (SNDFILE *sndfile) ; -+ -+ -+/* sf_error_number () allows the retrieval of the error string for each internal -+** error number. -+** -+*/ -+ -+const char* sf_error_number (int errnum) ; -+ -+ -+/* The following two error functions are deprecated but they will remain in the -+** library for the forseeable future. The function sf_strerror() should be used -+** in their place. -+*/ -+ -+int sf_perror (SNDFILE *sndfile) ; -+int sf_error_str (SNDFILE *sndfile, char* str, size_t len) ; -+ -+ -+/* Return TRUE if fields of the SF_INFO struct are a valid combination of values. */ -+ -+int sf_command (SNDFILE *sndfile, int command, void *data, int datasize) ; -+ -+ -+/* Return TRUE if fields of the SF_INFO struct are a valid combination of values. */ -+ -+int sf_format_check (const SF_INFO *info) ; -+ -+ -+/* Seek within the waveform data chunk of the SNDFILE. sf_seek () uses -+** the same values for whence (SEEK_SET, SEEK_CUR and SEEK_END) as -+** stdio.h function fseek (). -+** An offset of zero with whence set to SEEK_SET will position the -+** read / write pointer to the first data sample. -+** On success sf_seek returns the current position in (multi-channel) -+** samples from the start of the file. -+** Please see the libsndfile documentation for moving the read pointer -+** separately from the write pointer on files open in mode SFM_RDWR. -+** On error all of these functions return -1. -+*/ -+ -+sf_count_t sf_seek (SNDFILE *sndfile, sf_count_t frames, int whence) ; -+ -+ -+/* Functions for retrieving and setting string data within sound files. -+** Not all file types support this features; AIFF and WAV do. For both -+** functions, the str_type parameter must be one of the SF_STR_* values -+** defined above. -+** On error, sf_set_string() returns non-zero while sf_get_string() -+** returns NULL. -+*/ -+ -+int sf_set_string (SNDFILE *sndfile, int str_type, const char* str) ; -+ -+const char* sf_get_string (SNDFILE *sndfile, int str_type) ; -+ -+ -+/* Return the library version string. */ -+ -+const char * sf_version_string (void) ; -+ -+ -+/* Functions for reading/writing the waveform data of a sound file. -+*/ -+ -+sf_count_t sf_read_raw (SNDFILE *sndfile, void *ptr, sf_count_t bytes) ; -+sf_count_t sf_write_raw (SNDFILE *sndfile, const void *ptr, sf_count_t bytes) ; -+ -+ -+/* Functions for reading and writing the data chunk in terms of frames. -+** The number of items actually read/written = frames * number of channels. -+** sf_xxxx_raw read/writes the raw data bytes from/to the file -+** sf_xxxx_short passes data in the native short format -+** sf_xxxx_int passes data in the native int format -+** sf_xxxx_float passes data in the native float format -+** sf_xxxx_double passes data in the native double format -+** All of these read/write function return number of frames read/written. -+*/ -+ -+sf_count_t sf_readf_short (SNDFILE *sndfile, short *ptr, sf_count_t frames) ; -+sf_count_t sf_writef_short (SNDFILE *sndfile, const short *ptr, sf_count_t frames) ; -+ -+sf_count_t sf_readf_int (SNDFILE *sndfile, int *ptr, sf_count_t frames) ; -+sf_count_t sf_writef_int (SNDFILE *sndfile, const int *ptr, sf_count_t frames) ; -+ -+sf_count_t sf_readf_float (SNDFILE *sndfile, float *ptr, sf_count_t frames) ; -+sf_count_t sf_writef_float (SNDFILE *sndfile, const float *ptr, sf_count_t frames) ; -+ -+sf_count_t sf_readf_double (SNDFILE *sndfile, double *ptr, sf_count_t frames) ; -+sf_count_t sf_writef_double (SNDFILE *sndfile, const double *ptr, sf_count_t frames) ; -+ -+ -+/* Functions for reading and writing the data chunk in terms of items. -+** Otherwise similar to above. -+** All of these read/write function return number of items read/written. -+*/ -+ -+sf_count_t sf_read_short (SNDFILE *sndfile, short *ptr, sf_count_t items) ; -+sf_count_t sf_write_short (SNDFILE *sndfile, const short *ptr, sf_count_t items) ; -+ -+sf_count_t sf_read_int (SNDFILE *sndfile, int *ptr, sf_count_t items) ; -+sf_count_t sf_write_int (SNDFILE *sndfile, const int *ptr, sf_count_t items) ; -+ -+sf_count_t sf_read_float (SNDFILE *sndfile, float *ptr, sf_count_t items) ; -+sf_count_t sf_write_float (SNDFILE *sndfile, const float *ptr, sf_count_t items) ; -+ -+sf_count_t sf_read_double (SNDFILE *sndfile, double *ptr, sf_count_t items) ; -+sf_count_t sf_write_double (SNDFILE *sndfile, const double *ptr, sf_count_t items) ; -+ -+ -+/* Close the SNDFILE and clean up all memory allocations associated with this -+** file. -+** Returns 0 on success, or an error number. -+*/ -+ -+int sf_close (SNDFILE *sndfile) ; -+ -+ -+/* If the file is opened SFM_WRITE or SFM_RDWR, call fsync() on the file -+** to force the writing of data to disk. If the file is opened SFM_READ -+** no action is taken. -+*/ -+ -+void sf_write_sync (SNDFILE *sndfile) ; -+ -+ -+ -+/* The function sf_wchar_open() is Windows Only! -+** Open a file passing in a Windows Unicode filename. Otherwise, this is -+** the same as sf_open(). -+** -+** In order for this to work, you need to do the following: -+** -+** #include <windows.h> -+** #define ENABLE_SNDFILE_WINDOWS_PROTOTYPES 1 -+** #including <sndfile.h> -+*/ -+ -+#if (defined (ENABLE_SNDFILE_WINDOWS_PROTOTYPES) && ENABLE_SNDFILE_WINDOWS_PROTOTYPES) -+SNDFILE* sf_wchar_open (LPCWSTR wpath, int mode, SF_INFO *sfinfo) ; -+#endif -+ -+ -+ -+#ifdef __cplusplus -+} /* extern "C" */ -+#endif /* __cplusplus */ -+ -+#endif /* SNDFILE_H */ -+ ---- a/src/wav.c -+++ b/src/wav.c -@@ -272,14 +272,14 @@ wav_open (SF_PRIVATE *psf) - error = wav_w64_msadpcm_init (psf, blockalign, framesperblock) ; - break ; - -- case SF_FORMAT_G721_32 : -+ /*case SF_FORMAT_G721_32 : - error = g72x_init (psf) ; -- break ; -+ break ;*/ - /* Lite remove end */ - -- case SF_FORMAT_GSM610 : -+ /*case SF_FORMAT_GSM610 : - error = gsm610_init (psf) ; -- break ; -+ break ;*/ - - default : return SFE_UNIMPLEMENTED ; - } ; ---- a/src/aiff.c -+++ b/src/aiff.c -@@ -344,9 +344,9 @@ aiff_open (SF_PRIVATE *psf) - break ; - /* Lite remove end */ - -- case SF_FORMAT_GSM610 : -+ /*case SF_FORMAT_GSM610 : - error = gsm610_init (psf) ; -- break ; -+ break ;*/ - - default : return SFE_UNIMPLEMENTED ; - } ; ---- a/src/au.c -+++ b/src/au.c -@@ -161,7 +161,7 @@ au_open (SF_PRIVATE *psf) - error = double64_init (psf) ; - break ; - -- case SF_FORMAT_G721_32 : -+ /*case SF_FORMAT_G721_32 : - error = g72x_init (psf) ; - psf->sf.seekable = SF_FALSE ; - break ; -@@ -174,7 +174,7 @@ au_open (SF_PRIVATE *psf) - case SF_FORMAT_G723_40 : - error = g72x_init (psf) ; - psf->sf.seekable = SF_FALSE ; -- break ; -+ break ;*/ - /* Lite remove end */ - - default : break ; ---- a/src/raw.c -+++ b/src/raw.c -@@ -67,9 +67,9 @@ raw_open (SF_PRIVATE *psf) - error = alaw_init (psf) ; - break ; - -- case SF_FORMAT_GSM610 : -+ /*case SF_FORMAT_GSM610 : - error = gsm610_init (psf) ; -- break ; -+ break ;*/ - - /* Lite remove start */ - case SF_FORMAT_FLOAT : ---- a/src/w64.c -+++ b/src/w64.c -@@ -204,9 +204,9 @@ w64_open (SF_PRIVATE *psf) - break ; - /* Lite remove end */ - -- case SF_FORMAT_GSM610 : -+ /*case SF_FORMAT_GSM610 : - error = gsm610_init (psf) ; -- break ; -+ break ;*/ - - default : return SFE_UNIMPLEMENTED ; - } ; ---- a/src/test_file_io.c -+++ b/src/test_file_io.c -@@ -64,7 +64,7 @@ file_open_test (const char *filename) - psf = &sf_data ; - - /* Ensure that the file doesn't already exist. */ -- if (unlink (filename) != 0 && errno != ENOENT) -+ if (_unlink (filename) != 0 && errno != ENOENT) - { printf ("\n\nLine %d: unlink failed (%d) : %s\n\n", __LINE__, errno, strerror (errno)) ; - exit (1) ; - } ; -@@ -88,7 +88,7 @@ file_open_test (const char *filename) - - test_close_or_die (psf, __LINE__) ; - -- unlink (psf->file.path.c) ; -+ _unlink(psf->file.path.c) ; - - /* Test file open in read/write mode for a non-existant file. */ - psf->file.mode = SFM_RDWR ; -@@ -102,7 +102,7 @@ file_open_test (const char *filename) - - test_close_or_die (psf, __LINE__) ; - -- unlink (psf->file.path.c) ; -+ _unlink(psf->file.path.c) ; - puts ("ok") ; - } /* file_open_test */ - -@@ -433,6 +433,6 @@ test_file_io (void) - file_read_write_test (filename) ; - file_truncate_test (filename) ; - -- unlink (filename) ; -+ _unlink(filename) ; - } /* main */ - --- -2.10.2.windows.1 - diff --git a/contrib/src/sndfile/soundcard.patch b/contrib/src/sndfile/soundcard.patch deleted file mode 100644 index 298d0e12bb94e29ce812d0e50265ccff04a73edb..0000000000000000000000000000000000000000 --- a/contrib/src/sndfile/soundcard.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- a/programs/sndfile-play.c.orig 2014-06-12 16:00:39.348060215 -0400 -+++ b/programs/sndfile-play.c 2014-06-12 16:01:05.660059438 -0400 -@@ -52,7 +52,12 @@ - #include <sys/time.h> - #endif - --#if defined (__linux__) || defined (__FreeBSD_kernel__) || defined (__FreeBSD__) -+#if defined(__ANDROID__) -+ #include <fcntl.h> -+ #include <sys/ioctl.h> -+ #include <linux/soundcard.h> -+ -+#elif defined (__linux__) || defined (__FreeBSD_kernel__) || defined (__FreeBSD__) - #include <fcntl.h> - #include <sys/ioctl.h> - #include <sys/soundcard.h> diff --git a/docker/Dockerfile_ubuntu_16.04 b/docker/Dockerfile_ubuntu_16.04 index fcb1a3bf61a57a42d485d70e85de365e259ec515..488626fa66ea5951e2b2fa994a1cd326e935bd96 100644 --- a/docker/Dockerfile_ubuntu_16.04 +++ b/docker/Dockerfile_ubuntu_16.04 @@ -32,7 +32,6 @@ RUN apt-get update && \ libpcre3-dev \ libyaml-cpp-dev \ libboost-dev \ - libsndfile1-dev \ libxext-dev \ libxfixes-dev \ libspeex-dev \ diff --git a/src/Makefile.am b/src/Makefile.am index 4f46170f8ecfcf23f1984aba4aa2e8411c362ddc..82e8c894ea409a3b35dd77e6e688bbdf6a475e6c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -50,7 +50,6 @@ libring_la_LDFLAGS = \ @ALSA_LIBS@ \ @PULSEAUDIO_LIBS@ \ @SAMPLERATE_LIBS@ \ - @SNDFILE_LIBS@ \ @YAMLCPP_LIBS@ \ @JSONCPP_LIBS@ \ @SPEEXDSP_LIBS@ \ diff --git a/src/call.cpp b/src/call.cpp index fb6a4f8605d0d0d70c1b096564d4a4435104229e..24e4b0cbb4b95e75d3c9e6d369cd002b993d893c 100644 --- a/src/call.cpp +++ b/src/call.cpp @@ -26,7 +26,6 @@ #include "audio/ringbufferpool.h" #include "dring/call_const.h" #include "client/ring_signal.h" -#include "audio/audiorecord.h" #include "sip/sip_utils.h" #include "ip_utils.h" #include "array_size.h" diff --git a/src/conference.cpp b/src/conference.cpp index f5d230ae3ad568d7ec3abc0880fd715bdb3410e5..32558eacf31bbfebe071b00fd81978e12d8df0f7 100644 --- a/src/conference.cpp +++ b/src/conference.cpp @@ -25,7 +25,6 @@ #include "manager.h" #include "audio/audiolayer.h" #include "audio/ringbufferpool.h" -#include "audio/audiorecord.h" #ifdef RING_VIDEO #include "sip/sipcall.h" diff --git a/src/media/audio/Makefile.am b/src/media/audio/Makefile.am index 66161b3184c51127deee958795741d8d88e7d83c..904df3c81dd21b810d216da81cfff1ee435193b9 100644 --- a/src/media/audio/Makefile.am +++ b/src/media/audio/Makefile.am @@ -42,8 +42,6 @@ libaudio_la_SOURCES = \ audioloop.cpp \ ringbuffer.cpp \ ringbufferpool.cpp \ - audiorecord.cpp \ - audiorecorder.cpp \ audiolayer.cpp \ resampler.cpp \ $(RING_SPEEXDSP_SRC) \ @@ -64,8 +62,6 @@ noinst_HEADERS = \ audioloop.h \ ringbuffer.h \ ringbufferpool.h \ - audiorecord.h \ - audiorecorder.h \ audiolayer.h \ $(RING_SPEEXDSP_HEAD) \ dcblocker.h \ diff --git a/src/media/audio/audiobuffer.cpp b/src/media/audio/audiobuffer.cpp index 9a8ce6d3ffa00149e11cf438db138088870d4f62..778d424230ad1a23eabecf237e9f24421435b7fd 100644 --- a/src/media/audio/audiobuffer.cpp +++ b/src/media/audio/audiobuffer.cpp @@ -332,4 +332,26 @@ AudioBuffer::toAVFrame() const return frame; } +int +AudioBuffer::append(AVFrame* frame) +{ + // FIXME we assume frame is s16 interleaved + if (channels() != static_cast<unsigned>(frame->channels) + || getSampleRate() != frame->sample_rate) { + auto newFormat = AudioFormat{(unsigned)frame->sample_rate, (unsigned)frame->channels}; + setFormat(newFormat); + } + + AudioBuffer toAppend(frame->nb_samples, + {(unsigned)frame->sample_rate, (unsigned)frame->channels}); + toAppend.deinterleave(reinterpret_cast<const AudioSample*>(frame->extended_data[0]), + frame->nb_samples, frame->channels); + + for (size_t c = 0; c < samples_.size(); ++c) { + samples_[c].insert(samples_[c].end(), toAppend.samples_[c].begin(), toAppend.samples_[c].end()); + } + + return 0; +} + } // namespace ring diff --git a/src/media/audio/audiobuffer.h b/src/media/audio/audiobuffer.h index 9606b34925e714f8ea267f53f3f9e59e0854bd42..aea0205f52ae8a4a7b419bc28cb374e3aa794ec8 100644 --- a/src/media/audio/audiobuffer.h +++ b/src/media/audio/audiobuffer.h @@ -347,6 +347,8 @@ class AudioBuffer { AVFrame* toAVFrame() const; + int append(AVFrame* frame); + private: int sampleRate_; diff --git a/src/media/audio/audiorecord.cpp b/src/media/audio/audiorecord.cpp deleted file mode 100644 index 4656b832ab2320780cee3412113d8888f8325af4..0000000000000000000000000000000000000000 --- a/src/media/audio/audiorecord.cpp +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Copyright (C) 2004-2018 Savoir-faire Linux Inc. - * - * Author: Alexandre Savard <alexandre.savard@savoirfairelinux.com> - * Author: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "audiorecord.h" -#include "logger.h" -#include "fileutils.h" -#include "manager.h" - -#ifndef RING_UWP -#include <sndfile.hh> -#endif - -#include <algorithm> -#include <sstream> // for stringstream -#include <cstdio> -#include <unistd.h> - -namespace ring { - -static std::string -createFilename() -{ - time_t rawtime = time(NULL); - struct tm * timeinfo = localtime(&rawtime); - - std::stringstream out; - - // DATE - out << timeinfo->tm_year + 1900; - - if (timeinfo->tm_mon < 9) // january is 01, not 1 - out << 0; - - out << timeinfo->tm_mon + 1; - - if (timeinfo->tm_mday < 10) // 01 02 03, not 1 2 3 - out << 0; - - out << timeinfo->tm_mday; - - out << '-'; - - // hour - if (timeinfo->tm_hour < 10) // 01 02 03, not 1 2 3 - out << 0; - - out << timeinfo->tm_hour; - - if (timeinfo->tm_min < 10) // 01 02 03, not 1 2 3 - out << 0; - - out << timeinfo->tm_min; - - if (timeinfo->tm_sec < 10) // 01 02 03, not 1 2 3 - out << 0; - - out << timeinfo->tm_sec; - return out.str(); -} - -AudioRecord::AudioRecord() - : sndFormat_(AudioFormat::MONO()) - , filename_(createFilename()) - , savePath_() - , recorder_(this, Manager::instance().getRingBufferPool()) -{ - RING_DBG("Generate filename for this call %s ", filename_.c_str()); -} - -AudioRecord::~AudioRecord() -{ - closeFile(); -} - -void AudioRecord::setSndFormat(AudioFormat format) -{ - sndFormat_ = format; -} - -void AudioRecord::setRecordingOptions(AudioFormat format, const std::string &path) -{ - std::string filePath; - - // use HOME directory if path is empty, or if path does not exist - if (path.empty() or not fileutils::check_dir(path.c_str())) { - filePath = fileutils::get_home_dir(); - } else { - filePath = path; - } - - sndFormat_ = format; - savePath_ = (*filePath.rbegin() == DIR_SEPARATOR_CH) ? filePath : filePath + DIR_SEPARATOR_STR; -} - -static bool -nonFilenameCharacter(char c) -{ - return not(std::isalnum(c) or c == '_' or c == '.'); -} - -// Replace any character that is inappropriate for a filename with '_' -static std::string -sanitize(std::string s) -{ - std::replace_if(s.begin(), s.end(), nonFilenameCharacter, '_'); - return s; -} - -void AudioRecord::initFilename(const std::string &peerNumber) -{ - RING_DBG("Initialize audio record for peer : %s", peerNumber.c_str()); - // if savePath_ don't contains filename - if (savePath_.find(".wav") == std::string::npos) { - filename_ = createFilename(); - filename_.append("-" + sanitize(peerNumber) + "-" PACKAGE); - filename_.append(".wav"); - } else { - filename_ = ""; - } -} - -std::string AudioRecord::getPath() const -{ - return savePath_ + filename_; -} - -bool -AudioRecord::openFile() -{ -#ifndef RING_UWP - fileHandle_.reset(); // do it before calling fileExists() - - const bool doAppend = fileExists(); - const int access = doAppend ? SFM_RDWR : SFM_WRITE; - - RING_DBG("Opening file %s with format %s", getPath().c_str(), sndFormat_.toString().c_str()); - fileHandle_.reset(new SndfileHandle (getPath().c_str(), - access, - SF_FORMAT_WAV | SF_FORMAT_PCM_16, - sndFormat_.nb_channels, - sndFormat_.sample_rate)); - - // check overloaded boolean operator - if (!*fileHandle_) { - RING_WARN("Could not open WAV file!"); - fileHandle_.reset(); - return false; - } - - if (doAppend and fileHandle_->seek(0, SEEK_END) < 0) - RING_WARN("Couldn't seek to the end of the file "); - - return true; -#else - return false; -#endif -} - -void -AudioRecord::closeFile() -{ - stopRecording(); // needed as recData accesses to fileHandle_ - fileHandle_.reset(); -} - -bool -AudioRecord::isOpenFile() const noexcept -{ - return static_cast<bool>(fileHandle_); -} - -bool AudioRecord::fileExists() const -{ - return access(getPath().c_str(), F_OK) != -1; -} - -bool AudioRecord::isRecording() const -{ - return recordingEnabled_; -} - -bool -AudioRecord::toggleRecording() -{ - if (isOpenFile()) - recordingEnabled_ = !recordingEnabled_; - else if (openFile()) { - recordingEnabled_ = true; - recorder_.start(); - } - - return recordingEnabled_; -} - -void -AudioRecord::stopRecording() const noexcept -{ - RING_DBG("Stop recording %s", getPath().c_str()); - recordingEnabled_ = false; -} - -void -AudioRecord::recData(AudioBuffer& buffer) -{ -#ifndef _MSC_VER - if (not recordingEnabled_) - return; - - auto interleaved = buffer.interleave(); - const int nSamples = interleaved.size(); - if (fileHandle_->write(interleaved.data(), nSamples) != nSamples) { - RING_WARN("Could not record data!"); - } else { - fileHandle_->writeSync(); - } -#endif -} - -} // namespace ring diff --git a/src/media/audio/audiorecord.h b/src/media/audio/audiorecord.h deleted file mode 100644 index 0d00fa8df470bd5ff29ddd3f7f4f5236af831722..0000000000000000000000000000000000000000 --- a/src/media/audio/audiorecord.h +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright (C) 2004-2018 Savoir-faire Linux Inc. - * - * Author: Alexandre Savard <alexandre.savard@savoirfairelinux.com> - * Author: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#pragma once - -#include "audiobuffer.h" -#include "audiorecorder.h" -#include "noncopyable.h" - -#include <atomic> -#include <memory> -#include <string> -#include <cstdlib> - -class SndfileHandle; - -namespace ring { - -class AudioRecord { - public: - AudioRecord(); - ~AudioRecord(); - - void setSndFormat(AudioFormat format); - void setRecordingOptions(AudioFormat format, const std::string &path); - - /** - * Init recording file path - */ - void initFilename(const std::string &peerNumber); - - /** - * Return the file path of the recording - */ - std::string getPath() const; - - /** - * Check if no other file is opened, then create a new one - * @param filename A string containing the file (with/without extension) - * @param type The sound file format (FILE_RAW, FILE_WAVE) - * @param format Internal sound format (INT16 / INT32) - * @return bool True if file was opened - */ - bool openFile(); - - /** - * Close the opened recording file. If wave: cout the number of byte - */ - void closeFile(); - - /** - * Check if a file is already opened - */ - bool isOpenFile() const noexcept; - - /** - * Check if a file already exists - */ - bool fileExists() const; - - /** - * Check recording state - */ - bool isRecording() const; - - /** - * Toggle recording state - */ - bool toggleRecording(); - - /** - * Stop recording flag - */ - void stopRecording() const noexcept; - - /** - * Record a chunk of data in an openend file - * @param buffer The data chunk to be recorded - * @param nSamples Number of samples (number of bytes) to be recorded - */ - void recData(AudioBuffer& buffer); - - std::string getRecorderID() const { - return recorder_.getRecorderID(); - } - - private: - NON_COPYABLE(AudioRecord); - - /** - * Open an existing raw file, used when the call is set on hold - */ - bool openExistingRawFile(); - - /** - * Open an existing wav file, used when the call is set on hold - */ - bool openExistingWavFile(); - - /** - * Compute the number of byte recorded and close the file - */ - void closeWavFile(); - - /** - * Pointer to the recorded file - */ - std::shared_ptr<SndfileHandle> fileHandle_; - - /** - * Number of channels - */ - AudioFormat sndFormat_; - - /** - * Recording flage - */ - mutable std::atomic<bool> recordingEnabled_ {false}; - - /** - * Filename for this recording - */ - std::string filename_; - - /** - * Path for this recording - */ - std::string savePath_; - - /** - * Audio recording thread - */ - AudioRecorder recorder_; -}; - -} // namespace ring diff --git a/src/media/audio/audiorecorder.cpp b/src/media/audio/audiorecorder.cpp deleted file mode 100644 index 80012b85d6cc8e24294b4b2b77a21bfc29c5897e..0000000000000000000000000000000000000000 --- a/src/media/audio/audiorecorder.cpp +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (C) 2004-2018 Savoir-faire Linux Inc. - * - * Author: Alexandre Savard <alexandre.savard@savoirfairelinux.com> - * Author: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#include "audiorecorder.h" - -#include "audiorecord.h" -#include "ringbufferpool.h" -#include "audiobuffer.h" - -#include <chrono> -#include <thread> -#include <sstream> -#include <algorithm> // std::min - -namespace ring { - -static constexpr std::size_t BUFFER_LENGTH {10000}; -static constexpr auto SLEEP_TIME = std::chrono::milliseconds(20); - -AudioRecorder::AudioRecorder(AudioRecord* arec, RingBufferPool& rbp) - : ringBufferPool_(rbp) - , buffer_(new AudioBuffer(BUFFER_LENGTH, AudioFormat::NONE())) - , arecord_(arec) - , thread_( - [] { return true; }, - [this] { process(); }, - [] {}) -{ - std::string id("processd_"); - - // convert count into string - std::string s; - std::ostringstream out; - out << nextProcessID(); - s = out.str(); - - recorderId_ = id.append(s); -} - -AudioRecorder::~AudioRecorder() -{ - thread_.join(); -} - -unsigned -AudioRecorder::nextProcessID() noexcept -{ - static unsigned id = 0; - return ++id; -} - -void -AudioRecorder::start() -{ - if (thread_.isRunning()) - return; - buffer_->setFormat(ringBufferPool_.getInternalAudioFormat()); - thread_.start(); -} - -void -AudioRecorder::process() -{ - auto availableSamples = ringBufferPool_.availableForGet(recorderId_); - buffer_->resize(std::min(availableSamples, BUFFER_LENGTH)); - ringBufferPool_.getData(*buffer_, recorderId_); - - if (availableSamples > 0) - arecord_->recData(*buffer_); - - std::this_thread::sleep_for(SLEEP_TIME); -} - -} // namespace ring diff --git a/src/media/audio/audiorecorder.h b/src/media/audio/audiorecorder.h deleted file mode 100644 index 7c2d1466b10d5e2c07fbc1c284536ae6aa051c79..0000000000000000000000000000000000000000 --- a/src/media/audio/audiorecorder.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (C) 2004-2018 Savoir-faire Linux Inc. - * - * Author: Alexandre Savard <alexandre.savard@savoirfairelinux.com> - * Author: Guillaume Roguez <guillaume.roguez@savoirfairelinux.com> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#pragma once - -#include "threadloop.h" -#include "noncopyable.h" - -#include <string> -#include <memory> - -namespace ring { - -class RingBufferPool; -class AudioRecord; -class AudioBuffer; - -class AudioRecorder { -public: - AudioRecorder(AudioRecord* arec, RingBufferPool& rbp); - ~AudioRecorder(); - - std::string getRecorderID() const { - return recorderId_; - } - - /** - * Call to start recording. - */ - void start(); - -private: - NON_COPYABLE(AudioRecorder); - static unsigned nextProcessID() noexcept; - void process(); - - std::string recorderId_; - RingBufferPool& ringBufferPool_; - std::unique_ptr<AudioBuffer> buffer_; - AudioRecord* arecord_; - ThreadLoop thread_; -}; - -} // namespace ring diff --git a/src/media/audio/sound/audiofile.cpp b/src/media/audio/sound/audiofile.cpp index 025dd4f6cc44713fbbf03c3b302bea83a899a10e..34297863701a622390c89f161616534a88181983 100644 --- a/src/media/audio/sound/audiofile.cpp +++ b/src/media/audio/sound/audiofile.cpp @@ -27,13 +27,11 @@ #include <vector> #include <climits> -#ifndef RING_UWP -#include <sndfile.hh> -#endif - +#include "libav_deps.h" #include "audiofile.h" #include "audio/resampler.h" #include "manager.h" +#include "media_decoder.h" #include "client/ring_signal.h" #include "logger.h" @@ -62,76 +60,57 @@ AudioFile::onBufferFinish() AudioFile::AudioFile(const std::string &fileName, unsigned int sampleRate) : AudioLoop(sampleRate), filepath_(fileName), updatePlaybackScale_(0) { -#ifndef RING_UWP - int format; - bool hasHeader = true; - - if (filepath_.find(".wav") != std::string::npos) { - format = SF_FORMAT_WAV; - } else if (filepath_.find(".ul") != std::string::npos) { - format = SF_FORMAT_RAW | SF_FORMAT_ULAW; - hasHeader = false; - } else if (filepath_.find(".al") != std::string::npos) { - format = SF_FORMAT_RAW | SF_FORMAT_ALAW; - hasHeader = false; - } else if (filepath_.find(".au") != std::string::npos) { - format = SF_FORMAT_AU; - } else if (filepath_.find(".flac") != std::string::npos) { - format = SF_FORMAT_FLAC; - } else if (filepath_.find(".ogg") != std::string::npos) { - format = SF_FORMAT_OGG; - } else { - RING_WARN("No file extension, guessing WAV"); - format = SF_FORMAT_WAV; - } - - SndfileHandle fileHandle(fileName.c_str(), SFM_READ, format, hasHeader ? 0 : 1, - hasHeader ? 0 : 8000); - - if (!fileHandle) - throw AudioFileException("File handle " + fileName + " could not be created"); - if (fileHandle.error()) { - RING_ERR("Error fileHandle: %s", fileHandle.strError()); - throw AudioFileException("File " + fileName + " doesn't exist"); - } - - switch (fileHandle.channels()) { - case 1: - case 2: + auto decoder = std::make_unique<MediaDecoder>(); + DeviceParams dev; + dev.input = fileName; + + if (decoder->openInput(dev) < 0) + throw AudioFileException("File could not be opened: " + fileName); + + if (decoder->setupFromAudioData() < 0) + throw AudioFileException("Decoder setup failed: " + fileName); + + const auto& ms = decoder->getStream(); + + auto filter = std::make_unique<MediaFilter>(); + // aformat=sample_fmts=s16:channel_layouts=stereo + if (filter->initialize("aformat=sample_fmts=s16:channel_layouts=stereo|mono:sample_rates=" + + std::to_string(getFormat().sample_rate), ms) < 0) + throw AudioFileException("Failed to create resampler"); + + auto buf = std::make_unique<AudioBuffer>(0, getFormat()); + bool done = false; + while (!done) { + AudioFrame frame; + AVFrame* resampled; + switch (decoder->decode(frame)) { + case MediaDecoder::Status::FrameFinished: + // TODO move this code to Resampler class with conditional resampling + if (filter->feedInput(frame.pointer()) < 0) + throw AudioFileException("Frame could not be resampled"); + if (!(resampled = filter->readOutput())) + throw AudioFileException("Frame could not be resampled"); + if (buf->append(resampled) < 0) { + av_frame_free(&resampled); + throw AudioFileException("Error while decoding: " + fileName); + } else { + av_frame_free(&resampled); + } + break; + case MediaDecoder::Status::DecodeError: + case MediaDecoder::Status::ReadError: + throw AudioFileException("File cannot be decoded: " + fileName); + case MediaDecoder::Status::EOFError: + done = true; break; + case MediaDecoder::Status::Success: default: - throw AudioFileException("Unsupported number of channels"); + break; + } } - // get # of bytes in file - const size_t fileSize = fileHandle.seek(0, SEEK_END); - fileHandle.seek(0, SEEK_SET); - - const sf_count_t nbFrames = hasHeader ? fileHandle.frames() : fileSize / fileHandle.channels(); - - AudioSample * interleaved = new AudioSample[nbFrames * fileHandle.channels()]; - - // get n "items", aka samples (not frames) - fileHandle.read(interleaved, nbFrames * fileHandle.channels()); - - AudioBuffer * buffer = new AudioBuffer(nbFrames, AudioFormat(fileHandle.samplerate(), fileHandle.channels())); - buffer->deinterleave(interleaved, nbFrames, fileHandle.channels()); - delete [] interleaved; - - const int rate = static_cast<int32_t>(sampleRate); - - if (fileHandle.samplerate() != rate) { - Resampler resampler(std::max(fileHandle.samplerate(), rate), fileHandle.channels(), true); - AudioBuffer * resampled = new AudioBuffer(nbFrames, AudioFormat(rate, fileHandle.channels())); - resampler.resample(*buffer, *resampled); - delete buffer; - delete buffer_; - buffer_ = resampled; - } else { - delete buffer_; - buffer_ = buffer; - } -#endif + delete buffer_; + buffer_ = buf.release(); } } // namespace ring diff --git a/src/media/recordable.cpp b/src/media/recordable.cpp index 7bb8d9f26a845b09f81b0516d496fd8a0cf672f8..5fc2569b095e0c9caf5d48325159cc5ca2147001 100644 --- a/src/media/recordable.cpp +++ b/src/media/recordable.cpp @@ -20,7 +20,6 @@ */ #include "recordable.h" -#include "audio/audiorecord.h" #include "audio/ringbufferpool.h" #include "manager.h" #include "logger.h"