linphone-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Linphone-developers] About Linphone-Windows10


From: Jun Shimoji
Subject: [Linphone-developers] About Linphone-Windows10
Date: Mon, 24 Oct 2016 14:41:51 +0900

Now we investigate Linphone-Windows 10, Android and iOS.
So far Android and iOS work fine.
But regarding to Windows10, we found a serious freeze event which
seems to be certain bugs as follows.
If these bugs aren't fixed, Linphone seems not to be adopt for the
customer. So would please tell us the clue to fix it ?

# Overview

* Sometimes Linphone will freeze when we use video communication
between Linphone-Windows10 and Linphone-Android(or Linphone-iOS).
* The propability of the event is about 40%(but it is not convinced).
* We have to use Linphone-windows10 not Linphone-for-desktop.
* We think the breakpoint seems to be how to use WinRT.

# Details :

linphone-windows10\submodules\mswinrtvid\mswinrtcap.cpp


bool MSWinRTCapHelper::StartCapture(MediaEncodingProfile^ EncodingProfile)
{
bool isStarted = false;
  mEncodingProfile = EncodingProfile;
MakeAndInitialize<MSWinRTMediaSink>(&mMediaSink, EncodingProfile->Video);
static_cast<MSWinRTMediaSink *>(mMediaSink.Get())->SetCaptureFilter(this);
ComPtr<IInspectable> spInspectable;
HRESULT hr = mMediaSink.As(&spInspectable);
if (FAILED(hr)) return false;
IMediaExtension^ mediaExtension =
safe_cast<IMediaExtension^>(reinterpret_cast<Object^>(spInspectable.Get()));

        // VVVVVVVV
IAsyncAction^ action =
mCapture->StartRecordToCustomSinkAsync(EncodingProfile,
mediaExtension);
        // ^^^^^^^^^^^^
        // does not return!!!

action->Completed = ref new AsyncActionCompletedHandler([this,
&isStarted](IAsyncAction^ asyncAction,
Windows::Foundation::AsyncStatus asyncStatus) {
IAsyncAction^ capturePropertiesAction = nullptr;
IMediaEncodingProperties^ props = nullptr;
if (asyncStatus == Windows::Foundation::AsyncStatus::Completed) {
ms_message("[MSWinRTCap] StartRecordToCustomSinkAsync completed");
isStarted = true;
} else {
ms_error("[MSWinRTCap] StartRecordToCustomSinkAsync failed");
}
SetEvent(mStartCompleted);
});
WaitForSingleObjectEx(mStartCompleted, INFINITE, FALSE);
return isStarted;
}


It works fine if above “does not return” point was processed correctry.


----
Mobilus Corporation / モビルス株式会社
Jun Shimoji / 下地 淳
tel: +81-90-9206-7192(office)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]