290 Commits

Author SHA1 Message Date
MK3S+ Printer
f0d16f491c Add CAMERA_DECODER_DEBUG to capture debug output of capture into /tmp 2022-10-29 11:10:36 +02:00
MK3S+ Printer
8359362204 Improve decoder selected formats to choose ones with best quality first 2022-10-29 11:10:16 +02:00
MK3S+ Printer
4b2f51ba2e Fix /option support 2022-10-29 10:00:17 +02:00
Kamil Trzcinski
57fc761986 Active high/low res only when needed 2022-10-25 16:56:32 +02:00
Kamil Trzcinski
6bdb33ff3a Fix buffer leakage on camera reconnect 2022-10-25 16:37:30 +02:00
Kamil Trzcinski
caafd0da44 Add Access-Control-Allow-Origin: * everywhere 2022-10-24 00:22:48 +02:00
Kamil Trzcinski
cb7795ad2e Fix typo 2022-10-24 00:22:48 +02:00
MK3S+ Printer
e509c328f1 Disable usage of STUN server (it should not be needed for local) 2022-10-10 20:27:22 +02:00
Kamil Trzcinski
57fb09fbf1 Improve index.html to provide better description of all options 2022-10-03 01:25:51 +02:00
Kamil Trzcinski
771f61449b Fix Unexpected error 9 on netlink descriptor <fd>
The problem is double close of `fd` since the `fdopen`
takes ownership of fd passed.
2022-09-24 10:59:08 +02:00
Kamil Trzcinski
f08421a796 Improve HTTP support (to better handle params) and redirect /video params 2022-09-24 10:41:09 +02:00
Kamil Trzcinski
5801152b03 Add /video to automatically give HLS to supported browser 2022-09-24 10:40:52 +02:00
Kamil Trzcinski
5ee0bee59f Add WebRTC support using libdatachannel
The WebRTC is exposed via `/video.html` endpoint
and enabled by default as long as h264 stream
is available.
2022-09-24 10:38:37 +02:00
Kamil Trzcinski
ff81088824 Build action workflow 2022-09-06 14:11:27 +00:00
noahwilliamsson
d36c2d590c device/libcamera: fix libcamera::Span API breakage (#11)
After upgrading from the July, 2022 releases of Raspberry Pi's libcamera packages to the Aug, 2022 releases, compilation fails with:

```
g++ -std=c++17 -MMD -Werror -Wall -g -I/tmp/camera-streamer -D_GNU_SOURCE -DUSE_FFMPEG -DUSE_LIBCAMERA -I/usr/include/libcamera -DUSE_RTSP -I/usr/include/liveMedia -I/usr/include/groupsock -I/usr/include/BasicUsageEnvironment -I/usr/include/UsageEnvironment -DUSE_LIBDATACHANNEL -Ithird_party/libdatachannel/include -Ithird_party/libdatachannel/deps/json/include -c -o device/libcamera/device.o device/libcamera/device.cc
In file included from device/libcamera/libcamera.hh:22,
                 from device/libcamera/device.cc:2:
/usr/include/libcamera/libcamera/controls.h: In instantiation of 'void libcamera::ControlList::set(const libcamera::Control<T>&, const std::initializer_list<_Up>&) [with T = libcamera::Span<const long int, 2>; V = long int]':
device/libcamera/device.cc:126:100:   required from here
/usr/include/libcamera/libcamera/controls.h:403:14: error: no matching function for call to 'libcamera::ControlValue::set<libcamera::Span<const long int, 2> >(libcamera::Span<const long int, 18446744073709551615>)'
  403 |   val->set<T>(Span<const typename std::remove_cv_t<V>>{ value.begin(), value.size() });
      |   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/libcamera/libcamera/controls.h:178:7: note: candidate: 'template<class T, typename std::enable_if<((! libcamera::details::is_span<U>::value) && (! std::is_same<std::__cxx11::basic_string<char>, typename std::remove_cv< <template-parameter-1-1> >::type>::value)), std::nullptr_t>::type <anonymous> > void libcamera::ControlValue::set(const T&)'
  178 |  void set(const T &value)
      |       ^~~
/usr/include/libcamera/libcamera/controls.h:178:7: note:   template argument deduction/substitution failed:
/usr/include/libcamera/libcamera/controls.h:177:30: error: no type named 'type' in 'struct std::enable_if<false, std::nullptr_t>'
  177 |            std::nullptr_t> = nullptr>
      |                              ^~~~~~~
/usr/include/libcamera/libcamera/controls.h:190:7: note: candidate: 'template<class T, typename std::enable_if<(libcamera::details::is_span<U>::value || std::is_same<std::__cxx11::basic_string<char>, typename std::remove_cv< <template-parameter-1-1> >::type>::value), std::nullptr_t>::type <anonymous> > void libcamera::ControlValue::set(const T&)'
  190 |  void set(const T &value)
      |       ^~~
/usr/include/libcamera/libcamera/controls.h:190:7: note:   template argument deduction/substitution failed:
/usr/include/libcamera/libcamera/controls.h:403:14: note:   cannot convert 'libcamera::Span<const long int, 18446744073709551615>((& value)->std::initializer_list<long int>::begin(), (& value)->std::initializer_list<long int>::size())' (type 'libcamera::Span<const long int, 18446744073709551615>') to type 'const libcamera::Span<const long int, 2>&'
  403 |   val->set<T>(Span<const typename std::remove_cv_t<V>>{ value.begin(), value.size() });
      |   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```

After introducing this change (see raspberrypi/libcamera-apps PR 342), it works with both versions mentioned below:

```
$ apt list --installed
libcamera-apps/now 0~git20220707+35266e8-1 arm64 [installed,upgradable to: 0~git20220830+1bf0cca-1]
libcamera-dev/now 0~git20220705+f30ad033-1 arm64 [installed,upgradable to: 0~git20220826+3fad116f-1]
libcamera-tools/now 0~git20220705+f30ad033-1 arm64 [installed,upgradable to: 0~git20220826+3fad116f-1]
libcamera0/now 0~git20220705+f30ad033-1 arm64 [installed,upgradable to: 0~git20220826+3fad116f-1]
```
2022-09-06 13:52:47 +02:00
Kamil Trzciński
878ad95598 Fix bug introduced by 3c818772d1 (diff-6eb6287b4cf8659acef0809a500f07e26feac08a34f12b17a8897127a5d84ab8) 2022-09-04 19:19:13 +00:00
Kamil Trzciński
fbf4e30f71 Fix build-env script 2022-09-04 18:48:12 +00:00
Kamil Trzcinski
6eaaa57d0b Do not use ISP to produce concurrently low resolution 2022-09-04 20:30:27 +02:00
Kamil Trzcinski
5031cd99f6 Register buffer_lock as a global output 2022-09-04 20:30:26 +02:00
Kamil Trzcinski
3c818772d1 Add scripts to create build env for other architectures 2022-09-04 20:27:42 +02:00
Kamil Trzcinski
0a37c63d00 Enumerate v4l2 devices 2022-09-03 10:21:46 +02:00
Kamil Trzcinski
328198745b Remove rtsp_options from output/rtsp 2022-09-03 10:20:17 +02:00
Kamil Trzcinski
df67c0272e Make video.mp4 streamable using MSE on supported browsers 2022-09-02 22:09:55 +02:00
Kamil Trzcinski
dd3aa47805 Move http/ and rtsp/ into output/ 2022-09-02 22:06:19 +02:00
Kamil Trzcinski
17ec167dd9 Move part of http/ into util/http/ 2022-09-02 22:02:41 +02:00
Kamil Trzcinski
2299bf9708 Move ffmpeg/ into util/ffmpeg/ 2022-09-02 22:01:09 +02:00
Kamil Trzcinski
f5726fc9b2 Move opts/ into util/opts/ 2022-09-02 22:00:01 +02:00
Kamil Trzcinski
9a592fb00e Change h264 stream to 2Mbps by default 2022-08-31 19:18:45 +02:00
Kamil Trzcinski
a397ccc8c2 Get rid of .vscode/settings.json 2022-08-31 10:59:41 +02:00
Kamil Trzcinski
94afdc2cf4 Split camera-streamer into separate files 2022-08-31 10:53:14 +02:00
Kamil Trzcinski
05a25e853a Move camera-streamer into subdirectory 2022-08-31 10:50:00 +02:00
Kamil Trzcinski
d430d68fc7 Improve RTSP support to configure port and expose low res stream 2022-08-27 20:38:15 +02:00
Kamil Trzcinski
e4be9cac48 Fix ConditionPathExists 2022-08-26 12:01:21 +02:00
Kamil Trzcinski
d49169070a Add RTSP support via live555 2022-08-25 17:16:24 +02:00
Kamil Trzcinski
7a584dc16d Add disclaimer about auto_focus, vflip and hflip 2022-08-24 17:51:33 +02:00
Kamil Trzcinski
a9c65fae0d Allow to set -camera-vflip and -camera-hflip 2022-08-24 17:48:55 +02:00
Kamil Trzcinski
8b1d066dfc Fix compilation of device/libcamera/fake_camera.c on 32bits 2022-07-20 12:21:33 +02:00
Kamil Trzcinski
6530e5f5b6 Implement FAKE_CAMERA_SENSOR to allow fake image sensor used
Example, make `arducam_64mp` to behave as `imx519` as `imx519`
does have auto exposure control:

```
FAKE_CAMERA_SENSOR=arducam_64mp=imx519
```
2022-07-14 14:19:02 +02:00
Kamil Trzcinski
4e641dea1e Open default camera of a given type 2022-07-12 21:59:02 +02:00
Kamil Trzcinski
1857cd8d77 Improve options handling 2022-07-12 21:49:49 +02:00
Kamil Trzcinski
18be13ccc9 Merge branch 'master' of github.com:ayufan-research/camera-streamer 2022-07-12 15:58:07 +02:00
RobeeeJay
9e6e449f98
Added service file for Raspberry Pi v2.1 camera (#4)
* Added service file for Raspberry Pi v2.1 camera
2022-07-12 15:55:32 +02:00
Kamil Trzcinski
39c383851d Detect USB/arducam presence 2022-07-12 15:47:20 +02:00
Kamil Trzcinski
b052e5eb04 Remove the controls::draft::AfTrigger since it is an exposed control now via controls::AfTrigger 2022-07-12 11:10:25 +02:00
MK3S+ Printer
9e7e14d15b Expose snapshot.jpg 2022-07-11 15:58:16 +02:00
Kamil Trzcinski
2cec9a9032 Make JPEG to be valid format 2022-07-08 13:42:22 +02:00
Kamil Trzcinski
883a951cea Expose options for v4l2 2022-07-08 12:41:08 +02:00
Kamil Trzcinski
6460d1b902 Emit options of all devices 2022-07-08 12:20:09 +02:00
Kamil Trzcinski
b4668aa320 Output all properties and options 2022-07-08 12:12:30 +02:00
Kamil Trzcinski
9051518082 Better print available cameras 2022-07-08 10:54:18 +02:00