sarandogou / webrtc-everywhere Goto Github PK
View Code? Open in Web Editor NEWWebRTC plugin for Internet Explorer and Safari
License: BSD 3-Clause "New" or "Revised" License
WebRTC plugin for Internet Explorer and Safari
License: BSD 3-Clause "New" or "Revised" License
Hi guys,
As per your answer for another question here
#13,
we got the googles webrtc code and build it successfully. But we couldn't find the crssl.lib anywhere in build structure. Can you help with instructions to find those libs ?
The Win32Thread is first set in _Utils::Initialize.
First comunication works.
Second communication failed => thread_ = NULL on CaptureState of the VideoCapturer
During the reloading of the plugin _Utils::Initialize is not called thus the thread not set.
Here is a fix:
MikeTangoEcho@4f9c66e
_INFO: _MediaStreamTrackAudio::_MediaStreamTrackAudio_MediaStreamTrack
*INFO: _MediaStreamTrack::
*_ERROR: function: "_MediaStreamTrackVideo::_MediaStreamTrackVideo()"
file: "_MediaStreamTrack.cc"
line: "291"
MSG: Failed to open video capture device
*INFO: _MediaStreamTrackVideo::_MediaStreamTrackVideo_MediaStreamTrack
*INFO: _MediaStreamTrack::
*INFO: _RTCPeerConnection::OnRenegotiationNeeded
*INFO: DummyCreateSessionDescriptionObserver_MediaStreamTrackAudio
*INFO: _MediaStreamTrackAudio::
*INFO: _MediaStreamTrack::_MediaStreamTrack_MediaStreamTrackAudio
*INFO: audioTracks.size() = 1
*INFO: videoTracks.size() = 0
*INFO: AudioTrack: 2_audio_track, audio, 5
*INFO: _MediaStreamTrackAudio::
*INFO: _MediaStreamTrack::~_MediaStreamTrack
This is an issue (regression) in WebRTC SVN r6758.
To test: https://ns313841.ovh.net/webrtc/samples/web/content/constraints/
Console outputs:
Warning(webrtcvideoengine.cc:1484): webrtc: Channel::UpdatePlayoutTimestamp() failed to read playout timestamp from the ACM
Error(webrtcvideoengine.cc:1484): webrtc: UpdatePlayoutTimestamp() failed to retrieve timestamp (error=9033)
"Config.json" file get corrupted after several calls
Hi there,
I tried to follow the hints to build the source, but I run into the following issues:
voice_engine.lib(voice_engine.channel_manager.obj) : error LNK2019: unresolved external symbol "public: static class rtc::scoped_ptr<class webrtc::RtcEventLog,struct rtc::DefaultDeleter<class webrtc::RtcEventLog> > __cdecl webrtc::RtcEventLog::Create(void)" (?Create@RtcEventLog@webrtc@@SA?AV?$scoped_ptr@VRtcEventLog@webrtc@@U?$DefaultDeleter@VRtcEventLog@webrtc@@@rtc@@@rtc@@XZ) referenced in function "public: __cdecl webrtc::voe::ChannelManager::ChannelManager(unsigned int,class webrtc::Config const &)" (??0ChannelManager@voe@webrtc@@QEAA@IAEBVConfig@2@@Z)
and
audio_coding_module.lib(audio_coding_module.codec_owner.obj) : error LNK2019: unresolved external symbol "public: __cdecl webrtc::LockedIsacBandwidthInfo::LockedIsacBandwidthInfo(void)" (??0LockedIsacBandwidthInfo@webrtc@@QEAA@XZ) referenced in function "public: __cdecl webrtc::acm2::CodecOwner::CodecOwner(void)" (??0CodecOwner@acm2@webrtc@@QEAA@XZ)
and
audio_coding_module.lib(audio_coding_module.codec_owner.obj) : error LNK2019: unresolved external symbol "public: __cdecl webrtc::LockedIsacBandwidthInfo::~LockedIsacBandwidthInfo(void)" (??1LockedIsacBandwidthInfo@webrtc@@QEAA@XZ) referenced in function "public: __cdecl webrtc::acm2::CodecOwner::~CodecOwner(void)" (??1CodecOwner@acm2@webrtc@@QEAA@XZ)
Something I'm missing here to build successfully?
Regards
RonMen
Hi,
Thank you for this plugin because of which we are able to support webrtc on IE.
We are using the following setup.
Local peer connection is running on IE with plugin.
Remote peer connection is running on Chrome.
We are getting the screen share stream using the screen capture Id on IE, adding it as a stream to peer connection and sending the screen share stream to remote peer connection using sdp exchange.
In the local peer connection, when the screen share is attached to video element, it works fine without any issues. However, in the remote side, when the remote screen share stream is attached to the video element, only the first video frame is displayed, after which it freezes.
Some of the debug observations:
In chrome://webrtc-internals, it shows as no packets being received after the few initial packets.
The ice connection state is still connected
If the screen share stream is replaced with main video stream from camera, it works fine locally and remotely without any issues.
It seems this plugin doesn't work on IE6.
It is better to mention the supported IE versions in the introduction.
Thank you in advance,
Ying
On Windows these structs are defined
Please provide a peer to peer video chat for a separate room. In the given examples, where i have to enter the room name if i want to start a video chat between two persons. Please provide me a solution to this asap
[Error] TypeError: undefined is not a function (evaluating 'ed.stream.getTracks()')
close (lcs-sdk.js, line 2172)
exitTheRoom
(anonymous function)
It is a MUST as per spec. Don't bypass this please.
The plugin doesn't work on network where all these conditions are true:
Phone beeps are working for us in IE and Firefox in version 1.2.0.2, but do not work in version 1.3.1.
We use FreeSwitch with property rel100=true if that matters.
Using the sample app (https://ns313841.ovh.net/webrtc/samples/web/content/peerconnection-states/) we remark that the state moves from "new" to "closed" without "checking" and "connected" intermediate states.
Your project is amazing!
But seems webrtc in windows platform not implemented VideoRenderer as mirror
in Android used VideoRendererGui.createGui(x,y,width,height,scalingType,mirror); Set mirror is useful
in Chrome or firefox used CSS3 ScaleX(-1)
in IE not work (>๏น<)
When I learn from you code. I make some changes like .SetWorldTransform to support mirror. I think you can do better.
I make changes like these and it work .
// On Windows, must be called inside OnPaint()
// Requires valid m_Hwnd
bool _VideoRenderer::PaintFrame()
{
......
StretchDIBits(dc_mem, x, y, width, height,
0, 0, width, height, image, &m_bmi, DIB_RGB_COLORS, SRCCOPY);
//my code
XFORM xf;
xf.eM11 = -1.0f;
xf.eM21 = 0.0f;
xf.eDx = width * 1.0f;
xf.eM12 = 0.0f;
xf.eM22 = 1.0f;
xf.eDy = 1.0f;
SetGraphicsMode(ps.hdc, GM_ADVANCED);
SetWorldTransform(ps.hdc, &xf);
//my code
BitBlt(ps.hdc, 0, 0, logical_area.x, logical_area.y,
dc_mem, 0, 0, SRCCOPY);
......
}
PS: My english is so poor .hope you understand ....
Crach in "vp8_fast_quantize_b_ssse3" function
We were using webtrc everywhere plugin in peer connection for our project. it is working fine upto 2 streams. while it exceeds 2 streams, CPU and memory utilization reaching its maximum point and the IE browser got crashed and system got hanged. Can you please throw in some light to solve this issue?
Plugin failure happens when we press any of the functional keys (F1,F2 etc).
I am building the webrtc-everywhere 1.2.0 for windows .
Using windows-7 and visual studio 2013.
I am getting link errors while building the project solution.
error LNK1104: cannot open file 'crssl.lib'
Can you suggest any solution for this.
Shouldn't it be possible to create ice candidate instances like this:
new RTCIceCandidate({ candidate: "candidate:1680186374 2 udp 1686052606 10.0.16.1 37198 typ srflx raddr 10.0.1.10 rport 55221 generation 0", sdpMLineIndex: 1, sdpMid: "video" });
On OSX 10.10.5 and Safari 9 I only get "Error calling method on NPObject.". Opening the console on https://doubango.org/webrtc/samples/web/content/peerconnection-states/ and running the above code even produces this error.
OS: Windows 7 Professional SP1 64-bit
IE 10 and IE 11.
Error message:
webrtc-everywhere-ie.dll
Unable to register the DLL/OCX: RegSvr32 failed with exit code 0xC000005
Event Log:
Faulting application name: regsvr32.exe, version: 6.1.7600.16385, time stamp: 0x4a5bca28
Faulting module name: ntdll.dll, version: 6.1.7601.18247, time stamp: 0x521ea8e7
Exception code: 0xc0000005
Fault offset: 0x0002e41b
Faulting process id: 0xc5c
Faulting application start time: 0x01d00d7c7f150926
Faulting application path: C:\Windows\SysWOW64\regsvr32.exe
Faulting module path: C:\Windows\SysWOW64\ntdll.dll
Report Id: bd46e116-796f-11e4-9d14-c001b82bd464
Manually register the dll failed as well:
regsvr32 "c:\Program Files\webrtc-everywhere\webrtc-everywhere-ie.dll"
The module "c:\Program Files\webrtc-everywhere\webrtc-everywhere-ie.dll" was loaded but the call to DllRegisterServer failed with error code 0x80070005
Maybe Windows 7 is not supported?
More info at https://groups.google.com/forum/#!topic/webrtc-everywhere/Od8ezlwpPBI
I have found fix that works for me, but I'm not sure that it does not break something else:
--- ie/MediaStreamEvent.cc
+++ ie/MediaStreamEvent.cc
@@ -49,6 +49,7 @@
HRESULT _hr = Utils::CreateInstanceWithRef(&_stream);
CHECK_HR_RETURN(_hr);
_stream->SetStream(m_Event->stream);
+_stream->SetDispatcher(const_cast<_AsyncEventDispatcher*>(GetDispatcher()));
_hr = CComVariant(_stream).Detach(pVal);
SafeRelease(&_stream);
return _hr;
The link in README.md to download the plugin for OSX is currently broken (404 error)
I installed the plugin and tried to send binary data ( arraybuffer ) with data channel :
// the data channel "sendChannel" was created with this config. successfully
sendChannel.binaryType = 'arraybuffer' ;
...
// send a piece of file at the formate of arraybuffer :
var reader = new window.FileReader();
reader.onload = (function() {
return function(e) {
send_result = sendChannel.send(e.target.result);
sendProgress.value = offset + e.target.result.byteLength;
};
})(file);
var slice = file.slice(offset, offset + chunkSize);
reader.readAsArrayBuffer(slice);
...
IE11 just halts at sendChannel.send(e.target.result) without any prompt. If more info. is needed ,
please feel free to contact me at [email protected]. Thankyou !
Could not connect to the server error in safari 5.1.7 for the Online samples
If you're using your own binaries please apply the patch at https://github.com/sarandogou/webrtc-everywhere/blob/master/webrtc_win.patch. This will fix the issue reported at https://code.google.com/p/webrtc/issues/detail?id=1649. You should not have this issue if you're using our own binaries (version > 2.2.3)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.