[flutter_webrtc_tizen]Upgrade flutter webrtc to 1.4.1#993
[flutter_webrtc_tizen]Upgrade flutter webrtc to 1.4.1#993xiaowei-guan wants to merge 26 commits intoflutter-tizen:masterfrom
Conversation
There was a problem hiding this comment.
Code Review
This pull request updates the flutter_webrtc dependency to version 1.3.1 and introduces a TaskRunner interface to facilitate thread-safe event dispatching. New features include setVolume for audio tracks, dataChannelGetBufferedAmount, and configurable RTC logging severity. The refactor propagates the TaskRunner through various observers and managers and updates several WebRTC internal headers. Feedback identifies critical issues including a use-after-free vulnerability in setVolume, the lack of initialization for the task_runner_ member, and a dangling pointer risk with a static global logging proxy. Further improvements are requested regarding the robustness of the maybeFindDouble helper, adherence to C++ casting standards, and the restoration of a check for defined statistics members.
- Update minimum Flutter and Dart version to 3.13 and 3.1 - Fix analyze issue - Update code format - Adds compatibility with `http` 1.0 in example
There was a problem hiding this comment.
Code Review
This pull request updates the flutter_webrtc_tizen plugin to version 0.2.0, increasing the minimum SDK requirements and updating the flutter_webrtc dependency. Key additions include a TaskRunner for thread-safe event dispatching, UTF-8 sanitization for device identifiers, and support for data packet encryption and frame capturing. The implementation also introduces audio volume control, buffered amount retrieval for data channels, and enhanced logging capabilities. Review feedback identifies critical issues in the frame capture logic, specifically a busy-wait loop that blocks the main thread and a memory leak in pixel buffer allocation. Additionally, concerns were raised regarding thread safety for shared flags, the use of volatile for synchronization, and potential crashes due to dangling pointers in the global logging callback.
1.Fixed the use-after-free vulnerability caused by assigning `scoped_refptr<RTCMediaTrack>` returned by `MediaTrackForId()` to raw pointers. The temporary `scoped_refptr` was being destroyed at the end of the assignment statement, potentially deleting the track object before it could be used.
change so file Flags to soft
It should be atomic to avoid race conditions.
the frame asynchronously or at least non-blockingly.
Fix #971