void HybridAnalyzer::x3a_calculation_done (XAnalyzer *analyzer, X3aResultList &results) { XCAM_UNUSED (analyzer); static XCam3aResultHead *res_heads[XCAM_3A_MAX_RESULT_COUNT]; xcam_mem_clear (res_heads); XCAM_ASSERT (results.size () < XCAM_3A_MAX_RESULT_COUNT); uint32_t result_count = translate_3a_results_to_xcam (results, res_heads, XCAM_3A_MAX_RESULT_COUNT); convert_results (res_heads, result_count, results); for (uint32_t i = 0; i < result_count; ++i) { if (res_heads[i]) free_3a_result (res_heads[i]); } notify_calculation_done (results); }
int vde_poll(struct pollfd *ufds, nfds_t nfds, int timeout) { fd_set rfds, wfds, efds; struct timeval stimeout; struct timeval *pstimeout = &stimeout; int maxfdp1; int pretval, sretval, tretval; FD_ZERO(&rfds); FD_ZERO(&wfds); FD_ZERO(&efds); tretval = prepare_select(ufds, nfds, timeout, &pstimeout, &maxfdp1, &rfds, &wfds, &efds); if (!tretval) return -1; sretval = select(maxfdp1, &rfds, &wfds, &efds, pstimeout); if (sretval <= 0) return sretval; pretval = convert_results(ufds, nfds, &rfds, &wfds, &efds); return pretval; }