Moreover, users pay a high premium for their device to access the platform. Why should companies also pay in addition to the annual subscription fee to their developer program?
385 karma · joined February 12, 2018
Moreover, users pay a high premium for their device to access the platform. Why should companies also pay in addition to the annual subscription fee to their developer program?
They have the biggest share currently, but they're never safe.
It will make it a lot harder to return wrong types from your calls. Personally, I like gRPC + Protobuf.
So yeah, that won't work to stream to a WebRTC endpoint as you said!
If that fails, then there's TURN which acts like a proxy between the peers.
Which browser and version did you use?
And the browser is limited to whatever Apple allows. If it doesn't support some web API that has a native equivalent, you're out of luck. There are many of those.
If the segmentation is done server-side, then you need to sync it to the sender and reflect that quickly in the preview. It's probably not a great experience, at least for a launch.
That's not something doable today on the web for obvious security reasons, but it's possible for Discord that has a separate app, would be doable for Zoom too I guess.
Everyone in Sweden disliking the government response or supporting their own government response will say that Sweden's approach has failed.
In the end, my friend sent a picture of the box to Valve and got a fresh CD-key, and we could finally play together.
On a side note, I worked on Jpcsp, a PSP emulator in Java. Great for research and doing refactoring in the code quickly, not great for performance, even with a JIT. We wrote later PPSSPP in C++, performance was there quite easily.
You could cache at the function level, or each template separately. You could cache includes automatically on files that change frequently to avoid parsing headers again and again without having to manually specify precompiler headers (yes, sure, modules should help there soon).
If people try to reimplement things in arbitrary broken shells scripts (the user issues) that can't be run locally, then it's not the CI tool's responsibility either.
Sure, TC has had issues (especially when it came to scaling), but they fixed a lot of those and honestly, it's doing well now.
Issues usually came from people who didn't know how to make robust pipelines or leverage TC's functionality and felt like they had to reinvent everything. And that was in a company with thousands of employees, thousands of TC configurations and hundreds of agents.
Also, as many people have pointed out, VP8 is a more complex codec than H264, so harder to test coverage of all features, especially as most applications (especially on desktop) are not really doing RTC, which is quite a specific use case.
And phones DO have VP8 encoders. It's just that iPhones for historical reason don't have one. Pure speculation from my part, but I'm guessing they'll do AV1 someday as Apple is working on the spec.
But in general, even though HW encoders would be awesome for all codecs if they were working well in all situations, the reality is they don't always work, you usually need to build lists of HW that is supposedly behaving well with your use case. All advanced features (eg spatial layering) are tricky to implement in HW and are usually not configurable, so SW codecs will still have quite a lot of usage for the sake of quality.
No, WebRTC is 1 to 1. Each connection is adapted independently. But, you can build services that have rooms with more participants, then it's up to you to shape the traffic as you want. If you use a central server (SFU), it can just send each peer the best they can receive, each independently from one another. It's a property of the service, not the technology.
And it would just be STUN between each participant and the SFU deployed in the internal network for example.
Software encoders will always have more features than hardware encoders, which are prone to bugs.
A bug in a HW encoder needs either a new driver or new silicone. You can't work with those and sometimes you can't even detect which version it is.
So if you want to ship a reliable application, you can either use a software codec (which you control) or hope the HW encoder which is totally random works as intended.
HW encoder bugs show in many forms. Sometimes the stream is just broken and can't be decoded, sometimes it won't listen to encoding parameter updates you send it (eg max bitrate or quality settings), sometimes it just generates a valid but bad stream (too many I frames, breaking the max bitrate setting), sometimes they have a TERRIBLE latency.
Sometimes, they just plainly lack features, for example can't encode temporal layers, don't have any denoising (useful for VP8), have a limited amount of instances limiting simulcast opportunities, have extreme frame size limitations (can't do screensharing with it)...
And that's just what I could come up with in a few minutes of thinking, I'm sure people who have worked on it for a much longer time would be able to say much more.