34 #include <Argus/Ext/InternalFrameCount.h>
36 namespace ArgusSamples {
41 , m_sessionPerfTracker(sessionPerfTracker)
51 std::vector<Argus::EventType> eventTypes;
52 eventTypes.push_back(Argus::EVENT_TYPE_CAPTURE_COMPLETE);
53 eventTypes.push_back(Argus::EVENT_TYPE_ERROR);
70 Argus::IEventQueue *iEventQueue =
71 Argus::interface_cast<Argus::IEventQueue>(
m_eventQueue.get());
73 ORIGINATE_ERROR(
"Failed to get iEventQueue");
75 for (uint32_t i = 0; i < iEventQueue->getSize(); i++)
77 const Argus::Event *
event = iEventQueue->getEvent(i);
78 const Argus::IEvent *iEvent = Argus::interface_cast<
const Argus::IEvent>(event);
80 ORIGINATE_ERROR(
"Failed to get IEvent interface");
82 if (iEvent->getEventType() == Argus::EVENT_TYPE_CAPTURE_COMPLETE)
86 const Argus::IEventCaptureComplete *iEventCaptureComplete
87 = Argus::interface_cast<
const Argus::IEventCaptureComplete>(event);
88 const Argus::CaptureMetadata *metaData = iEventCaptureComplete->getMetadata();
91 const Argus::ICaptureMetadata *iCaptureMeta =
92 Argus::interface_cast<
const Argus::ICaptureMetadata>(metaData);
102 std::vector< Argus::AcRegion > regions;
103 std::vector<float> sharpnessScore;
104 if (iCaptureMeta->getAfRegions(®ions) != Argus::STATUS_OK)
105 ORIGINATE_ERROR(
"Failed to get AF regions");
107 if (iCaptureMeta->getSharpnessScore(&sharpnessScore) != Argus::STATUS_OK)
108 ORIGINATE_ERROR(
"Failed to get sharpness score");
110 PROPAGATE_ERROR(dispatcher.
message(
"Focus control info: focuser position %d ",
111 iCaptureMeta->getFocuserPosition()));
112 for (uint32_t j = 0; j < regions.size(); j++)
114 PROPAGATE_ERROR(dispatcher.
message(
" region %d %d %d %d, score %f ",
115 regions[j].left(), regions[j].top(), regions[j].right(),
116 regions[j].bottom(), sharpnessScore[j]));
118 PROPAGATE_ERROR(dispatcher.
message(
"\n"));
121 Argus::Rectangle<uint32_t> region;
122 region = iCaptureMeta->getBayerHistogramRegion();
123 PROPAGATE_ERROR(dispatcher.
message(
"BayerHistogram region %d %d %d %d, \n",
124 region.left(), region.top(), region.right(), region.bottom()));
127 Argus::AeFlickerState state = iCaptureMeta->getFlickerState();
128 PROPAGATE_ERROR(dispatcher.
message(
"Flicker state %s \n", state.getName()));
130 PROPAGATE_ERROR(dispatcher.
message(
"aperture info: aperture position %d \n",
131 iCaptureMeta->getAperturePosition()));
134 const Argus::Ext::IInternalFrameCount *iInternalFrameCount =
135 Argus::interface_cast<
const Argus::Ext::IInternalFrameCount>(metaData);
136 if (iInternalFrameCount)
138 const uint64_t currentFrameCount = iInternalFrameCount->getInternalFrameCount();
144 else if (iEvent->getEventType() == Argus::EVENT_TYPE_ERROR)
146 ORIGINATE_ERROR(
"Error event received, the app should shutdown \n");