Commit Graph

29 Commits

Author SHA1 Message Date
CloudWebRTC cbdfa634a3 feat: Support for capturing audio for chrome tab. (#158)
* feat: Support for capturing audio for chrome tab.

* Update code comments.
2022-09-07 15:15:11 +08:00
davidliu 46fe1cd7cd iOS Broadcast Extension instructions (#144) 2022-08-08 23:16:13 +09:00
CloudWebRTC a554d92543 screen sharing for desktop. (#135)
* screen sharing for desktop (WIP).

* use git repo for testing.

* update.

* Add sourceId/frameRate to ScreenShareCaptureOptions.

* Compatible with flutter web.

* Rendering of camera and screenshare video tracks at same time.

* Remote screen sharing is shown first, and fixed sub/unsub button for screenshare widget.

* resolved conflict.

* modify flutter-webrtc to pub version.

* remove unused import.

* chore: Common params for Camera and ScreenShare.
2022-08-02 11:17:09 +08:00
davidliu 531cbd1676 iOS screen share (#133) 2022-07-10 22:43:20 +09:00
davidliu e7333174b5 Fix device id not working for web (#91)
* update gradle

* Use either sourceId or deviceId as needed

Web does not allow for mixing optional constraints with modern constraints
2022-03-12 02:26:09 +09:00
davidliu 288bd99dca add ability to select capture device ids (#89)
* add ability to select capture device ids

* format fix
2022-03-10 00:08:21 +09:00
Hiroshi Horie 7c16d2f3ec Update param computation (#87)
* import sorter config

* organize video types

* ignore import sort for proto files

* equality for video types

* impl

* adjust defaults

* max
2022-03-01 10:45:24 +09:00
Hiroshi Horie 0a339b6252 organize video types 2022-02-25 15:45:46 +09:00
Hiroshi Horie 8b4f754059 fix presets 2022-02-22 10:36:43 +07:00
Hiroshi Horie 2366eb9f7c update presets (#85) 2022-02-22 03:13:09 +07:00
Hiroshi Horie 1ed757aca0 organize dirs 2021-12-21 17:57:18 +07:00
Hiroshi Horie 3d5e8a7dd8 update presets 2021-12-14 13:47:29 +07:00
Hiroshi Horie 4e83609819 screen share presets 2021-12-14 00:55:47 +07:00
Hiroshi Horie a82c5a7a50 VideoDimensions instead of width height 2021-12-13 21:49:42 +07:00
Hiroshi Horie 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 8041f45def option docs 2021-12-12 18:32:34 +07:00
davidliu 6b80d105f4 Update flutter_webrtc (#48)
Also update video constraints to use modern constraint syntax
2021-12-07 00:46:03 +09:00
Hiroshi Horie df33560426 CameraPosition docs 2021-12-05 10:59:42 +07:00
Hiroshi Horie 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
davidliu c71bcaeaf8 Default mic settings (#37) 2021-11-29 20:42:26 +09:00
davidliu c50e0269cf Use min for width/height to apply constraints (#35) 2021-11-26 15:03:38 +09:00
Hiroshi Horie 48e03b84cb Create android & web plugins (#15)
* create android & web plugins

* apply `flutter format .`
2021-10-02 15:20:41 +09:00
Hiroshi Horie f4bd82a919 Subscriber as primary (#8)
* Update protos

* Signal client

* Improve transport

* First implementation

* Fix publish

* Update `PCTransport` for debounce negotiation

* debounce func

* reconnect & events

* Update debounce func

* engine events

* make sure events don't emit after dispose

* prefix flutter_webrtc

* Cleaner `iceServers` update

* don't mutate user provided params

* fix tests

* event manager

* Fix: `Room.onDisconnected` gets fired multiple times

* data publish in example

* cleaner logic

* safer events

* un-prefix with LK

* organize imports

* Clean up

* remove `Tuple`

* `EventsEmitter` can now be directly listened to

`EventsEmitter` extends `EventsListenable`
2021-09-18 00:10:16 +09:00
Hiroshi Horie 50f56c5e1e Simulcast, Screen sharing & Various improvements (#4)
* Respect `RTCIceTransportPolicy` enum and organize

* Simplify syntax where possible etc.

* Combine `VideoPreset` and `VideoPresets`

* Default values for `ConnectOptions`

* Build URI instead of String manipulation

* Slight modifications to Exception

* `LiveKitTheme` for example

* `VideoEncoding` class

* Organize imports

* First simulcast implementation

* Remove unnecessary try-catches

* Update Android settings

* Remember uri and token

* example improvements

* `fit` parameter for VideoTrackRenderer

* Simulcast option for example

* Pass `defaultPublishOptions`

* Show only `VideoQuality`

* Pass tests

* Better buildUri logic

* Named parameter to positional

* Explicit imports

* `VideoParameter` instead of `VideoPreset`

* Use `mediaTrack.getSettings` when possible

* Safer dispose logic

* Safer `PCTransport`

Update transport.dart

* Synchronized events for `SignalClient`

* Use logger instead of print

* Make example compile for iOS

* First screen share implementation

* Make example work with screen share

* Example improvement

* Code optimization

* Don't depend on web_socket_channel

* Fix: Unpublish track bug

* Show participant mute state & identity

* Update protos

* Remote mute/unmute

* iOS Background mode

* Separate `createCameraTrack` and `createScreenTrack`

* Clean up

* PB fix

* format

* Fix analyzer warning

* Android clean up

* Update README.md

* Clean up
2021-09-11 03:14:14 +09:00
Hiroshi Horie ab31ddabb9 Apply Flutter best practices [Non-Breaking] (#2)
* Add flutter_lints package

* Use key in widget constructors

lint: use_key_in_widget_constructors

* Unnecessary new keyword

lint: unnecessary_new

* Prefer const with constant constructors

* Exclude protobuf files from analyzer

* Private field could be final

* Annotate overridden members

* Use initializing formals when possible

* Don't access members with `this` unless avoiding shadowing

* Prefer is! operator

* Use isEmpty instead of length

* Use collection literals when possible

* Revert comment changes

* Cleaner null testing

* Misc fixes

* Avoid using `forEach` with a function literal

* Prefer `final` over `var` where applicable

* Enforce stricter type-checking

* Ignore VS Code files

* Flutter format

* Prefer using lowerCamelCase for constant names

* flutter format -l 100

* Disable `avoid_print` for examples

* Slight improvements to example

Should solve lint error: no_logic_in_create_state
2021-08-31 16:35:07 +09:00
David Zhao d011bc7d3d Documentation 2021-08-30 15:31:12 -07:00
David Zhao 509a037936 feature: switch between front and back cameras 2021-08-06 21:20:21 -07:00
David Zhao aec2003140 video rendering, local track creation 2021-08-03 10:25:00 -07:00