summaryrefslogtreecommitdiff
path: root/test/camera
AgeCommit message (Expand)Author
2024-06-03test: camera: Increase timeout for vimc capture testsLaurent Pinchart
2022-11-08test: camera_reconfigure: Qualify move() with std:: namespaceLaurent Pinchart
2022-10-07test: meson: Use dictionaries instead of arrays to store test informationLaurent Pinchart
2022-10-07test: Rename 't' to 'test' in meson.buildLaurent Pinchart
2022-08-30test: camera: Remove redundant call of std::string::c_str()Marvin Schmidt
2022-03-25libcamera: base: timer: Drop start() overload with int argumentLaurent Pinchart
2021-11-29test: camera: Fix trivial spelling mistakeJacopo Mondi
2021-10-15test: Remove using namespace in header filesHirokazu Honda
2021-09-02libcamera: Use simpler Signal::disconnect() functionLaurent Pinchart
2021-08-19test: camera: Camera reconfiguration and fd-leak testUmang Jain
2021-07-06libcamera: camera: Make stop() idempotentNícolas F. R. A. Prado
2021-06-25libcamera/base: Validate internal headers as privateKieran Bingham
2021-06-25libcamera/base: Move extended base functionalityKieran Bingham
2021-02-11meson: Fix coding style when declaring arraysLaurent Pinchart
2021-02-04test: buffer-import: Fix false-positive failureKieran Bingham
2020-11-15libcamera: Move EventDispatcher to internal APILaurent Pinchart
2020-11-15test: Get event dispatcher from current threadLaurent Pinchart
2020-10-20test: Omit extra semicolonsHirokazu Honda
2020-10-12libcamera, android, cam, gstreamer, qcam, v4l2: Reuse RequestPaul Elder
2020-09-21test: Include specific headers instead of libcamera.hLaurent Pinchart
2020-08-25meson: Remove -Wno-unused-parameterLaurent Pinchart
2020-08-14libcamera: request: Make Stream pointer constNiklas Söderlund
2020-08-14libcamera: request: Declare a using directive for map of buffersNiklas Söderlund
2020-08-05libcamera: pipelines: Use sensor ID as camera nameNiklas Söderlund
2020-05-16libcamera: Move internal headers to include/libcamera/internal/Laurent Pinchart
2020-05-13licenses: License all meson files under CC0-1.0Laurent Pinchart
2020-03-18libcamera: framebuffer_allocator: Lift camera restrictions on allocatorLaurent Pinchart
2020-03-06test: Extract BufferSource class out of camera tests to libtestNiklas Söderlund
2020-03-06test: camera: buffer_import: Fix error messagesNiklas Söderlund
2020-02-18test: camera: buffer_import: Don't include <random>Laurent Pinchart
2020-01-20test: buffer_import: Propagate status code from buffer allocationLaurent Pinchart
2020-01-12libcamera: camera: Remove the prepared stateNiklas Söderlund
2020-01-12libcamera: Switch to FrameBuffer interfaceNiklas Söderlund
2020-01-12test: camera: buffer_import: Update to FrameBuffer restrictionsNiklas Söderlund
2020-01-12libcamera: buffer: Move captured metadata to FrameMetadataNiklas Söderlund
2020-01-12libcamera: request: In addBuffer() do not fetch stream from BufferNiklas Söderlund
2020-01-12libcamera: buffer: Switch from Plane to FrameBuffer::PlaneNiklas Söderlund
2019-11-20test: Extract CameraTest class out of camera tests to libtestLaurent Pinchart
2019-11-19libcamera: camera: Remove explicit stream to buffer map in requestCompleted s...Niklas Söderlund
2019-11-08libcamera: Remove unneeded semicolonsLaurent Pinchart
2019-10-28libcamera: Switch PixelFormat to DRM FourCC valuesJacopo Mondi
2019-09-16test: buffer_import: Initialize video_ to nullptrJacopo Mondi
2019-08-19libcamera: camera_manager: Construct CameraManager instances manuallyLaurent Pinchart
2019-08-19test: camera: Use the CameraManager from the CameraTest base classLaurent Pinchart
2019-08-11libcamera: pipeline: vimc: Switch to using the RGB/YUV Capture video nodeNiklas Söderlund
2019-08-01test: camera: buffer_import: clear video pointerKieran Bingham
2019-07-14test: camera: Add buffer import and mapping testJacopo Mondi
2019-07-14libcamera: Stop using Stream::bufferPool to get the number of buffersLaurent Pinchart
2019-07-14libcamera: buffer: Split memory information to BufferMemoryLaurent Pinchart
2019-06-11test: camera: Increase runtime for capture testNiklas Söderlund
d. * * If the IPCUnixSocket payload had any valid file descriptors, then they will * all be invalidated. */ IPCMessage::IPCMessage(IPCUnixSocket::Payload &payload) { memcpy(&header_, payload.data.data(), sizeof(header_)); data_ = std::vector<uint8_t>(payload.data.begin() + sizeof(header_), payload.data.end()); for (int32_t &fd : payload.fds) fds_.push_back(SharedFD(std::move(fd))); } /** * \brief Create an IPCUnixSocket payload from the IPCMessage * * This essentially converts the IPCMessage into an IPCUnixSocket payload. * * \todo Resolve the layering violation (add other converters later?) */ IPCUnixSocket::Payload IPCMessage::payload() const { IPCUnixSocket::Payload payload; payload.data.resize(sizeof(Header) + data_.size()); payload.fds.reserve(fds_.size()); memcpy(payload.data.data(), &header_, sizeof(Header)); if (data_.size() > 0) { /* \todo Make this work without copy */ memcpy(payload.data.data() + sizeof(Header), data_.data(), data_.size()); } for (const SharedFD &fd : fds_) payload.fds.push_back(fd.get()); return payload; } /** * \fn IPCMessage::header() * \brief Returns a reference to the header */ /** * \fn IPCMessage::data() * \brief Returns a reference to the byte vector containing data */ /** * \fn IPCMessage::fds() * \brief Returns a reference to the vector containing file descriptors */ /** * \fn IPCMessage::header() const * \brief Returns a const reference to the header */ /** * \fn IPCMessage::data() const * \brief Returns a const reference to the byte vector containing data */ /** * \fn IPCMessage::fds() const * \brief Returns a const reference to the vector containing file descriptors */ /** * \class IPCPipe * \brief IPC message pipe for IPA isolation * * Virtual class to model an IPC message pipe for use by IPA proxies for IPA * isolation. sendSync() and sendAsync() must be implemented, and the recvMessage * signal must be emitted whenever new data is available. */ /** * \brief Construct an IPCPipe instance */ IPCPipe::IPCPipe() : connected_(false) { } IPCPipe::~IPCPipe() { } /** * \fn IPCPipe::isConnected() * \brief Check if the IPCPipe instance is connected * * An IPCPipe instance is connected if IPC is successfully set up. * * \return True if the IPCPipe is connected, false otherwise */ /** * \fn IPCPipe::sendSync() * \brief Send a message over IPC synchronously * \param[in] in Data to send * \param[in] out IPCMessage instance in which to receive data, if applicable * * This function will not return until a response is received. The event loop * will still continue to execute, however. * * \return Zero on success, negative error code otherwise * * \todo Determine if the event loop should limit the types of messages it * processes, to avoid reintrancy in the caller, and carefully document what * the caller needs to implement to make this safe. */ /** * \fn IPCPipe::sendAsync() * \brief Send a message over IPC asynchronously * \param[in] data Data to send * * This function will return immediately after sending the message. * * \return Zero on success, negative error code otherwise */ /** * \var IPCPipe::recv * \brief Signal to be emitted when a message is received over IPC * * When a message is received over IPC, this signal shall be emitted. Users must * connect to this to receive messages. */ /** * \var IPCPipe::connected_ * \brief Flag to indicate if the IPCPipe instance is connected * * An IPCPipe instance is connected if IPC is successfully set up. * * This flag can be read via IPCPipe::isConnected(). * * Implementations of the IPCPipe class should set this flag upon successful * connection. */ } /* namespace libcamera */