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 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
|
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
|
f5726fc9b2
|
Move opts/ into util/opts/
|
2022-09-02 22:00:01 +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
|
d49169070a
|
Add RTSP support via live555
|
2022-08-25 17:16:24 +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
|
b052e5eb04
|
Remove the controls::draft::AfTrigger since it is an exposed control now via controls::AfTrigger
|
2022-07-12 11:10:25 +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 |
|
Kamil Trzcinski
|
f7e5b0bcbe
|
Better output controls and properties from libcamera
|
2022-07-07 14:19:45 +02:00 |
|
Kamil Trzcinski
|
99dd89796d
|
Dump libcamera metadata in verbose
|
2022-07-07 12:09:05 +02:00 |
|
Kamil Trzcinski
|
1f5262afd8
|
Add -camera-auto-focus option
|
2022-07-07 12:08:56 +02:00 |
|
Kamil Trzcinski
|
4e8e74c716
|
Fix dynamic setting of auto-focus
|
2022-07-07 11:37:36 +02:00 |
|
Kamil Trzcinski
|
07a46ee7cc
|
Make libcamera to support some formats
|
2022-07-07 11:37:19 +02:00 |
|
Kamil Trzcinski
|
4eaa42f1ea
|
Add Af-Trigger
|
2022-07-05 12:05:17 +02:00 |
|
Kamil Trzcinski
|
26d94709e3
|
Fix printf warnings
|
2022-07-05 11:25:20 +02:00 |
|
Kamil Trzcinski
|
ff95a28977
|
Fix compilation errors
Resolves: https://github.com/ayufan-research/camera-streamer/issues/2
|
2022-07-04 17:44:35 +00:00 |
|
Kamil Trzcinski
|
9c7f5fed12
|
Enable -Wall
|
2022-04-14 10:13:44 +02:00 |
|
Kamil Trzcinski
|
ae18e06098
|
Fail on wrong resolution
|
2022-04-12 10:05:03 +02:00 |
|
Kamil Trzcinski
|
ddca582551
|
Automatically reconnect
|
2022-04-12 09:23:46 +02:00 |
|
Kamil Trzcinski
|
a1c974c9be
|
Remove camera_legacy_isp.c
|
2022-04-12 09:18:40 +02:00 |
|
Kamil Trzcinski
|
04bf3a2442
|
Optimize decoder
|
2022-04-12 09:17:56 +02:00 |
|
Kamil Trzcinski
|
5ab25f435a
|
Improve how options are handled
|
2022-04-12 08:59:04 +02:00 |
|
Kamil Trzcinski
|
b9fd63154c
|
Improve regular messages
|
2022-04-12 08:51:19 +02:00 |
|
Kamil Trzcinski
|
887b88fdda
|
Print links pipeline (for informational purposes)
|
2022-04-12 08:49:19 +02:00 |
|
Kamil Trzcinski
|
d688f7127f
|
Support all rescaling aspects
|
2022-04-12 01:01:06 +02:00 |
|
Kamil Trzcinski
|
5160bdeb3d
|
Use legacy isp to rescale outputs
|
2022-04-12 00:38:27 +02:00 |
|
Kamil Trzcinski
|
80b69bd3eb
|
Rework links handling to create a complete pipeline
|
2022-04-12 00:33:24 +02:00 |
|
Kamil Trzcinski
|
a4d6f35004
|
Get rid of pipeline
|
2022-04-11 22:06:19 +02:00 |
|
Kamil Trzcinski
|
8dd470cb49
|
Make device to support composite devices (single output, many captures)
|
2022-04-11 22:02:22 +02:00 |
|
Kamil Trzcinski
|
d7c263bae9
|
Remove dependency on output_list and capture_list to create a pipeline
|
2022-04-11 21:50:48 +02:00 |
|
Kamil Trzcinski
|
4497c91ae8
|
Make buffer_list_t *device_open_buffer_list_capture
|
2022-04-11 21:09:30 +02:00 |
|
Kamil Trzcinski
|
cde6185963
|
Make buffer_list_t *device_open_buffer_list_output
|
2022-04-11 21:07:04 +02:00 |
|
Kamil Trzcinski
|
d4b18aac2a
|
Make buffer_list_t *device_open_buffer_list to return buffer_list
|
2022-04-11 20:58:30 +02:00 |
|
Kamil Trzcinski
|
5a9e871484
|
Introduce buffer_format_t and use it for buffer_list_open
|
2022-04-11 20:48:09 +02:00 |
|
Kamil Trzcinski
|
a3e8ef1e24
|
Make buffer_list_open to accept const char *path
|
2022-04-11 19:14:06 +02:00 |
|
Kamil Trzcinski
|
753e9d4255
|
Clone dev->dev_fd to provide buf_list->dev_fd
|
2022-04-11 19:00:06 +02:00 |
|
Kamil Trzcinski
|
e69f707ef0
|
Fix frame rate
|
2022-04-11 17:07:35 +02:00 |
|