EricssonResearch / openwebrtc

A cross-platform WebRTC client framework based on GStreamer
http://www.openwebrtc.org
BSD 2-Clause "Simplified" License
1.8k stars 537 forks source link

Windows support #2

Open stefanalund opened 10 years ago

stefanalund commented 10 years ago

Add support for Windows.

Tonku commented 9 years ago

Hi Any plan to support windows ? Kind Regards Tonku

stefanalund commented 9 years ago

At some point yes, but we are not working on adding it at the moment.

Tonku commented 9 years ago

Ok @stefanalund , thanks for the info... May I know why Windows is excluded from the list of supported platforms... It would be nice if we have Windows support as well because , then we can build truly cross platform native apps that inter-operate :) I guess its more of a policy than technical, since you guys are so brilliant :+1:

stefanalund commented 9 years ago

No it's not actually. It's a consequence of our engineers using Mac and Linux machines, making it hard for us to test on Windows and ensure nothing breaks for that platform as the code evolves.

I agree that having Windows support is essential, but without someone taking responsibility for that platform we are waiting. Interested in the task? 😃

sdroege commented 9 years ago

This is mostly work on the build system and then testing btw, all the software should work on Windows and GStreamer has video and audio sources for Windows that should work just fine.

stefanalund commented 9 years ago

Thanks for clarifying. Is it correct to assume that this gets even simpler when we move to the new Cerbero build system?

sdroege commented 9 years ago

Yes, most of the software will build fine already on Windows and only a few changes will be necessary.

Tonku commented 9 years ago

I dont know anything about the build system and scripts... otherwise I could have put some time into this ...Btw I will put some effort on it in coming days..as I need windows support as well for a project I am working on... Thanks for the input Guys Kind Regards Tonku

agouaillard commented 9 years ago

guys, FYI,

as I promised to stefan (the other one) at the W3C standard meeting last november, Temasys will do one windows port in 2015, if it hasn't been done already. Worse case scenario this work should start in march.

We are big fans of cmake though, so we might go ahead a replace the current build system (auto tools and others, with full bootstrap), with a cmake system, with help from kitware (the ones who wrote cmake in the first place). That would help porting to windows, as well as adding a managed (crest) test suite, dashboard, and so on and so forth.

Would the current developers: a. really hate us for it b. just hate us for it c. welcome the port of the build system

Alex.

On Thu, Jan 1, 2015 at 3:19 PM, Tonku notifications@github.com wrote:

I dont know anything about the build system and scripts... otherwise I could have put some time into this ...Btw I will put some effort on it in coming days..as I need windows support as well for a project I am working on... Thanks for the input Guys Kind Regards Tonku

— Reply to this email directly or view it on GitHub https://github.com/EricssonResearch/openwebrtc/issues/2#issuecomment-68481813 .

Alex. Gouaillard, PhD, PhD, MBA

CTO - Temasys Communications, S'pore / Mountain View

President - CoSMo Software, Cambridge, MA

sg.linkedin.com/agouaillard

-

sdroege commented 9 years ago

You will also have to write a CMake build system for GStreamer and all the other dependencies, and will have to maintain it yourself forever as it's unlikely to be accepted by all projects.

Getting things ported to Windows should be fairly trivial with cerbero, except for potentially all the GObject-Introspection related pieces. At least more simple than writing CMake build systems for 20+ different projects that all build fine on Windows already.

superdump commented 9 years ago

I would answer basically the same as @sdroege. It would be a lot of work to write CMake build systems for all of the OpenWebRTC dependencies and then you would have to maintain them all.

Our current plan is to move to cerbero soon which is what is used to build the GStreamer release binaries for all platforms (iOS, Android, Mac OS X, Linux, Windows.) We are in the testing phase of this move.

Once the migration to cerbero is complete we will probably deprecate the current build scripts.

All the packages needed to build GStreamer for Windows do currently build as part of cerbero. It would then, as mentioned above, not be too much work to get the extra dependencies and OpenWebRTC building and running on Windows.

We then intend to maintain our additional recipes that we need for OpenWebRTC and we will also work with the GStreamer project to move recipes or modifications to cerbero there as desirable and necessary.

Can we convince you to instead work with us on getting Windows support working using cerbero as the build system?

agouaillard commented 9 years ago

yes, you can convince me, I have not made my mind yet and i haven't started coding. I won;t go ahead with something that is not consensual. Actually i will be in stockholm on 26/27 of jan. shall we speak around a coffee/beer?

On Fri, Jan 9, 2015 at 7:02 PM, Robert Swain notifications@github.com wrote:

I would answer basically the same as @sdroege https://github.com/sdroege. It would be a lot of work to write CMake build systems for all of the OpenWebRTC dependencies and then you would have to maintain them all.

Our current plan is to move to cerbero soon which is what is used to build the GStreamer release binaries for all platforms (iOS, Android, Mac OS X, Linux, Windows.) We are in the testing phase of this move.

Once the migration to cerbero is complete we will probably deprecate the current build scripts.

All the packages needed to build GStreamer for Windows do currently build as part of cerbero. It would then, as mentioned above, not be too much work to get the extra dependencies and OpenWebRTC building and running on Windows.

We then intend to maintain our additional recipes that we need for OpenWebRTC and we will also work with the GStreamer project to move recipes or modifications to cerbero there as desirable and necessary.

