Commit Graph
67 Commits
Author SHA1 Message Date
Hiroshi Horie 1ed757aca0 organize dirs 2021-12-21 17:57:18 +07:00
Hiroshi HorieandGitHub fa063ac352 Fix: move waitFor<EngineConnectedEvent> after creating remote participants (#58)
* wait after creating participant

* fix

* wait after creating remote participants

* remove unnecessary line

* revert additional checks (unlikely to be required)

* clean up logs

* revert comment
2021-12-16 14:29:42 +07:00
Hiroshi Horie e015f62b9c more logging 2021-12-16 03:30:48 +07:00
Hiroshi HorieandGitHub 28e7091325 Send video layers (#55)
* signal method

* videoLayers param on addTrack request

* screen share presets

* implemented

* cleaner syntax
2021-12-15 19:09:38 +07:00
Hiroshi Horie a82c5a7a50 VideoDimensions instead of width height 2021-12-13 21:49:42 +07:00
Hiroshi HorieandGitHub b6494a8ede Default capture options (#51)
* default capture options

* separate camera & screen share capture options
2021-12-13 02:21:46 +07:00
Hiroshi Horie b91c822fba more docs 2021-12-12 19:09:38 +07:00
Hiroshi Horie 7a8f03963e fix imports 2021-12-10 00:27:43 +07:00
Hiroshi Horie a706a5e1fb organize ConnectOptions RoomOptions RTCConfiguration 2021-12-10 00:23:45 +07:00
Hiroshi Horie 303b6af427 signal events marked internal 2021-12-09 13:25:14 +07:00
Hiroshi Horie 6003258089 more docs 2021-12-09 13:22:03 +07:00
Hiroshi Horie e06936de2d sort imports
`flutter pub run import_sorter:main --no-comments`
2021-12-05 13:44:14 +07:00
Hiroshi HorieandGitHub 77dc98601a Option to unpublish without stopping track (#45)
* implement

* rename

* only for local

* keep option

* no per unpublish option to stop track

* format

* format
2021-12-03 11:06:21 +07:00
Hiroshi Horie 2244e31e5b throw if unknown track type 2021-12-03 02:02:28 +07:00
Hiroshi Horie adc97a154b no casting required for getTrackPublicationBySource 2021-12-03 01:36:22 +07:00
Hiroshi Horie 19869a1575 minor fix 2021-12-03 01:10:40 +07:00
Hiroshi Horie f0995ef85e better type for TrackPublication param 2021-12-03 01:05:52 +07:00
Hiroshi Horie 4c66704427 participant to parent (TrackPublication) 2021-12-03 00:57:42 +07:00
Hiroshi Horie e597e4f2fd move reference to engine to parent (Participant) class 2021-12-03 00:17:03 +07:00
Hiroshi Horie 08d9575ec5 better type for Participant.trackPublications 2021-12-03 00:08:30 +07:00
Hiroshi Horie caa2e16fd8 return publication for TrackSource apis 2021-12-02 07:44:02 +07:00
Hiroshi Horie 725214e4f9 return correct type for publish 2021-12-02 07:37:48 +07:00
Hiroshi Horie 09eb52bc55 use object type instead of checking kind 2021-12-02 07:15:59 +07:00
Hiroshi HorieandGitHub 44864ff525 Type-aware Publication etc (static typing) (#43)
* implemented

* format

* add missing type
2021-12-01 12:15:09 +07:00
David ZhaoandGitHub 004f8c7fdb Send video dimensions to the server (#41) 2021-11-30 20:45:09 -08:00
Hiroshi Horie 2cd3198cdd organize track & pub to directory 2021-11-30 17:29:18 +07:00
Hiroshi Horie 11a1d22e7f format 2021-11-30 16:04:37 +07:00
Hiroshi HorieandGitHub 8037d80674 Release camera/mic when muted, restartTrack when unmuted (#39)
* re-structure tracks

* publication.track is now a LocalTrack or RemoteTrack

* restartTrack when unmute

* stop/start on restartTrack

* move to mute/unmute

* format

* remove comment
2021-11-30 15:58:19 +07:00
Hiroshi Horie 9e0a3b19fe return casted list for videoTracks/audioTracks/subscribedTracks 2021-11-30 12:37:13 +07:00
Hiroshi HorieandGitHub 4f0973ce66 Match muted behavior with JS SDK (#32)
* attempt 1

* implement

* clean up

* clean up

* cleaner code

* mute was opposite

* fix suggestion

* fix local pub muted

* update example

* update pubs

* format
2021-11-20 02:39:52 +07:00
davidliuandGitHub 4a59a1e6d5 android screenshare example and touch ups (#31) 2021-11-17 17:11:46 +09:00
Hiroshi HorieandGitHub 1095e25113 Simpler APIs (#28)
* TrackSource

* remove absolute import

* typo

* get track

* set source enabled

* fix symbol collision

* move to participant

* update proto

* screen share audio

* typo

* format

* change screen share name
2021-11-11 00:20:32 +09:00
Hiroshi HorieandGitHub d31daa5d8e Connection quality (#27)
* update protos

* signal event

* implemented

* format

* implement example

* protocol 5

* icon size
2021-11-06 17:36:47 +09:00
Hiroshi Horie 721b04753a remove unnecessary cast 2021-10-28 15:56:15 +09:00
Hiroshi Horie b42257473b LocalTrackPublishedEvent LocalTrackUnpublishedEvent 2021-10-28 15:55:25 +09:00
Hiroshi Horie 79a2d20702 optimizeVideo option 2021-10-28 02:57:15 +09:00
Hiroshi Horie a0a9acc9d9 example app: allow scroll in connect page 2021-10-28 02:14:52 +09:00
Hiroshi Horie 8d80a9296a TrackPublishedEvent for local tracks 2021-10-27 22:05:33 +09:00
Hiroshi HorieandGitHub 6240457333 Option to control DTX (#25)
* protocol 4

* default to v4

* mediaStreamTrack.enabled

* track start

* private constructor

* remote audio/video tracks

* log sdp

* organize imports

* dtx option (default true)
2021-10-26 02:53:34 +09:00
Hiroshi HorieandGitHub 71a21f00b6 Reuse transceivers (#24)
* protocol 4

* default to v4

* mediaStreamTrack.enabled

* track start

* private constructor

* remote audio/video tracks

* log sdp

* organize imports
2021-10-26 02:46:10 +09:00
Hiroshi HorieandGitHub 16910cae25 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
2021-10-25 18:34:02 +09:00
Hiroshi Horie 6d4f32233f format 2021-10-24 02:18:43 +09:00
Hiroshi Horie 6a43f3394c call dispose on pub and track 2021-10-22 23:14:26 +09:00
Hiroshi Horie ab028195de mark internal 2021-10-22 03:30:05 +09:00
Hiroshi Horie a1c80dee83 Revert "mute new mediaTrack if pub is muted"
This reverts commit 8a68810138.
2021-10-22 02:48:06 +09:00
Hiroshi Horie 8a68810138 mute new mediaTrack if pub is muted 2021-10-21 21:37:06 +09:00
Hiroshi HorieandGitHub 48e03b84cb Create android & web plugins (#15)
* create android & web plugins

* apply `flutter format .`
2021-10-02 15:20:41 +09:00
Hiroshi HorieandGitHub b67c807fd5 Organize events (#13)
* move internal events & remove unused events

* `TrackUnpublishedEvent` for local tracks

* update example since we have local track unpublish events

* use flutter_webrtc 0.6.9
2021-10-01 16:56:36 +09:00
Hiroshi HorieandGitHub 001f688729 Better audio management (#10)
* add audio_session package

* `AudioManager` initial design

* try to integrate audio manager

* configure audio session

* `DisposeAware`

disposing if already published causes exception.

* organize

* guard flutter_webrtc calls

* websocket async fix

* use `ConnectionState` instead of `_isClosed` and `isReconnecting`

* change create audio track defaults

* update protos

* protocol 3 speaker updates

* fix exception

* emit `RoomDisconnectedEvent` only once

* fix exception

* keep track of local / remote audio tracks

* explicit types

* manage track state

* re-structure audio management

* change defaults

* unpublish all

* use experimental build

* change defaults

* configuring is optional

* call native `RTCAudioSession.setConfiguration`

* defaults adjustment

* iOS only for now

* use lib 92.4515.07

* clean up

* revert audio options for now

* remove pod source

* rename apple related audio

* `createListener` method

* organize native audio

* `SpeakingChangedEvent` only on `Participant`

* refactoring

* fix ios compile

* fix configure audio only for iOS logic

* minor fix & clean up

* change dispose logic

* format protos

* fix unpublishTrack

* `createListener` into a mixin

* simplify

* use flutter_webrtc master

* unpublish for example

* update ios icon

* android icon

* web icon

* favicon
2021-10-01 02:47:18 +09:00
Hiroshi HorieandGitHub 6445b8d2a8 Switch to new event system (#9)
* `SignalEvents` and `synchronized` mode for `EventsListenable`

* cascade syntax

* clean up

* `RoomEvents`

* `ParticipantEvents`

* all events implemented

* make it compile with M1 macs

* dispose logic

* cleaner connect logic

* ask to publish

* fix initial EngineTrackAddedEvent glitch

* fix unpublishTrack bug

* clean up

* better events docs

* organize event types

* clean up

* cleaner wait logic

* wait for event instead of using Completer

* notifyListeners
2021-09-24 23:37:26 +09:00