Commit Graph

29 Commits

Author SHA1 Message Date
Atsushi Watanabe
00eca231a7 Select by DeviceID using StringConstraint 2020-05-24 11:15:29 -04:00
Atsushi Watanabe
ecff5e63a5 prop: support ranged/exact/oneof constraints 2020-05-24 10:26:16 +09:00
Lukas Herman
8127ce3be6 Refractor track to be more DRY
Resolves https://github.com/pion/mediadevices/issues/141

 * Remove newVideoTrack and newAudioTrack
 * Add a generic encoderBuilder struct
 * Add newVideoEncoderBuilders and newAudioEncoderBuilders helpers
 * Update sampler to be functional and add support for audio sampler
 * Reduce boilerplates by using closure
2020-04-18 23:51:09 -04:00
Lukas Herman
e091067e8e Add support for non-discrete constraints
Resolves https://github.com/pion/mediadevices/issues/61

* Add a Merge method in prop
* Replace a manual merge in mediadevices in best property selection
  with the new Merge method
2020-02-19 21:07:27 -08:00
Atsushi Watanabe
2bac44aa8a Close drivers on stream initialization failure
In GetUserMedia and GetDisplayMedia, driver was left opened if
initialization failure. Since Trackers are not returned on error,
there was no way to close them.
This commit closes Trackers on GetUserMedia/GetDisplayMedia failure.
2020-02-19 20:21:21 -08:00
Atsushi Watanabe
53d55a30e5 Add driver priority information
Make system default device selected by default.
2020-02-14 21:08:47 -08:00
Atsushi Watanabe
c501f06326 Add driver.FilterAnd/Not
Simplify the logical operations in driver selection.
2020-02-14 12:22:03 -08:00
Lukas Herman
9917591ef4 Add DeviceType to MediaDeviceInfo 2020-02-14 12:22:03 -08:00
Lukas Herman
350fab996e Exclude screen capture devices from selectVideo 2020-02-14 12:22:03 -08:00
Lukas Herman
ed2323bebc Add GetDisplayMedia
* Add selectScreen to select all registered drivers that can screenshare
* Add GetDisplayMedia
* Add screenshare example
2020-02-14 12:22:03 -08:00
Lukas Herman
46c55deeb4 Change driver registration requirement to have an Info
* Move label to Info
* Replace label requirement to be an info
* Replace Label driver method to be an Info method
2020-02-14 12:22:03 -08:00
Atsushi Watanabe
bca254261d Allow to use user defined Track
Add WithTrackGenerator option to specify TrackGenerator.
This allows user to replace Track by user defined one that
has WriteSample() and Codec() interface.
2020-02-12 22:24:32 -08:00
Atsushi Watanabe
99af57a42a Select media with DeviceID property 2020-02-12 22:24:09 -08:00
Atsushi Watanabe
5653cdf9e8 Implement EnumerateDevices and register all devices 2020-02-12 22:24:09 -08:00
Lukas Herman
c6d0f3ec02 Add custom video/audio transforms
Resolves https://github.com/pion/mediadevices/issues/31
2020-02-12 08:17:57 -08:00
Lukas Herman
ec310e566b Move Codec from MediaTrackConstraints to prop.Codec 2020-02-10 20:07:41 -08:00
Atsushi Watanabe
2fd3907305 Add MediaDevicesFromCodecs
Add a constructor directly from lists of codecs.
It makes MediaDevices capable for non-WebRTC purposes
as same as the Web API.
2020-02-09 07:12:04 -08:00
Lukas Herman
aece2b94c6 Refractor, unify some APIs to be more DRY 2020-02-06 22:44:29 -08:00
Lukas Herman
2640f6c1f4 Move all settings to video/audio under io 2020-02-06 22:44:29 -08:00
Lukas Herman
2d9bfcda4d Remove Kind in favor of type assertion 2020-02-06 22:44:29 -08:00
Lukas Herman
61c0b53c55 Add initial audio support 2020-02-06 22:44:29 -08:00
Lukas Herman
5316a81aec Add some comments for better godoc 2019-12-28 09:39:31 -08:00
Lukas Herman
53244f8b27 Expose Tracker and Manager types for better godoc 2019-12-28 09:39:31 -08:00
Lukas Herman
ec58fac1e7 Rename Spec to Setting 2019-12-28 09:39:31 -08:00
Lukas Herman
5679e3c0d7 Add SelectSettings algorithm and Codec to video constraints 2019-12-28 09:39:31 -08:00
Lukas Herman
9dbe3bfb9a Move reusable packages into pkg 2019-12-25 16:13:37 -08:00
Lukas Herman
417491ec95 Clean up driver's interfaces 2019-12-25 16:13:37 -08:00
Lukas Herman
709e56166f Completely rearchitect the overall project structure 2019-12-25 16:13:37 -08:00
Lukas Herman
b8b30bd7eb Initial commit
Resolves #1
2019-12-04 21:58:39 -08:00