Commit graph

10 commits

Author SHA1 Message Date
Javier Martinez Canillas
21c412dc49
libcamera: fix a use-after-free due an attempt to stop the camera twice
Camera is currently stopped and started in the spa_libcamera_set_format()
function, but this leads to a segfault due attempting to access a buffers
field of an already freed libcamera::FrameBufferAllocator instance.

The FrameBufferAllocator instance is freed in LibCamera::stop(), that is
called by spa_libcamera_stream_off() as handler of the node commands
SPA_NODE_COMMAND_Pause and SPA_NODE_COMMAND_Suspend.

Since the camera was already stopped, there's no need to attempt to stop
it again. In fact, the camera shouldn't be stopped/started at all in the
spa_libcamera_set_format() function but instead only as an action of the
SPA_NODE_COMMAND_{Pause,Suspend} and SPA_NODE_COMMAND_Start commands.

And same for the stop that's done in the LibCamera::close() function, it
shouldn't be needed because the camera is already stopped before closing.

Fixes #1513
2021-09-21 14:49:08 +02:00
Javier Martinez Canillas
a7a6f19815
libcamera: don't set camera configuration in LibCamera::start()
There is no need to set and validate the configuration when the camera
is started, since this was already made when the camera was opened.

The configuration only needs to be set again if the port format changes
due a SPA_PARAM_Format parameter.
2021-09-21 14:49:08 +02:00
Peter Hutterer
2405f0942b spa/buffer: rename SPA_MEMBER to SPA_PTROFF
SPA_MEMBER is misleading, all we're doing here is pointer+offset and a
type-casting the result. Rename to SPA_PTROFF which is more expressive (and
has the same number of characters so we don't need to re-indent).
2021-05-06 09:39:39 +00:00
Wim Taymans
18c4af9add libcamera: fix compilation
Fixes #1068
2021-04-18 20:34:24 +02:00
Wim Taymans
cd79cdfb40 libcamera: use the data type mask to select a type
In alloc_buffers we need to look at the data types mask.
Select DmaBuf when not invalid and the DmaBuf flag is set, otherwise
select memptr.

See #1054
2021-04-15 20:40:16 +02:00
Wim Taymans
6e0ba50a9c libcamera: use the buffer datatype as the port type
In use buffers we need to respect the buffer data type.
2021-04-15 20:39:12 +02:00
raghu447
cecbe8ff17 libcamera: cleanup build warnings 2020-06-16 17:53:54 +00:00
raghu447
9c631842cb libcamera: cleanup unused variables 2020-06-15 17:45:01 +05:30
raghu447
40ef322a34 libcamera: Fixed the crash issue when rtkit is enabled. 2020-06-12 12:24:00 +05:30
raghu447
9024cc4444 Integrating libcamera 2020-06-04 10:36:39 +02:00