38 namespace ArgusSamples
42 : m_initialized(false)
47 , m_videoPipeline(NULL)
72 const bool isOpen =
static_cast<const Value<bool>&
>(source).
get();
79 PROPAGATE_ERROR(
stop());
84 PROPAGATE_ERROR(
start());
93 ORIGINATE_ERROR(
"Not initialized");
108 Argus::IStream *iStream = Argus::interface_cast<Argus::IStream>(
m_previewStream.get());
110 ORIGINATE_ERROR(
"Failed to get IStream interface");
112 PROPAGATE_ERROR(renderer.
bindStream(iStream->getEGLStream()));
117 const Argus::Size streamSize = iStream->getResolution();
119 (float)streamSize.width / (
float)streamSize.height));
120 PROPAGATE_ERROR(renderer.
setStreamActive(iStream->getEGLStream(),
true));
123 std::vector<Argus::EventType> eventTypes;
124 eventTypes.push_back(Argus::EVENT_TYPE_CAPTURE_COMPLETE);
126 Argus::UniqueObj<Argus::EventQueue> eventQueue;
133 ORIGINATE_ERROR(
"Failed to allocate EventThread");
151 ORIGINATE_ERROR(
"Not initialized");
170 Argus::interface_cast<Argus::IStream>(
m_previewStream)->getEGLStream(),
false));
180 const EGLStreamKHR eglStream =
181 Argus::interface_cast<Argus::IStream>(
m_previewStream)->getEGLStream();
186 PROPAGATE_ERROR_CONTINUE(renderer.
unbindStream(eglStream));
200 ORIGINATE_ERROR(
"Not initialized");
202 ORIGINATE_ERROR(
"Not running");
204 ORIGINATE_ERROR(
"Recording had already been started, can't start again");
211 ORIGINATE_ERROR(
"Out of memory");
216 Argus::Size outputSize;
220 std::ostringstream fileName;
223 fileName <<
"/video" << std::setfill(
'0') << std::setw(4) <<
m_captureIndex;
227 Argus::interface_cast<Argus::IStream>(
m_videoStream)->getEGLStream(),
228 outputSize.width, outputSize.height,
241 PROPAGATE_ERROR(dispatcher.
message(
"Started recording video at %dx%d, saving to '%s'\n",
242 outputSize.width, outputSize.height, fileName.str().c_str()));
252 ORIGINATE_ERROR(
"Not initialized");
255 ORIGINATE_ERROR(
"Recording had not been started, can't stop");
283 m_videoPipeline = NULL;
286 PROPAGATE_ERROR(dispatcher.
message(
"Stopped recording video\n"));
307 PROPAGATE_ERROR(
stop());