Commit 126219ea authored by François Grisez's avatar François Grisez

Merge branch 'master' into mkv_opus

parents c0dc09fa 003add3c
......@@ -53,8 +53,8 @@
<ItemDefinitionGroup>
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\include;$(ProjectDir)..\..\..\src\base;$(ProjectDir)..\..\..\src\utils;$(ProjectDir)..\..\..\src\voip;$(ProjectDir)..\..\..\src\audiofilters;$(ProjectDil)..\..\..\src\otherfilters;$(ProjectDir)..\..\..\src/videofilters;$(ProjectDir)..\..\..\..\oRTP\include;$(ProjectDir)..\..\..\..\oRTP\build\wp8\oRTP;$(ProjectDir)..\..\..\..\..\gsm\build\wp8\gsm\$(Platform)\$(Configuration);$(ProjectDir)..\..\..\..\..\speex\include;$(ProjectDir)..\..\..\..\..\opus\include;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>__STDC_CONSTANT_MACROS;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;WIN32;MEDIASTREAMER2_EXPORTS;MEDIASTREAMER2_INTERNAL_EXPORTS;HAVE_SPEEXDSP;ORTP_INET6;WINDOW_NATIVE;_TRUE_TIME;MS2_INTERNAL;MS2_FILTERS;VIDEO_ENABLED;NO_FFMPEG;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(ProjectDir)..\..\..\include;$(ProjectDir)..\..\..\src\base;$(ProjectDir)..\..\..\src\utils;$(ProjectDir)..\..\..\src\voip;$(ProjectDir)..\..\..\src\audiofilters;$(ProjectDil)..\..\..\src\otherfilters;$(ProjectDir)..\..\..\src/videofilters;$(ProjectDir)..\..\..\..\oRTP\include;$(ProjectDir)..\..\..\..\oRTP\build\wp8\oRTP;$(ProjectDir)..\..\..\..\..\gsm\build\wp8\gsm\$(Platform)\$(Configuration);$(ProjectDir)..\..\..\..\..\srtp\include;$(ProjectDir)..\..\..\..\..\srtp\crypto\include;$(ProjectDir)..\..\..\..\..\srtp\build\wp8\srtp;$(ProjectDir)..\..\..\..\..\speex\include;$(ProjectDir)..\..\..\..\..\opus\include;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>__STDC_CONSTANT_MACROS;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;WIN32;MEDIASTREAMER2_EXPORTS;MEDIASTREAMER2_INTERNAL_EXPORTS;HAVE_SPEEXDSP;ORTP_INET6;ORTP_HAVE_SRTP;WINDOW_NATIVE;_TRUE_TIME;MS2_INTERNAL;MS2_FILTERS;VIDEO_ENABLED;NO_FFMPEG;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<CompileAsWinRT>false</CompileAsWinRT>
......@@ -64,7 +64,7 @@
<SubSystem>Console</SubSystem>
<IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
<AdditionalDependencies>ws2_32.lib;ortp.lib;gsm.lib;speex.lib;speexdsp.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ImportLibrary>$(TargetDir)$(TargetName).lib</ImportLibrary>
</Link>
......@@ -208,6 +208,9 @@
<ProjectReference Include="..\..\..\..\..\speex\build\wp8\speex\speexdsp.vcxproj">
<Project>{6bd78980-9c71-4341-8775-ad19e9ec7305}</Project>
</ProjectReference>
<ProjectReference Include="..\..\..\..\..\srtp\build\wp8\srtp\srtp.vcxproj">
<Project>{b4b96bc4-2b72-4964-98e4-7fd048a43363}</Project>
</ProjectReference>
<ProjectReference Include="..\..\..\..\oRTP\build\wp8\oRTP\oRTP.vcxproj">
<Project>{ffc7b532-0502-4d88-ac98-9e89071cbc97}</Project>
</ProjectReference>
......
......@@ -736,6 +736,12 @@ MS2_PUBLIC bool_t video_stream_is_decoding_error_to_be_reported(VideoStream *str
*/
MS2_PUBLIC void video_stream_decoding_error_reported(VideoStream *stream);
/**
* Tell the video stream that a decoding error has been recovered so that new decoding can be reported sooner.
* @param[in] stream The VideoStream object.
*/
MS2_PUBLIC void video_stream_decoding_error_recovered(VideoStream *stream);
/**
* Force a resolution for the preview.
......
......@@ -218,6 +218,8 @@ typedef enum _MSRecorderState MSRecorderState;
MS_FILTER_METHOD(MSFilterVideoDecoderInterface, 7, MSVideoDisplayDecodingSupport*)
#define MS_VIDEO_DECODER_FREEZE_ON_ERROR \
MS_FILTER_METHOD(MSFilterVideoDecoderInterface, 8, bool_t)
#define MS_VIDEO_DECODER_RECOVERED_FROM_ERRORS \
MS_FILTER_EVENT_NO_ARG(MSFilterVideoDecoderInterface, 9)
/** Interface definitions for video capture */
#define MS_VIDEO_CAPTURE_SET_DEVICE_ORIENTATION \
......
......@@ -18,6 +18,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "ortp/port.h"
#include "ortp/ortp_srtp.h"
#include "ortp/b64.h"
......
......@@ -1098,4 +1098,6 @@ void video_stream_decoding_error_reported(VideoStream *stream) {
stream->last_reported_decoding_error_time = stream->ms.sessions.ticker->time;
}
void video_stream_decoding_error_recovered(VideoStream *stream) {
stream->last_reported_decoding_error_time = 0;
}
......@@ -427,6 +427,7 @@ static void send_pli(Vp8RtpFmtUnpackerCtx *ctx) {
ms_filter_notify_no_arg(ctx->filter, MS_VIDEO_DECODER_SEND_PLI);
} else {
ms_filter_notify_no_arg(ctx->filter, MS_VIDEO_DECODER_DECODING_ERRORS);
ctx->error_notified = TRUE;
}
}
......@@ -443,6 +444,7 @@ static void send_sli(Vp8RtpFmtUnpackerCtx *ctx, Vp8RtpFmtFrame *frame) {
}
} else {
ms_filter_notify_no_arg(ctx->filter, MS_VIDEO_DECODER_DECODING_ERRORS);
ctx->error_notified = TRUE;
}
}
......@@ -728,6 +730,10 @@ static void output_valid_partitions(Vp8RtpFmtUnpackerCtx *ctx, MSQueue *out) {
ctx->valid_keyframe_received = TRUE;
ctx->video_size = get_size_from_key_frame(frame);
ctx->waiting_for_reference_frame = FALSE;
if (ctx->error_notified == TRUE) {
ms_filter_notify_no_arg(ctx->filter, MS_VIDEO_DECODER_RECOVERED_FROM_ERRORS);
ctx->error_notified = FALSE;
}
}
if ((ctx->avpf_enabled == TRUE) && (frame->reference == TRUE)) {
ctx->waiting_for_reference_frame = FALSE;
......@@ -894,6 +900,7 @@ void vp8rtpfmt_unpacker_init(Vp8RtpFmtUnpackerCtx *ctx, MSFilter *f, bool_t avpf
ctx->output_partitions = output_partitions;
ctx->valid_keyframe_received = FALSE;
ctx->waiting_for_reference_frame = TRUE;
ctx->error_notified = FALSE;
ctx->initialized_last_ts = FALSE;
ctx->initialized_ref_cseq = FALSE;
}
......
......@@ -106,6 +106,7 @@ extern "C"{
bool_t freeze_on_error;
bool_t output_partitions;
bool_t waiting_for_reference_frame;
bool_t error_notified;
bool_t valid_keyframe_received;
bool_t initialized_last_ts;
bool_t initialized_ref_cseq;
......
......@@ -166,9 +166,10 @@ static void video_manager_start( stream_manager_t * mgr
,int remote_port
,int target_bitrate
,MSWebCam * cam) {
int result;
media_stream_set_target_network_bitrate(&mgr->video_stream->ms,target_bitrate);
int result=video_stream_start(mgr->video_stream
result=video_stream_start(mgr->video_stream
, &rtp_profile
, "127.0.0.1"
, remote_port
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment