XCamReturn X3aAnalyzer::analyze_3a_statistics (SmartPtr<X3aStats> &stats) { XCamReturn ret = XCAM_RETURN_NO_ERROR; X3aResultList results; ret = pre_3a_analyze (stats); if (ret != XCAM_RETURN_NO_ERROR) { notify_calculation_failed( NULL, stats->get_timestamp (), "ae calculation failed"); return ret; } ret = _ae_handler->analyze (results); if (ret != XCAM_RETURN_NO_ERROR) { notify_calculation_failed( _ae_handler.ptr(), stats->get_timestamp (), "ae calculation failed"); return ret; } ret = _awb_handler->analyze (results); if (ret != XCAM_RETURN_NO_ERROR) { notify_calculation_failed( _awb_handler.ptr(), stats->get_timestamp (), "awb calculation failed"); return ret; } ret = _af_handler->analyze (results); if (ret != XCAM_RETURN_NO_ERROR) { notify_calculation_failed( _af_handler.ptr(), stats->get_timestamp (), "af calculation failed"); return ret; } ret = _common_handler->analyze (results); if (ret != XCAM_RETURN_NO_ERROR) { notify_calculation_failed( _common_handler.ptr(), stats->get_timestamp (), "3a other calculation failed"); return ret; } ret = post_3a_analyze (results); if (ret != XCAM_RETURN_NO_ERROR) { notify_calculation_failed( NULL, stats->get_timestamp (), "3a collect results failed"); return ret; } if (!results.empty ()) notify_calculation_done (results); return ret; }
void HybridAnalyzer::x3a_calculation_failed (XAnalyzer *analyzer, int64_t timestamp, const char *msg) { XCAM_UNUSED (analyzer); notify_calculation_failed (NULL, timestamp, msg); }