40 namespace ArgusSamples
44 : m_initialized(false)
49 , m_videoPipeline(NULL)
65 PROPAGATE_ERROR_CONTINUE(dispatcher.
m_deviceOpen.registerObserver(
this,
69 PROPAGATE_ERROR_CONTINUE(dispatcher.
m_outputSize.registerObserver(
this,
74 ORIGINATE_ERROR(
"Out of memory");
85 PROPAGATE_ERROR(
stop());
86 PROPAGATE_ERROR(
start());
93 const bool isOpen =
static_cast<const Value<bool>&
>(source).
get();
100 PROPAGATE_ERROR(
stop());
105 PROPAGATE_ERROR(
start());
114 ORIGINATE_ERROR(
"Not initialized");
124 PROPAGATE_ERROR(dispatcher.createRequest(
m_request, Argus::CAPTURE_INTENT_VIDEO_RECORD));
130 Argus::IStream *iStream = Argus::interface_cast<Argus::IStream>(
m_previewStream.get());
132 ORIGINATE_ERROR(
"Failed to get IStream interface");
134 PROPAGATE_ERROR(composer.
bindStream(iStream->getEGLStream()));
139 const Argus::Size2D<uint32_t> streamSize = iStream->getResolution();
141 (float)streamSize.width() / (float)streamSize.height()));
142 PROPAGATE_ERROR(composer.
setStreamActive(iStream->getEGLStream(),
true));
146 PROPAGATE_ERROR(dispatcher.startRepeat(
m_request.
get()));
156 ORIGINATE_ERROR(
"Not initialized");
178 Argus::IStream *iStream = Argus::interface_cast<Argus::IStream>(
m_previewStream);
180 ORIGINATE_ERROR(
"Failed to get IStream interface");
183 iStream->disconnect();
202 ORIGINATE_ERROR(
"Not initialized");
204 ORIGINATE_ERROR(
"Not running");
206 ORIGINATE_ERROR(
"Recording had already been started, can't start again");
213 ORIGINATE_ERROR(
"Out of memory");
218 Argus::Size2D<uint32_t> outputSize;
222 std::ostringstream fileName;
225 fileName <<
"/video_" << (
long) getpid() <<
"_s" << std::setfill(
'0')
231 Argus::interface_cast<Argus::IStream>(
m_videoStream)->getEGLStream(),
232 outputSize.width(), outputSize.height(),
245 PROPAGATE_ERROR(dispatcher.
message(
"Started recording video at %dx%d, saving to '%s'\n",
246 outputSize.width(), outputSize.height(), fileName.str().c_str()));
256 ORIGINATE_ERROR(
"Not initialized");
259 ORIGINATE_ERROR(
"Recording had not been started, can't stop");
287 m_videoPipeline = NULL;
290 PROPAGATE_ERROR(dispatcher.
message(
"Stopped recording video\n"));
311 PROPAGATE_ERROR_CONTINUE(
stop());
318 PROPAGATE_ERROR_CONTINUE(dispatcher.
m_outputSize.unregisterObserver(
this,
322 PROPAGATE_ERROR_CONTINUE(dispatcher.
m_deviceOpen.unregisterObserver(
this,