summaryrefslogtreecommitdiff
path: root/utils
AgeCommit message (Expand)Author
2021-09-27libcamera: control_serializer: Separate the handles spaceJacopo Mondi
2021-09-27ipa: proxy_worker: Reset ControlSerializer on workerJacopo Mondi
2021-09-10utils: ipc: proxy worker: Fix indentation in call deserializationPaul Elder
2021-09-02libcamera: Drop emitter object pointer from signal argumentsLaurent Pinchart
2021-09-02libcamera: Don't use emitter object pointer argument to slotLaurent Pinchart
2021-08-27utils: checkstyle.py: Use single-quoted strings when possibleLaurent Pinchart
2021-08-19ipa: Use FileDescriptor instead of int in layers above IPC payloadPaul Elder
2021-08-18utils: ipc: ipa_proxy_worker: Log IPCUnixSocket::send() failuresLaurent Pinchart
2021-08-05utils: ipc: Initialise ThreadProxyKieran Bingham
2021-08-03utils: raspberrypi: ctt: Fix namespace for sklearn NearestCentroid functionDavid Plowman
2021-08-02utils: raspberrypi: ctt: Fix usage of findHomography functionDavid Plowman
2021-07-27utils: ipc: Assign a new gid to proxy workerUmang Jain
2021-07-09utils: ipc: proxy: Reset ControlSerializer during IPA configureUmang Jain
2021-06-25libcamera/base: Move extended base functionalityKieran Bingham
2021-06-01utils: ipc: mojo: Error if ControlInfoMap/List doesn't prefix libcameraPaul Elder
2021-05-31utils: ipc: extract-docs: Extract the SPDX headerPaul Elder
2021-05-27utils: ipc: Add script to extract doxygen docs from mojom filesPaul Elder
2021-05-26utils: ipc: Update mojoPaul Elder
2021-05-26utils: update-mojo.sh: Add script for updating mojoPaul Elder
2021-05-24ipa: Move core IPA interface documentation to a .cpp fileUmang Jain
2021-04-27utils: ipc: Use the proper namespace for mojom structsPaul Elder
2021-03-29utils: ipc: proxy: Track IPA with a state machineKieran Bingham
2021-03-24utils: ipc: proxy: Process pending messagesLaurent Pinchart
2021-03-24utils: ipc: proxy: Assert asynchronous calls execute in the running stateLaurent Pinchart
2021-03-12utils: raspberrypi: Add a DelayedControls log parserNaushir Patuck
2021-03-09utils: ipc: Make first output parameter direct return if int32Paul Elder
2021-03-09utils: ipc: Support custom parameters to init()Paul Elder
2021-03-08utils: Add kernel headers update scriptLaurent Pinchart
2021-03-04utils: ipc: templates: Drop unused variableLaurent Pinchart
2021-02-16utils: checkstyle.py: Handle renamed files in header add checkerLaurent Pinchart
2021-02-16utils: checkstyle.py: Restore checks of renamed filesLaurent Pinchart
2021-02-16meson: ipa, proxy: Generate headers and proxy with mojoPaul Elder
2021-02-16utils: ipc: add parser scriptPaul Elder
2021-02-16utils: ipc: add generator scriptPaul Elder
2021-02-16utils: ipc: add templates for code generation for IPC mechanismPaul Elder
2021-02-01utils: gen-formats: Support big-endian DRM formatsLaurent Pinchart
2021-01-21utils: checkstyle.py: Fix "protected" members in Commit classLaurent Pinchart
2020-12-29utils: checkstyle.py: Drop astyle supportLaurent Pinchart
2020-12-29utils: checkstyle.py: Add header add checkerLaurent Pinchart
2020-12-29utils: checkstyle.py: Add commit checkersLaurent Pinchart
2020-12-29utils: checkstyle.py: Move diff parsing to Commit classLaurent Pinchart
2020-12-29utils: checkstyle.py: Add ability to filter files by status in a commitLaurent Pinchart
2020-12-29utils: checkstyle.py: Make title and files properties of commit classLaurent Pinchart
2020-12-29utils: checkstyle.py: Move commit handling to a separate sectionLaurent Pinchart
2020-12-29utils: checkstyle.py: Factor out automatic class registryLaurent Pinchart
2020-12-29utils: checkstyle.py: Drop arguments to super() when possibleLaurent Pinchart
2020-12-27utils: gen-controls: Fix enumerators documentationLaurent Pinchart
2020-11-20src: ipa: raspberrypi: Change 'sport' exposure mode name to 'short'David Plowman
2020-11-11README, meson: Add dependency on ply and jinja2 for IPA interface generationPaul Elder
2020-11-11utils: ipc: import mojoPaul Elder
class="hl opt">; i++) { Request *request = camera_->createRequest(); if (!request) { std::cerr << "Can't create request" << std::endl; return -ENOMEM; } std::map<Stream *, Buffer *> map; for (StreamConfiguration &cfg : *config_) { Stream *stream = cfg.stream(); std::unique_ptr<Buffer> buffer = stream->createBuffer(i); ret = request->addBuffer(std::move(buffer)); if (ret < 0) { std::cerr << "Can't set buffer for request" << std::endl; return ret; } } requests.push_back(request); } ret = camera_->start(); if (ret) { std::cout << "Failed to start capture" << std::endl; return ret; } for (Request *request : requests) { ret = camera_->queueRequest(request); if (ret < 0) { std::cerr << "Can't queue request" << std::endl; camera_->stop(); return ret; } } std::cout << "Capture until user interrupts by SIGINT" << std::endl; ret = loop->exec(); if (ret) std::cout << "Failed to run capture loop" << std::endl; ret = camera_->stop(); if (ret) std::cout << "Failed to stop capture" << std::endl; return ret; } void Capture::requestComplete(Request *request, const std::map<Stream *, Buffer *> &buffers) { if (request->status() == Request::RequestCancelled) return; std::chrono::steady_clock::time_point now = std::chrono::steady_clock::now(); double fps = std::chrono::duration_cast<std::chrono::milliseconds>(now - last_).count(); fps = last_ != std::chrono::steady_clock::time_point() && fps ? 1000.0 / fps : 0.0; last_ = now; std::stringstream info; info << "fps: " << std::fixed << std::setprecision(2) << fps; for (auto it = buffers.begin(); it != buffers.end(); ++it) { Stream *stream = it->first; Buffer *buffer = it->second; const std::string &name = streamName_[stream]; info << " " << name << " (" << buffer->index() << ")" << " seq: " << std::setw(6) << std::setfill('0') << buffer->sequence() << " bytesused: " << buffer->bytesused(); if (writer_) writer_->write(buffer, name); } std::cout << info.str() << std::endl; /* * Create a new request and populate it with one buffer for each * stream. */ request = camera_->createRequest(); if (!request) { std::cerr << "Can't create request" << std::endl; return; } for (auto it = buffers.begin(); it != buffers.end(); ++it) { Stream *stream = it->first; Buffer *buffer = it->second; unsigned int index = buffer->index(); std::unique_ptr<Buffer> newBuffer = stream->createBuffer(index); if (!newBuffer) { std::cerr << "Can't create buffer " << index << std::endl; return; } request->addBuffer(std::move(newBuffer)); } camera_->queueRequest(request); }