Can we convince you to instead work with us on getting Windows support working using cerbero as the build system?

— Reply to this email directly or view it on GitHub https://github.com/EricssonResearch/openwebrtc/issues/2#issuecomment-69320790 .

Alex. Gouaillard, PhD, PhD, MBA

CTO - Temasys Communications, S'pore / Mountain View

President - CoSMo Software, Cambridge, MA

sg.linkedin.com/agouaillard

-

stefanalund commented 9 years ago

Sounds like a good idea, I'll send you an email and we can keep this issue clean :-)

sdroege commented 9 years ago

Any progress/plans here?

hlevring commented 9 years ago

@agouaillard yes it would definitely be nice to know if you made any progress. This is an awesome project but windows support is really a big missing feature.

nirbheek commented 9 years ago

Somewhat relatedly, #222 tracks our move to using Cerbero as the build system, which has support for building for Windows (cross-compiling) and on Windows (through mingw32, afaik, but maybe more). The GStreamer binaries for Windows are built using Cerbero, so most of the dependencies will work just fine there. If someone is interested in that, one can start there. :smile:

sdroege commented 9 years ago

The main work will probably be in getting gobject-introspection, javascriptcore and seed to work properly on Windows. Otherwise everything else should be more or less working already.

superdump commented 9 years ago

So basically the OpenWebRTC C API may work on windows already...

hlevring commented 9 years ago

We are preparing the design and development work on a new product where we want to use OpenWebRTC. Plan is to start sometime in early April, so this seems like perfect timing. Thanks guys

superdump commented 9 years ago

For reference: https://github.com/EricssonResearch/openwebrtc/wiki/Building-OpenWebRTC-with-Cerbero

We have not yet tested anything on Windows though. I'll see about doing that at some point soon.

@sdroege what is the current status of GStreamer camera / audio sources and sinks on Windows?

sdroege commented 9 years ago

The C API should already work, yes... except for the missing device listing on Windows.

Audio source would be directsoundsrc (or wasapisrc but that is not great yet), sink directsoundsink (or wasapisink but see before). Video sink would be d3dvideosink or glimagesink. And video source, there's something for DirectShow (but deprecated by MS since years) and ksvideosrc (also deprecated now IIRC). But as AFAIK everything still comes with DirectShow drivers anyway.

hlevring commented 9 years ago

So from what I understand on the above then Windows should theoretically work out of the box in our use case. We start our project in the beginning of April and on the windows platform we only need to connect, receive and decode a webrtc video/audio feed which will be consumed in a directshow based application. If you know of any roadblock currently for this use case then please do let us know ?. We will make sure to update you in case we hit any issues

stefanalund commented 9 years ago

@hlevring we have now moved to the new build system (cerbero) as discussed above. Would be cool if you guys started looking in to getting things to compile on Windows as well. We will be here to support you :)

https://github.com/EricssonResearch/cerbero

hlevring commented 9 years ago

Ok we will do that late next week. Will keep you informed, on progress.

On Fri, Mar 27, 2015 at 4:54 PM, Stefan Ã…lund notifications@github.com wrote:

@hlevring https://github.com/hlevring we have now moved to the new build system (cerbero) as discussed above. Would be cool if you guys started looking in to getting things to compile on Windows as well. We will be here to support you :)

https://github.com/EricssonResearch/cerbero

— Reply to this email directly or view it on GitHub https://github.com/EricssonResearch/openwebrtc/issues/2#issuecomment-86872642 .

nirbheek commented 9 years ago

@hlevring Don't hesitate to come onto #openwebrtc on FreeNode IRC and message us.

agouaillard commented 9 years ago

Hi all,

We have been swamped until a week or so ago. The plan was indeed to wait for cerebro to be in place before we do anything (as opposed to moving to another build system to better support windows, a.k.a. cmake).

I'm working on other openwebrtc projects right now, but shall take a look next week and maybe start reporting issues and work on it. Do not wait on me though ;-)

Alex.

On Fri, Mar 27, 2015 at 3:54 PM, Stefan Ã…lund notifications@github.com wrote:

@hlevring https://github.com/hlevring we have now moved to the new build system (cerbero) as discussed above. Would be cool if you guys started looking in to getting things to compile on Windows as well. We will be here to support you :)

https://github.com/EricssonResearch/cerbero

— Reply to this email directly or view it on GitHub https://github.com/EricssonResearch/openwebrtc/issues/2#issuecomment-86872642 .

Alex. Gouaillard, PhD, PhD, MBA

CTO - Temasys Communications, S'pore / Mountain View

President - CoSMo Software, Cambridge, MA

sg.linkedin.com/agouaillard

-

dcposch commented 9 years ago

Looks like there's recent work making cerbero work better on Windows (eg https://github.com/EricssonResearch/cerbero/commit/2a0298c3639ddf360a610846633e838292ba79b0 )

Any chance we'll be able to run openwebrtc on all platforms soon?

( @feross and I are interested in using it to bring Webtorrent support to libtorrent )

superdump commented 9 years ago

The situation is the same. Cerbero builds GStreamer for Windows. We need to make it also build the few additional packages needed by OpenWebRTC and OpenWebRTC itself.

jonahzheng commented 8 years ago

windows?