flutter-webrtc / dart-webrtc

A webrtc interface wrapped in dart language.
MIT License
27 stars 32 forks source link

remove package:js #37

Open jarrodcolburn opened 1 month ago

jarrodcolburn commented 1 month ago

https://github.com/flutter-webrtc/dart-webrtc/issues/28 accomplished half it's stated goal ✅ move from dart:html ❌ to package:web

I feel like in order to fully move to package:web would require removal of package:js

jarrodcolburn commented 1 month ago

for example, the custom js classes in file at https://github.com/flutter-webrtc/dart-webrtc/blob/main/lib/src/rtc_transform_stream.dart are implemented in package:web so be replaced with

// rtc_transform_stream.dart
// can replace existing file with the following
export 'package:web/web.dart'
    show
        WritableStream,
        ReadableStream,
        TransformStream,
        TransformStreamDefaultController,
        RTCEncodedAudioFrame,
        RTCEncodedVideoFrame,
        RTCEncodedAudioFrameMetadata,
        RTCEncodedVideoFrameMetadata,
        RTCTransformEvent,
        RTCRtpScriptTransformer,
        RTCRtpScriptTransform;

// TODO: figure out how to replace legacy classes: EncodedStreams & RTCEncodedFrame
jarrodcolburn commented 1 month ago

I'm trying to do it on my fork https://github.com/jarrodcolburn/dart-webrtc/tree/remove_package_js But I'm not familiar enough with the webrtc. Like in file https://github.com/jarrodcolburn/dart-webrtc/blob/4b507ef3c5ec633947fd7c9652d6aef1c72009e8/lib/src/e2ee.worker/e2ee.cryptor.dart#L246

does this go from

readable.pipeThrough(transformer).pipeTo(writable);

to

      transformer.readable.pipeTo(writable);

And the functions like getUnencryptedBytes that call a psuedo superclasss RTCEncodedFrame does that need to run for both Audio and Video?