40 namespace ArgusSamples
44 : m_initialized(false)
47 , m_prevRunning(false)
50 , m_videoPipeline(NULL)
66 PROPAGATE_ERROR_CONTINUE(dispatcher.
m_deviceOpen.registerObserver(
this,
70 PROPAGATE_ERROR_CONTINUE(dispatcher.
m_outputSize.registerObserver(
this,
75 ORIGINATE_ERROR(
"Out of memory");
86 PROPAGATE_ERROR(
stop());
87 PROPAGATE_ERROR(
start());
94 const bool isOpen =
static_cast<const Value<bool>&
>(source).
get();
101 PROPAGATE_ERROR(
stop());
106 PROPAGATE_ERROR(
start());
114 const bool isTrue =
static_cast<const Value<bool>&
>(source).
get();
121 PROPAGATE_ERROR(
stop());
127 PROPAGATE_ERROR(
start());
136 ORIGINATE_ERROR(
"Not initialized");
146 PROPAGATE_ERROR(dispatcher.createRequest(
m_request, Argus::CAPTURE_INTENT_VIDEO_RECORD));
152 Argus::IStream *iStream = Argus::interface_cast<Argus::IStream>(
m_previewStream.get());
154 ORIGINATE_ERROR(
"Failed to get IStream interface");
156 PROPAGATE_ERROR(composer.
bindStream(iStream->getEGLStream()));
161 const Argus::Size2D<uint32_t> streamSize = iStream->getResolution();
163 (float)streamSize.width() / (float)streamSize.height()));
164 PROPAGATE_ERROR(composer.
setStreamActive(iStream->getEGLStream(),
true));
168 PROPAGATE_ERROR(dispatcher.startRepeat(
m_request.
get()));
178 ORIGINATE_ERROR(
"Not initialized");
200 Argus::IStream *iStream = Argus::interface_cast<Argus::IStream>(
m_previewStream);
202 ORIGINATE_ERROR(
"Failed to get IStream interface");
205 iStream->disconnect();
224 ORIGINATE_ERROR(
"Not initialized");
226 ORIGINATE_ERROR(
"Not running");
228 ORIGINATE_ERROR(
"Recording had already been started, can't start again");
235 ORIGINATE_ERROR(
"Out of memory");
240 Argus::Size2D<uint32_t> outputSize;
244 std::ostringstream fileName;
247 fileName <<
"/video_" << (
long) getpid() <<
"_s" << std::setfill(
'0')
253 Argus::interface_cast<Argus::IStream>(
m_videoStream)->getEGLStream(),
254 outputSize.width(), outputSize.height(),
267 PROPAGATE_ERROR(dispatcher.
message(
"Started recording video at %dx%d, saving to '%s'\n",
268 outputSize.width(), outputSize.height(), fileName.str().c_str()));
278 ORIGINATE_ERROR(
"Not initialized");
281 ORIGINATE_ERROR(
"Recording had not been started, can't stop");
309 m_videoPipeline = NULL;
312 PROPAGATE_ERROR(dispatcher.
message(
"Stopped recording video\n"));
333 PROPAGATE_ERROR_CONTINUE(
stop());
340 PROPAGATE_ERROR_CONTINUE(dispatcher.
m_outputSize.unregisterObserver(
this,
344 PROPAGATE_ERROR_CONTINUE(dispatcher.
m_deviceOpen.unregisterObserver(
this,