-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WebRTC #7
Comments
Hi @HidenoriMatsubayashi , I have tried some elinux plugins. It uses the CPP code of the flutter windows part without any modification, but it seems that cross-thread calls inside elinux will cause the flutter engine to crash. I don't have any ideas yet, I need to prepare an elinux debugging environment when I have time. |
Great! I'm looking forward to be merged it to flutter-webrtc mainstream.
Could you try again with release mode? |
This comment was marked as outdated.
This comment was marked as outdated.
Update: In debug mode, it seems that the problem occurs with asserts caused by cross-thread calls
|
@HidenoriMatsubayashi I tested it on Ubuntu 22.04, it can run well on elinux wayland/x11 (profile/release), tested audio/video loopback sample, data-channel echo test. |
@cloudwebrtc Great!
In debug mode, FML_DCHECK_CREATION_THREAD_IS_CURRENT is enabled in flutter/engine. We should only send events like EventChannel from the main thread, I think. |
hey @HidenoriMatsubayashi, Is there any way to get the main thread from the plugin? Or any method can send a callback pointer to the task queue of the flutter engine. |
flutter linux gtk can work correctly in debug mode, but I don't know the difference between it and elinux in message scheduling. |
Let me investigate. |
Hey there, thanks for the progress so far on this. I am a newbie in trying to understand eLinux.
Would really appreciate some basic beginner explanation to all of this or some resources! Thank you so much! |
I found out more about the above after a load of research. I understand that the best and pretty much only way to render frames from incoming bytes is doing it at the native level. This is C++ for flutter apps in linux. You create textures from decoded frames and then register these textures with the registrar which is something that flutter provides and seems to be straightforward. I will be attempting a custom plugin which does basic streaming abilities. Our use case requires something more custom and lightweight than webRTC, so I will keep you all updated. Thanks for the code sample with the current open branch you have @cloudwebrtc ! |
Hello, @cloudwebrtc @HidenoriMatsubayashi I opened this issue sony/flutter-embedded-linux#421 with solution that resolves issue with debug mode of flutter-elinux, main problem that messages from native side is not being sent on main thread, so they need to be marshalled there. |
Hi @cloudwebrtc Thanks to @Kofhein, now https://github.com/flutter-webrtc/flutter-webrtc/tree/feat/support-elinux2 works fine with the latest flutter-elinux (version 3.24.3). Could you please check this? Thanks. |
Cool !!!, let me take a look and merge it. done! |
Great! I've added the link of flutter-webrtc to readme. (sorry for the late reply, I had missed your message.) Closing. |
Create WebRTC plugin
https://github.com/flutter-webrtc/flutter-webrtc
The text was updated successfully, but these errors were encountered: