-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # 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: