Commit Graph

48 Commits

Author SHA1 Message Date
Sean Pollock
8fb8d65764 Add webcam close to linux camera discover (#568)
Add webcam close to linux discover
2024-04-30 10:14:26 -04:00
qiulin
ae63fa65bf Remove Windows camera cpp inline function (#569)
Co-authored-by: Qiulin Li <liqiulin@outlook.com>
2024-04-29 09:54:45 -04:00
seanavery
3c9fee958e Add manager clearing mechanism 2023-10-17 16:41:33 -04:00
seanavery
03c44ee803 Remove extra comment 2023-07-24 12:07:38 -04:00
seanavery
dad145ef11 Add props even if framerate is not supported 2023-07-24 12:07:38 -04:00
seanavery
138499b52d Support fps props for linux cams 2023-05-16 14:25:02 -04:00
Clyde Bazile
2372f55064 comments: var block + interface-less error 2023-04-24 11:14:58 -04:00
Clyde Bazile
8568b1b20d do not change other classes 2023-04-24 11:14:58 -04:00
Clyde Bazile
14bfaa5dbd Update pkg/driver/camera/camera_linux.go
Co-authored-by: Eric Daniels <eric@erdaniels.com>
2023-04-12 14:07:14 -04:00
Clyde Bazile
09c31a264c expose device name and bus info 2023-04-12 14:07:14 -04:00
martha-johnston
dc8aeea11f remove name from linux driver info 2023-03-31 16:54:09 -04:00
martha-johnston
57c9ba0fc5 reveal Name var for driver.info 2023-03-31 16:54:09 -04:00
Clyde Bazile
b9ce5bb861 change buffer size to 2 (#482) 2023-03-29 17:42:58 -04:00
martha-johnston
55881ddd41 When finding cameras on linux systems, look at camera ID before path or video* (#476) 2023-03-07 15:58:22 -05:00
Clyde Bazile
62009a882b discard buffered frames for < 1fps (#470) 2023-03-06 16:52:59 -05:00
Clyde Bazile
85597da5bb Expose device list update func (#463) 2023-01-14 09:02:46 +09:00
代码人生
7335797301 Fix for having multiple cameras in Windows (#443) 2022-09-21 18:43:59 +08:00
f-fl0
5b99500290 Camera timeout duration as parameter (#408)
Set PION_MEDIADEVICES_CAMERA_READ_TIMEOUT environment variable
to set the timeout duration.
2022-06-23 10:33:23 +09:00
f-fl0
3b2316081e Update webcam module to set the camera framerate (#390)
* Update webcam module to set the camera framerate
* Add framerate to property fitness function
* Set framerate to dummy VideoRecord
* Add tests about video constraints
* Set framerate only when a positive value is specified
2022-04-04 14:48:56 +09:00
Eric Daniels
70261260cb Release AVFoundation ReadCloser on camera close (#375) 2022-03-28 06:57:15 -04:00
Atsushi Watanabe
1e03f61b4b Stabilize pkg/driver/camera.TestDiscover
Make it testable on a computer with real cameras.
Fix order of test result.
2021-03-19 10:25:09 +09:00
Atsushi Watanabe
dafd208de7 Add test to validate Linux camera label rule 2021-03-08 14:45:45 +09:00
Atsushi Watanabe
fcec5a9149 Fix linux camera label rule document 2021-03-08 14:45:45 +09:00
Eric Daniels
3d3830f7ff Use correct NV12 decoder in camera_linux (#313) 2021-03-04 16:09:05 -08:00
Eric Daniels
655b513810 Add z16 decode support (#310) 2021-03-05 01:35:39 +09:00
Eric Daniels
eaaaacfc6b Combine reallink and label for cameras on linux (#311) 2021-03-04 11:46:50 +09:00
Markus
b5b0653697 Fixes avfoundation panic when using NV12 frame (#302)
* Fixes frame.FormatI420 in avfoundation

* Fixes avfoundation: frame size

which causes panic when using NV12

* avfoundation: uses CVPixelBufferGetDataSize() as frame buffer size

frame: fix frame size checking for YUY2, UYVY

* add camera_darwin_test
2021-02-21 12:13:04 -08:00
Lukas Herman
02d0cd3f44 Prioritize /dev/video0 on Linux camera 2020-11-21 12:44:42 -08:00
Lukas Herman
559c6a13a1 Update readers to be memory pool friendly 2020-10-29 00:04:12 -07:00
Lukas Herman
16bcd0b7dd Fix step wise resolutions in linux camera
Some cameras support a range of resolutions with step wise. The fix is
to not only capture the highest resolutions but uses the step wise to
determine if we can support the hardcoded standard resolutions,
https://commons.wikimedia.org/wiki/File:Vector_Video_Standards2.svg.
In the future, we should use a custom data structure to capture more
resolutions that are outside of the listed standard resolutions.
2020-10-26 21:26:03 -07:00
Lukas Herman
2022a4b7f7 Fix undiscovered some camera devices
/dev/v4l/by-path doesn't return all available devices. So, to make sure
that we include all available devices, the list of devices will also
complement with /dev/video*.
2020-10-26 20:22:40 -07:00
Lukas Herman
eb689a3c79 Remove buffer in linux camera 2020-10-15 00:12:55 -04:00
Lukas Herman
e4b1b1aaba Fix included unsupported formats 2020-10-14 12:18:17 -04:00
Lukas Herman
f7068296d3 Add V4L2_PIX_FMT_YUV420 support for Linux 2020-08-19 23:09:29 -07:00
Lukas Herman
fad6c3ec4b Add darwin camera support
* Add avfoundation Go and C bindings
* Add darwin camera adapter
* Add darwin camera support to README
2020-06-03 10:18:06 -04:00
Atsushi Watanabe
a3dae07854 driver/camera: support UYVY camera 2020-03-30 13:49:02 -04:00
Atsushi Watanabe
5617f478af Get Windows camera props
Enumerate frame formats and use YUY2 format.
2020-02-25 18:43:14 -08:00
Atsushi Watanabe
e1ac08d484 Add initial version of windows camera driver
Image size is fixed to 640x480.
Pixel format is fixed to RGB.
2020-02-25 18:43:14 -08:00
Shinichi Ishimura
5b5d0152bd Add default package file for drivers 2020-02-21 15:48:10 +09:00
Atsushi Watanabe
33b2964733 Fix data race in drivers 2020-02-19 20:21:21 -08:00
Lukas Herman
504b542376 Add DeviceType to Info and a filter function for it
* Add DeviceType to Info
* Update adapters to also register its device type
* Add FilterDeviceType
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
993c23ee90 Use Mutex instead of WaitGroup 2020-02-13 19:35:52 -08:00
Atsushi Watanabe
29d0299c5c Add CPU usage bench 2020-02-13 19:35:52 -08:00
Lukas Herman
1635910909 Protect mmap allocated memory by copying it into Go heap
- Move closing synchronization to the driver level
- Create a buffer for copying the memory allocated by mmap to Go heap
2020-02-13 19:35:52 -08:00
Atsushi Watanabe
c8bba53148 Stop video track safely
- Treat camera read timeout as error and return detailed errors.
- Return io.EOF on Read after Close.
- Wait finishing video read loop to avoid memory violation
  as the video frames might be alloced by C or on shared memory.
2020-02-13 19:35:52 -08:00
Atsushi Watanabe
5653cdf9e8 Implement EnumerateDevices and register all devices 2020-02-12 22:24:09 -08:00
Lukas Herman
d8eda2db81 Group Adapters by their categories
Resolves https://github.com/pion/mediadevices/issues/22

Created 2 new directories under driver, camera and microphone. Moved
camera_linux.go and microphone_linux.go appropriately. Imported
driver/camera and driver/microphone by default.
2020-02-09 09:21:00 -08:00