Video optimizations (#18)

* use events for `VideoTrackRenderer`

* logger

* implemented visibility detection

* optimize code with 1 param debounce func

* stop pending visibility event when disposed

* clean up

* mark internal

* report to track

* call dispose on pub and track

* use internal events to receive visibility events

* clean up visibility for disposed track

* listen to track visibility events on pub

* re-design

* quickly re-enable

* clean up

* clean up
This commit is contained in:
Hiroshi Horie
2021-10-25 18:34:02 +09:00
committed by GitHub
parent bf1322642b
commit 16910cae25
18 changed files with 314 additions and 95 deletions
+3 -1
View File
@@ -1,17 +1,18 @@
import 'package:flutter_webrtc/flutter_webrtc.dart' as rtc;
import 'package:meta/meta.dart';
import '../proto/livekit_models.pb.dart' as lk_models;
import 'track.dart';
/// A video track will notify when its mediaTrack has changed.
class VideoTrack extends Track {
//
rtc.MediaStream _mediaStream;
VideoTrack(
String name,
rtc.MediaStreamTrack mediaTrack,
this._mediaStream,
// this._client,
) : super(
lk_models.TrackType.VIDEO,
name,
@@ -22,6 +23,7 @@ class VideoTrack extends Track {
/// internal use
/// {@nodoc}
@internal
void setMediaStream(rtc.MediaStream stream) {
_mediaStream = stream;
notifyListeners();