Commit 3d5dafef authored by Gautier Pelloux-Prayer's avatar Gautier Pelloux-Prayer

Merge remote-tracking branch 'origin/master' into new_adaptive_algorithm

Conflicts:
	include/mediastreamer2/bitratecontrol.h
	src/voip/bitratecontrol.c
	src/voip/mediastream.c
	src/voip/qosanalyzer.c
	src/voip/videostream.c
parents 4d8fb4bc e3eda315
......@@ -43,3 +43,4 @@ src/gitversion.h
help/doc/
tester/recorded_hello8000-1s.wav
tester/recorded_hello16000-1s.wav
*.vcxproj.*
......@@ -121,7 +121,7 @@ AC_DEFUN([MS_CHECK_VIDEO],[
dnl check for new/old ffmpeg header file layout
CPPFLAGS_save=$CPPFLAGS
CPPFLAGS="$FFMPEG_CFLAGS $CPPFLAGS"
CPPFLAGS="$FFMPEG_CFLAGS $CPPFLAGS -Wno-error"
AC_CHECK_HEADERS(libavcodec/avcodec.h)
CPPFLAGS=$CPPFLAGS_save
......@@ -142,7 +142,7 @@ AC_DEFUN([MS_CHECK_VIDEO],[
dnl # include "swscale.h" // private linhone swscale.h
dnl #endif
CPPFLAGS_save=$CPPFLAGS
CPPFLAGS="$SWSCALE_CFLAGS $CPPFLAGS"
CPPFLAGS="$SWSCALE_CFLAGS $CPPFLAGS -Wno-error"
AC_CHECK_HEADERS(libswscale/swscale.h)
CPPFLAGS=$CPPFLAGS_save
......@@ -151,6 +151,9 @@ AC_DEFUN([MS_CHECK_VIDEO],[
AC_CHECK_LIB(avcodec,avcodec_get_context_defaults3, [AC_DEFINE([HAVE_FUN_avcodec_get_context_defaults3], [], [Have ffmpeg function])] , , $FFMPEG_LIBS )
AC_CHECK_LIB(avcodec,avcodec_open2, [AC_DEFINE([HAVE_FUN_avcodec_open2], [], [Have ffmpeg function])] , , $FFMPEG_LIBS )
AC_CHECK_LIB(avcodec,avcodec_encode_video2, [AC_DEFINE([HAVE_FUN_avcodec_encode_video2], [], [Have ffmpeg function])] , , $FFMPEG_LIBS )
AC_CHECK_LIB(avutil,av_frame_alloc, [AC_DEFINE([HAVE_FUN_av_frame_alloc], [], [Have ffmpeg function])] , , $FFMPEG_LIBS )
AC_CHECK_LIB(avutil,av_frame_free, [AC_DEFINE([HAVE_FUN_av_frame_free], [], [Have ffmpeg function])] , , $FFMPEG_LIBS )
AC_CHECK_LIB(avutil,av_frame_unref, [AC_DEFINE([HAVE_FUN_av_frame_unref], [], [Have ffmpeg function])] , , $FFMPEG_LIBS )
LIBS=$LIBS_save
......
......@@ -124,6 +124,7 @@ LOCAL_SRC_FILES += \
voip/layouts.c \
utils/shaders.c \
utils/opengles_display.c \
utils/ffmpeg-priv.c \
videofilters/videoenc.c \
videofilters/videodec.c \
videofilters/pixconv.c \
......
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="mediastream"
ProjectGUID="{F158434B-A7BD-4683-87FD-33AF6B450612}"
RootNamespace="mediastream"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\..\..\..\ortp\include;..\..\..\include"
PreprocessorDefinitions="WIN32;_CONSOLE;VIDEO_ENABLED;_DEBUG"
MinimalRebuild="true"
ExceptionHandling="1"
BasicRuntimeChecks="0"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="4"
CompileAs="1"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="mediastreamer2.lib ortp.lib"
LinkIncremental="2"
AdditionalLibraryDirectories="&quot;..\$(OutDir)&quot;;&quot;$(OutDir)&quot;;&quot;..\..\..\..\oRTP\build\win32native\$(ConfigurationName)&quot;"
GenerateDebugInformation="true"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="echo on&#x0D;&#x0A;mkdir &quot;$(TargetDir)\lib\mediastreamer\plugins&quot; &quot;$(TargetDir)\libexec&quot;&#x0D;&#x0A;copy ..\..\..\..\h264encserver\build\vs\h264encserver\$(IntDir)\*.exe &quot;$(TargetDir)\libexec&quot;&#x0D;&#x0A;copy ..\..\..\..\msremoteh264\build\vs\$(IntDir)\*.dll &quot;$(TargetDir)\lib\mediastreamer\plugins&quot;&#x0D;&#x0A;copy ..\..\..\..\ortp\build\win32native\$(IntDir)\ortp.dll &quot;$(TargetDir)&quot;&#x0D;&#x0A;copy ..\..\..\..\linphone-deps\bin\*.dll &quot;$(TargetDir)&quot;&#x0D;&#x0A;if exist ..\..\..\..\msx264\ copy ..\..\..\..\msx264\build\vs\$(IntDir)\*.dll &quot;$(TargetDir)\lib\mediastreamer\plugins&quot;&#x0D;&#x0A;&#x0D;&#x0A;"
ExcludedFromBuild="false"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="1"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
AdditionalIncludeDirectories="..\..\..\..\ortp\include;..\..\..\include"
PreprocessorDefinitions="WIN32;_CONSOLE;VIDEO_ENABLED;NDEBUG"
MinimalRebuild="true"
BasicRuntimeChecks="0"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
DebugInformationFormat="0"
CompileAs="1"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="mediastreamer2.lib ortp.lib"
LinkIncremental="2"
AdditionalLibraryDirectories="&quot;..\$(OutDir)&quot;;&quot;$(OutDir)&quot;;&quot;..\..\..\..\oRTP\build\win32native\$(ConfigurationName)&quot;"
GenerateDebugInformation="false"
SubSystem="1"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="echo on&#x0D;&#x0A;mkdir &quot;$(TargetDir)\lib\mediastreamer\plugins&quot; &quot;$(TargetDir)\libexec&quot;&#x0D;&#x0A;copy ..\..\..\..\h264encserver\build\vs\h264encserver\$(IntDir)\*.exe &quot;$(TargetDir)\libexec&quot;&#x0D;&#x0A;copy ..\..\..\..\msremoteh264\build\vs\$(IntDir)\*.dll &quot;$(TargetDir)\lib\mediastreamer\plugins&quot;&#x0D;&#x0A;copy ..\..\..\..\ortp\build\win32native\$(IntDir)\ortp.dll &quot;$(TargetDir)&quot;&#x0D;&#x0A;copy ..\..\..\..\linphone-deps\bin\*.dll &quot;$(TargetDir)&quot;&#x0D;&#x0A;if exist ..\..\..\..\msx264\ copy ..\..\..\..\msx264\build\vs\$(IntDir)\*.dll &quot;$(TargetDir)\lib\mediastreamer\plugins&quot;&#x0D;&#x0A;&#x0D;&#x0A;"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath="..\..\..\tools\mediastream.c"
>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{F158434B-A7BD-4683-87FD-33AF6B450612}</ProjectGuid>
<RootNamespace>mediastream</RootNamespace>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
<PostBuildEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</PostBuildEventUseInBuild>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\ortp\include;..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_CONSOLE;VIDEO_ENABLED;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<ExceptionHandling>Sync</ExceptionHandling>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<CompileAs>CompileAsC</CompileAs>
</ClCompile>
<Link>
<AdditionalDependencies>mediastreamer2.lib;ortp.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\$(OutDir);$(OutDir);..\..\..\..\oRTP\build\win32native\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<PostBuildEvent>
<Command>echo on
mkdir "$(TargetDir)\lib\mediastreamer\plugins" "$(TargetDir)\libexec"
copy ..\..\..\..\h264encserver\build\vs\h264encserver\$(IntDir)*.exe "$(TargetDir)\libexec"
copy ..\..\..\..\msremoteh264\build\vs\$(IntDir)*.dll "$(TargetDir)\lib\mediastreamer\plugins"
copy ..\..\..\..\ortp\build\win32native\$(IntDir)ortp.dll "$(TargetDir)"
copy ..\..\..\..\linphone-deps\bin\*.dll "$(TargetDir)"
if exist ..\..\..\..\msx264\ copy ..\..\..\..\msx264\build\vs\$(IntDir)*.dll "$(TargetDir)\lib\mediastreamer\plugins"
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>..\..\..\..\ortp\include;..\..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_CONSOLE;VIDEO_ENABLED;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>
</DebugInformationFormat>
<CompileAs>CompileAsC</CompileAs>
</ClCompile>
<Link>
<AdditionalDependencies>mediastreamer2.lib;ortp.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>..\$(OutDir);$(OutDir);..\..\..\..\oRTP\build\win32native\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>Console</SubSystem>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<PostBuildEvent>
<Command>echo on
mkdir "$(TargetDir)\lib\mediastreamer\plugins" "$(TargetDir)\libexec"
copy ..\..\..\..\h264encserver\build\vs\h264encserver\$(IntDir)*.exe "$(TargetDir)\libexec"
copy ..\..\..\..\msremoteh264\build\vs\$(IntDir)*.dll "$(TargetDir)\lib\mediastreamer\plugins"
copy ..\..\..\..\ortp\build\win32native\$(IntDir)ortp.dll "$(TargetDir)"
copy ..\..\..\..\linphone-deps\bin\*.dll "$(TargetDir)"
if exist ..\..\..\..\msx264\ copy ..\..\..\..\msx264\build\vs\$(IntDir)*.dll "$(TargetDir)\lib\mediastreamer\plugins"
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\..\tools\mediastream.c" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\ortp\build\win32native\oRTP.vcxproj">
<Project>{4a07bb2b-f56e-4f1b-a719-d28b782ac128}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
<ProjectReference Include="..\mediastreamer2.vcxproj">
<Project>{4a07bb2b-f56e-4f1b-a729-d28b782ac128}</Project>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
\ No newline at end of file

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mediastreamer2", "mediastreamer2.vcproj", "{4A07BB2B-F56E-4F1B-A729-D28B782AC128}"
ProjectSection(ProjectDependencies) = postProject
{4A07BB2B-F56E-4F1B-A719-D28B782AC128} = {4A07BB2B-F56E-4F1B-A719-D28B782AC128}
EndProjectSection
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual C++ Express 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mediastreamer2", "mediastreamer2.vcxproj", "{4A07BB2B-F56E-4F1B-A729-D28B782AC128}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mediastream", "mediastream\mediastream.vcproj", "{F158434B-A7BD-4683-87FD-33AF6B450612}"
ProjectSection(ProjectDependencies) = postProject
{4A07BB2B-F56E-4F1B-A719-D28B782AC128} = {4A07BB2B-F56E-4F1B-A719-D28B782AC128}
{4A07BB2B-F56E-4F1B-A729-D28B782AC128} = {4A07BB2B-F56E-4F1B-A729-D28B782AC128}
{8A4A1340-5B83-4698-8F2A-B8DCCA0C3285} = {8A4A1340-5B83-4698-8F2A-B8DCCA0C3285}
EndProjectSection
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mediastream", "mediastream\mediastream.vcxproj", "{F158434B-A7BD-4683-87FD-33AF6B450612}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "oRTP", "..\..\..\ortp\build\win32native\oRTP.vcproj", "{4A07BB2B-F56E-4F1B-A719-D28B782AC128}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "msx264", "..\..\..\msx264\build\vs\msx264.vcproj", "{8A4A1340-5B83-4698-8F2A-B8DCCA0C3285}"
ProjectSection(ProjectDependencies) = postProject
{4A07BB2B-F56E-4F1B-A719-D28B782AC128} = {4A07BB2B-F56E-4F1B-A719-D28B782AC128}
{4A07BB2B-F56E-4F1B-A729-D28B782AC128} = {4A07BB2B-F56E-4F1B-A729-D28B782AC128}
EndProjectSection
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "oRTP", "..\..\..\ortp\build\win32native\oRTP.vcxproj", "{4A07BB2B-F56E-4F1B-A719-D28B782AC128}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
......@@ -39,10 +25,6 @@ Global
{4A07BB2B-F56E-4F1B-A719-D28B782AC128}.Debug|Win32.Build.0 = Debug|Win32
{4A07BB2B-F56E-4F1B-A719-D28B782AC128}.Release|Win32.ActiveCfg = Release|Win32
{4A07BB2B-F56E-4F1B-A719-D28B782AC128}.Release|Win32.Build.0 = Release|Win32
{8A4A1340-5B83-4698-8F2A-B8DCCA0C3285}.Debug|Win32.ActiveCfg = Debug|Win32
{8A4A1340-5B83-4698-8F2A-B8DCCA0C3285}.Debug|Win32.Build.0 = Debug|Win32
{8A4A1340-5B83-4698-8F2A-B8DCCA0C3285}.Release|Win32.ActiveCfg = Release|Win32
{8A4A1340-5B83-4698-8F2A-B8DCCA0C3285}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
......
This diff is collapsed.
This diff is collapsed.
......@@ -567,6 +567,61 @@ fi
fi
dnl check for matroska file support
AC_ARG_ENABLE(matroska,
[AS_HELP_STRING([--enable-matroska], [Enable mkv file support])],
[case "${enableval}" in
yes) matroska=true ;;
no) matroska=false ;;
*) AC_MSG_ERROR(bad value ${enableval} for --enable-matroska) ;;
esac],
[matroska=false]
)
AC_ARG_WITH(ebml,
[AS_HELP_STRING([--with-ebml],[Sets the installation prefix of ebml library (v2) [default=/usr]])],
[ ebmldir=${withval} ],
[ ebmldir=/usr ]
)
AC_ARG_WITH(matroska,
[AS_HELP_STRING([--with-matroska],[Sets the installation prefix of matroska library (v2) [default=/usr]])],
[ matroskadir=${withval} ],
[ matroskadir=/usr ]
)
if test x$matroska == xtrue; then
build_matroska=yes
if test x"$ebmldir" != xno ; then
test x"$ebmldir" = xyes && ebmldir=/usr
MS_CHECK_DEP([ebml library],[EBML],[$ebmldir/include],
[$ebmldir/lib],[ebml/ebml.h],[ebml2],[EBML_ElementRender])
if test "$ebml_found" == "no" ; then
build_matroska=no
AC_MSG_ERROR([Could not locate ebml headers or library.])
fi
else
build_matroska=no
fi
if test x"$matroskadir" != xno ; then
test x"$matroskadir" = xyes && matroskadir=/usr
MS_CHECK_DEP([matroska library],[MATROSKA],[$matroskadir/include],
[$matroskadir/lib],[matroska/matroska.h],[matroska2],[MATROSKA_BlockReleaseData],[-lebml2])
if test "$matroska_found" == "no" ; then
build_matroska=no
AC_MSG_ERROR([Could not locate matroska headers or library.])
fi
else
build_matroska=no
fi
fi
dnl check for spandsp support to bring up g726 codec
AC_ARG_ENABLE(spandsp,
[AS_HELP_STRING([--disable-spandsp], [Disable spandsp support])],
......@@ -646,6 +701,7 @@ fi
AM_CONDITIONAL(BUILD_OPUS, test x$have_opus = xtrue)
AM_CONDITIONAL(BUILD_GSM, test x$build_gsm = xyes )
AM_CONDITIONAL(BUILD_MATROSKA, test x$build_matroska = xyes )
AM_CONDITIONAL(BUILD_G726, test "$have_spandsp" = "true" )
MS_CHECK_VIDEO
......
......@@ -18,7 +18,7 @@ Homepage: http://www.linphone.org/
Vcs-Svn: svn://svn.debian.org/pkg-voip/linphone/trunk/
Vcs-Browser: http://anonscm.debian.org/viewvc/pkg-voip/linphone/trunk/
Package: libmediastreamer1
Package: libmediastreamer2
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
......@@ -33,7 +33,7 @@ Description: linphone web phone's media library
Package: libmediastreamer-dev
Section: libdevel
Architecture: any
Depends: ${misc:Depends}, libmediastreamer1 (= ${binary:Version}), libasound2-dev [linux-any], libortp-dev, libspeex-dev
Depends: ${misc:Depends}, libmediastreamer2 (= ${binary:Version}), libasound2-dev [linux-any], libortp-dev, libspeex-dev
Conflicts: libmediastreamer0-dev
Description: linphone web phone's media library
Linphone is an audio and video internet phone using the SIP protocol. It
......@@ -43,9 +43,9 @@ Description: linphone web phone's media library
This package contains the shared runtime libraries for handling media
operations.
Package: libmediastreamer1-dbg
Package: libmediastreamer2-dbg
Architecture: any
Depends: libmediastreamer1 (= ${binary:Version}), ${misc:Depends}
Depends: libmediastreamer2 (= ${binary:Version}), ${misc:Depends}
Section: debug
Priority: extra
Description: Debugging symbols for mediastreamer
......
......@@ -13,4 +13,4 @@ override_dh_installchangelogs:
dh_installchangelogs NEWS
override_dh_strip:
dh_strip --dbg-package=libmediastreamer1-dbg
dh_strip --dbg-package=libmediastreamer2-dbg
......@@ -81,7 +81,7 @@
*/
/**
* @defgroup mediastreamer2_init Starting mediastreamer2 library
* @defgroup mediastreamer2_init Init API - Starting mediastreamer2 library
* @ingroup mediastreamer2_api
* @brief Starting mediastreamer2 library
*/
......
......@@ -92,7 +92,7 @@ cards' filters:
ms_filter_call_method(soundwrite,MS_FILTER_SET_NCHANNELS, &chan);
/* if you have some fmtp parameters (from SDP for example!)
/* if you have some fmtp parameters (from SDP for example!) */
char *fmtp1 = ** get your fmtp line **;
char *fmtp2 = ** get your fmtp line **;
ms_filter_call_method(stream->encoder,MS_FILTER_ADD_FMTP, (void*)fmtp1);
......
......@@ -141,7 +141,8 @@ typedef enum MSFilterId{
MS_OPUS_ENC_ID,
MS_OPUS_DEC_ID,
MS_QSA_READ_ID,
MS_QSA_WRITE_ID
MS_QSA_WRITE_ID,
MS_MKV_WRITER_ID
} MSFilterId;
......
......@@ -100,6 +100,8 @@ struct _MSQosAnalyzerDesc{
**/
struct _MSQosAnalyzer{
MSQosAnalyzerDesc *desc;
void (*on_action_suggested)(void*, const char*,const char*);
void *on_action_suggested_user_pointer;
int refcnt;
enum {
......@@ -108,13 +110,13 @@ struct _MSQosAnalyzer{
} type;
};
MSQosAnalyzer * ms_qos_analyzer_ref(MSQosAnalyzer *obj);
void ms_qos_analyzer_unref(MSQosAnalyzer *obj);
void ms_qos_analyzer_suggest_action(MSQosAnalyzer *obj, MSRateControlAction *action);
bool_t ms_qos_analyzer_has_improved(MSQosAnalyzer *obj);
bool_t ms_qos_analyzer_process_rtcp(MSQosAnalyzer *obj, mblk_t *rtcp);
void ms_qos_analyzer_update(MSQosAnalyzer *obj);
void ms_qos_analyzer_set_on_action_suggested(MSQosAnalyzer *obj, void (*on_action_suggested)(void*,const char*,const char*),void* u);
/**
* The simple qos analyzer is an implementation of MSQosAnalyzer that performs analysis for single stream.
......@@ -157,7 +159,7 @@ void ms_bitrate_controller_update(MSBitrateController *obj);
/**
* Return the QoS analyzer associated to the bitrate controller
**/
const MSQosAnalyzer * ms_bitrate_controller_get_qos_analyzer(MSBitrateController *obj);
MSQosAnalyzer * ms_bitrate_controller_get_qos_analyzer(MSBitrateController *obj);
/**
* Destroys the bitrate controller
......
......@@ -267,7 +267,7 @@ MS2_PUBLIC void ice_check_list_destroy(IceCheckList *cl);
/**
* Tell whether ICE local candidates have been gathered for an ICE check list or not.
*
* @param session A pointer to a check list
* @param cl A pointer to a check list
* @return TRUE if local candidates have been gathered for the check list, FALSE otherwise.
*/
MS2_PUBLIC bool_t ice_check_list_candidates_gathered(const IceCheckList *cl);
......@@ -755,7 +755,7 @@ void ice_handle_stun_packet(IceCheckList* cl, RtpSession* rtp_session, const Ort
* @param cl A pointer to a check list
* @param rtp_addr A pointer to the buffer to use to store the remote RTP address
* @param rtp_port A pointer to the location to store the RTP port to
* @param rtcp_aadr A pointer to the buffer to use to store the remote RTCP address
* @param rtcp_addr A pointer to the buffer to use to store the remote RTCP address
* @param rtcp_port A pointer to the location to store the RTCP port to
* @param addr_len The size of the buffer to use to store the remote addresses
*
......
......@@ -93,12 +93,15 @@ typedef enum StreamType {
VideoStreamType
} StreamType;
/**
* The MediaStream is an object describing a stream (one of AudioStream or VideoStream).
**/
typedef struct _MediaStream MediaStream;
/*
* internal cb to process rtcp stream
* */
typedef void (*media_stream_process_rtcp)(MediaStream *stream, mblk_t *m);
typedef void (*media_stream_process_rtcp_callback_t)(MediaStream *stream, mblk_t *m);
struct _MSMediaStreamSessions{
RtpSession *rtp_session;
......@@ -136,6 +139,8 @@ struct _MediaStream {
IceCheckList *ice_check_list;
time_t start_time;
time_t last_iterate_time;
uint64_t last_packet_count;
time_t last_packet_time;
bool_t use_rc;
bool_t owns_sessions;
bool_t pad;
......@@ -143,7 +148,7 @@ struct _MediaStream {
* defines encoder target network bit rate, uses #media_stream_set_target_network_bitrate() setter.
* */
int target_bitrate;
media_stream_process_rtcp process_rtcp;
media_stream_process_rtcp_callback_t process_rtcp;
};
......@@ -176,7 +181,22 @@ MS2_PUBLIC int media_stream_set_srtp_send_key(MediaStream *stream, MSCryptoSuite
* @param[in] stream MediaStream object
* @return true if stream is encrypted
* */
MS2_PUBLIC bool_t media_stream_is_secured(const MediaStream *stream);
MS2_PUBLIC bool_t media_stream_secured(const MediaStream *stream);
#define media_stream_is_secured media_stream_secured
/**
* Tells whether AVPF is enabled or not.
* @param[in] stream #MediaStream object.
* @return True if AVPF is enabled, false otherwise.
*/
MS2_PUBLIC bool_t media_stream_avpf_enabled(const MediaStream *stream);
/**
* Gets the AVPF Regular RTCP report interval.
* @param[in] stream #MediaStream object.
* @return The AVPF Regular RTCP report interval in seconds.
*/
MS2_PUBLIC uint8_t media_stream_get_avpf_rr_interval(const MediaStream *stream);
MS2_PUBLIC const MSQualityIndicator *media_stream_get_quality_indicator(MediaStream *stream);
......@@ -204,7 +224,7 @@ MS2_PUBLIC int media_stream_set_target_network_bitrate(MediaStream *stream,int t
/**
* get the stream target bitrate.
* @param stream stream to apply parameter on
* @param target_bitrate in bit per seconds
* @return target_bitrate in bit per seconds
* */
MS2_PUBLIC int media_stream_get_target_network_bitrate(const MediaStream *stream);
......@@ -231,6 +251,11 @@ MS2_PUBLIC void media_stream_reclaim_sessions(MediaStream *stream, MSMediaStream
void media_stream_iterate(MediaStream * stream);
/**
* Returns TRUE if stream was still actively receiving packets (RTP or RTCP) in the last period specified in timeout_seconds.
**/
MS2_PUBLIC bool_t media_stream_alive(MediaStream *stream, int timeout_seconds);
/**
* @returns curret streams tate
* */
......@@ -264,8 +289,6 @@ struct _AudioStream
MSFilter *recorder_mixer;
MSFilter *recorder;
char *recorder_file;
uint64_t last_packet_count;
time_t last_packet_time;
EchoLimiterType el_type; /*use echo limiter: two MSVolume, measured input level controlling local output level*/
uint32_t features;
bool_t play_dtmfs;
......@@ -302,18 +325,18 @@ MS2_PUBLIC int audio_stream_start_with_files (AudioStream * stream, RtpProfile *
*
*
* @param stream an AudioStream previously created with audio_stream_new().
* @param prof a RtpProfile containing all PayloadType possible during the audio session.
* @param profile a RtpProfile containing all PayloadType possible during the audio session.
* @param rem_rtp_ip remote IP address where to send the encoded audio.
* @param rem_rtp_port remote IP port where to send the encoded audio.
* @param rem_rtcp_ip remote IP address for RTCP.
* @param rem_rtcp_port remote port for RTCP.
* @param payload_type payload type index to use for the sending stream. This index must point to a valid PayloadType in the RtpProfile.
* @param payload payload type index to use for the sending stream. This index must point to a valid PayloadType in the RtpProfile.
* @param jitt_comp Nominal jitter buffer size in milliseconds.
* @param infile path to wav file to play out (can be NULL)
* @param outfile path to wav file to record into (can be NULL)
* @param playcard The soundcard to be used for playback (can be NULL)
* @param captcard The soundcard to be used for catpure. (can be NULL)
* @param echo_cancel whether echo cancellation is to be performed.
* @param use_ec whether echo cancellation is to be performed.
* @returns 0 if sucessful, -1 otherwise.
**/
MS2_PUBLIC int audio_stream_start_full(AudioStream *stream, RtpProfile *profile, const char *rem_rtp_ip,int rem_rtp_port,
......@@ -339,8 +362,8 @@ MS2_PUBLIC void audio_stream_play_received_dtmfs(AudioStream *st, bool_t yesno);
**/
MS2_PUBLIC AudioStream *audio_stream_new(int loc_rtp_port, int loc_rtcp_port, bool_t ipv6);
/**Creates an AudioStream object from an initialized RtpSession.
* @param rtp_session the RtpSession
/**Creates an AudioStream object from initialized MSMediaStreamSessions.
* @param sessions the MSMediaStreamSessions
* @returns a new AudioStream
**/
MS2_PUBLIC AudioStream *audio_stream_new_with_sessions(const MSMediaStreamSessions *sessions);
......
......@@ -163,8 +163,7 @@ MS2_PUBLIC MSList *ms_list_copy(const MSList *list);
*/
/**