35 #include "UniquePointer.h"
38 namespace ArgusSamples
42 : m_initialized(false)
66 ORIGINATE_ERROR(
"Out of memory");
74 PROPAGATE_ERROR(dispatcher.
createSession(m_session, deviceIndex));
75 PROPAGATE_ERROR(m_perfTracker->setSession(m_session.get()));
78 PROPAGATE_ERROR(dispatcher.
createRequest(m_request, Argus::CAPTURE_INTENT_STILL_CAPTURE,
86 Argus::IStream *iStream = Argus::interface_cast<Argus::IStream>(m_outputStream.get());
88 ORIGINATE_ERROR(
"Failed to get IStream interface");
91 PROPAGATE_ERROR(composer.bindStream(iStream->getEGLStream()));
93 const Argus::Size2D<uint32_t> streamSize = iStream->getResolution();
94 PROPAGATE_ERROR(composer.setStreamAspectRatio(iStream->getEGLStream(),
95 (float)streamSize.width() / (float)streamSize.height()));
109 Argus::interface_cast<Argus::IStream>(m_outputStream)->getEGLStream(),
true));
125 PROPAGATE_ERROR(dispatcher.stopRepeat(m_session.get()));
127 Argus::interface_cast<Argus::IStream>(m_outputStream)->getEGLStream(),
false));
128 PROPAGATE_ERROR(dispatcher.waitForIdle(m_session.get()));
145 m_outputStream.get()));
147 Argus::IStream *iStream = Argus::interface_cast<Argus::IStream>(m_outputStream);
149 REPORT_ERROR(
"Failed to get IStream interface");
152 iStream->disconnect();
155 PROPAGATE_ERROR_CONTINUE(composer.
unbindStream(iStream->getEGLStream()));
157 m_outputStream.reset();
161 PROPAGATE_ERROR_CONTINUE(m_request.reset());
193 PROPAGATE_ERROR(
stop());
213 PROPAGATE_ERROR_CONTINUE(session->
shutdown());
233 if (deviceCount == 0)
234 ORIGINATE_ERROR(
"No camera devices found");
237 for (uint32_t deviceIndex = 0; deviceIndex < deviceCount; ++deviceIndex)
239 UniquePointer<Session> session(
new Session);
242 ORIGINATE_ERROR(
"Out of memory");
244 PROPAGATE_ERROR(session->initialize(deviceIndex));
254 PROPAGATE_ERROR(session->
start());
270 PROPAGATE_ERROR(session->
stop());
284 PROPAGATE_ERROR(
stop());
285 PROPAGATE_ERROR(
start());