Comments (19)
If you find the cause of that issue, let me know. In the future I'll like for mediasoup to run on Windows too.
from mediasoup.
Also unclear to me how to change posix pthread_sigmask to windows friendly analog.
@ibc I don't think you need pthread_sigmask, since libuv handles signals on its own and calls your callback in the loop, you will never find yourself in a signal handler.
And this uv loop... how much loops is there within mediasoup instances: 2, 3 or much more?
@Globik One per core in the system.
from mediasoup.
#35 should help a bit.
from mediasoup.
@saghul then in main.cpp there is also unix specific sigaction.
Yes. mediasoup ignores SIGPIPE. Otherwise, when running in Linux, any failure sending over a socket would generate a SIGPIE signal and would close the process.
I don't want to ignore such a signal in the libuv signal handler, because that is slower than just ignoring it via a signal mask.
In a child process the room created but no life in the code on node.js side.
server.createRoom(SomeOptionsFromTestDataDirectory).then(room=>{
console.log("Show me the room",room);
//No luck here, no call, silence, no life
// debug mode is on, child process stdout shows that room is created with id
}).catch(e=>console.log(e));
Error is also in silence
I think in windows that uv stuff works synchronically(blocks)
All is in undefined behavour
Vc compiler warn also on loop.h that the class has virtual functions but not has virtual destructors.
I would accept PR that makes mediasoup runnable in Windows, but I'm not an expert on that so I cannot spend time on it. If you can do it I would a PR, but that's not something I can support right now.
from mediasoup.
@Globik I'm afraid we are hitting a language barrier here :-( I don't understand a word of the last 2 comments, sorry.
from mediasoup.
MediaSoup does not currently support Windows, I'm afraid.
from mediasoup.
They are not the same file at all.
BTW: Windows is not yet supported: http://mediasoup.org/overview/#requirements
from mediasoup.
Yes, I see. Is your implementation based on vanilla BSD socket or on a libuv wrapper socket?
21 unresolved symbols total. VC++ 2015. I must rename those files and then further to go step by step..
from mediasoup.
It's based on libuv.
BTW: I do know that, in order to run in Windows, some stuff must be added (such an implementation of getopt
) but I don't understand the unresolved symbol above. Note that mediasoup requires C++11 or C++14.
from mediasoup.
Yes, it is understandable. Most of libs(libuv, openssl, srtp, usctp etc) are windows friendly. Getopt, pthread, sigaction api there are third parties code variants near to bsd-like. Very intreresting in mediasoup code(for test and learn purposes), on windows machine.
My problem, not yours, those unresove symbols. I 'm at a very begining.
from mediasoup.
Compiling good enough after some work on source code. But I am not really C++ programmer.
Is not clear to me what for grammar.rl and IP.rl in utils folder, why there are also the same names of a few cpp and header files, for example unixstreamsocket.h tcpserver.cpp 2 instances.
As a result I came up, runned the tests, test_server.js works like a hero, but others with no luck.
Always says: error ocured timeout and channel is closed. What couse a timeout? Any reason. May be socket is not established.
Also unclear to me how to change posix pthread_sigmask to windows friendly analog.
And this uv loop... how much loops is there within mediasoup instances: 2, 3 or much more?
from mediasoup.
Is not clear to me what for grammar.rl and IP.rl in utils folder,
Those are Ragel grammar files. They are converted into C++ source files before pushing to the github repo, so just forget them.
why there are also the same names of a few cpp and header files, for example unixstreamsocket.h tcpserver.cpp 2 instances.
What is the problem?
handles/TCPServer.cpp
is a libuv C++ wrapper for a TCP server.RTC/TCPServer.cpp
is a child class ofhandles/TCPServer.cpp
specialized in receiving ICE/DTLS/RTP over TCP.
I don't know why this is a problem for you, but there is no error/bug/issue here.
from mediasoup.
IIRC some versions of Visual Studio get confused.
On Oct 2, 2016 18:13, "Iñaki Baz Castillo" [email protected] wrote:
Is not clear to me what for grammar.rl and IP.rl in utils folder,
Those are Ragel http://www.colm.net/open-source/ragel/ grammar files.
They are converted into C++ source files before pushing to the github repo,
so just forget them.why there are also the same names of a few cpp and header files, for
example unixstreamsocket.h tcpserver.cpp 2 instances.What is the problem?
- handles/TCPServer.cpp is a libuv C++ wrapper for a TCP server.
- RTC/TCPServer.cpp is a child class of handles/TCPServer.cpp
specialized in receiving ICE/DTLS/RTP over TCP.I don't know why this is a problem for you, but there is no
error/bug/issue here.—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#34 (comment), or mute
the thread
https://github.com/notifications/unsubscribe-auth/AATYGIJZfchbqb1SwaFWMgoO-TYL_mncks5qv-ZKgaJpZM4J-Fm_
.
from mediasoup.
VC ++ places all object files in to one folder. If there are two or more object files with the same names so vc++ replaces them all with only one and the latest. As a result appeares unresolved symbols)
from mediasoup.
@saghul then in main.cpp there is also unix specific sigaction.
In a child process the room created but no life in the code on node.js side.
server.createRoom(SomeOptionsFromTestDataDirectory).then(room=>{
console.log("Show me the room",room);
//No luck here, no call, silence, no life
// debug mode is on, child process stdout shows that room is created with id
}).catch(e=>console.log(e));
Error is also in silence
I think in windows that uv stuff works synchronically(blocks)
All is in undefined behavour
Vc compiler warn also on loop.h that the class has virtual functions but not has virtual destructors.
from mediasoup.
Yes. mediasoup ignores SIGPIPE. Otherwise, when running in Linux, any failure sending over a socket would generate a SIGPIE signal and would close the process.
I don't want to ignore such a signal in the libuv signal handler, because that is slower than just ignoring it via a signal mask.
Correct. Since Windows doesn't have the SIGPIPE issue it would be safe to ifdef that.
I would accept PR that makes mediasoup runnable in Windows, but I'm not an expert on that so I cannot spend time on it. If you can do it I would a PR, but that's not something I can support right now.
I can help with the review, but I don't have the time to write the code myself.
from mediasoup.
Mediasoup is sowieso runnable on windows, just like cinderella. But stdout or what stuff in node.js seems to be blocking process. That feeling that write from mediasoup to node.js end point is blocking or unrunnable. Issue with process.nextTick on nodejs site or Loop::onChannelRequest (sending the answer) to io ' socket'(mediasoup_channel_fd)
By the way getopt.h I am using from... eh... from here: http://www.codeproject.com/Articles/157001/Full-getopt-Port-for-Unicode-and-Multibyte-Microso
Only When I am exiting out with ctrl +C stdin(or stdout?) on console mediasoup displays that I "created" the room sucessfully.
And else one moment, is netstring.c understand ansi? Unicode? My definitions are without unicoding.
And those maximum buffer of netstring obligatory?
from mediasoup.
@saghul ,
uv_walk throughout signaling mechanismus of mediasoup can take a place?
from mediasoup.
uv_walk throughout signaling mechanismus of mediasoup can take a place?
I don't know exactly what you mean and what uv_walk
has to do in here. If you want to propose something because you know it works (also in Windows), just send a PR. But I won't change the mediasoup internal signaling mechanism because it just works in Linux/OSX.
from mediasoup.
Related Issues (20)
- announced_ip can also be a hostname (not possible in Rust)
- Rename "announced ip" to "announced address"
- [Rust] `Box<dyn Error>` error types make mediasoup error handling annoying HOT 1
- Wrong handle of response in Channel.ts? HOT 1
- Fail to compile mediasoup fuzzer due to liburing HOT 21
- Fuzzer fails immediately due to abseil: AddressSanitizer: SEGV HOT 12
- (ABORT) RTC::RTCP::FeedbackRtpTransport::AddPacket() | failed assertion `baseSet': base not set HOT 4
- OpenSSL send buffer growing without bounds in DtlsTransport (worker memory leak) HOT 22
- Implement FLEX FEC - RFC 8627
- Memory leak HOT 6
- Multi-thread bug when using usrsctp in N Worker threads in Rust HOT 1
- opus dtx incorrectly judged HOT 7
- Possible missing break in H264_SVC::ParseSingleNalu()
- Must join all XxxConsumer classes into a single one
- set MS_LOG_DEV_LEVEL 3, lead to build errors HOT 1
- #define MS_LOG_DEV_LEVEL 3, build error HOT 1
- SeqManager<T>::SeqLowerThan() crashes when used as compare function in abseil set or map (only in debug mode) HOT 24
- Use uint64_t for containers with RTP seq number as key
- arm64 prebuilt binaries are replacing x64 ones HOT 4
- test-PipeTransport.ts randomly fails HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mediasoup.