protected function updateConversionInDb(entry $entry, kConversionResult $conv_res) { try { $c = new Criteria(); $entry_id = $entry->getId(); $c->add(conversionPeer::ENTRY_ID, $entry_id); // theoretically there can be more than one entry - fetch the last one which is in a non-complet status // assuming only one can be in such a status per entry $c->add(conversionPeer::STATUS, conversion::CONVERSION_STATUS_COMPLETED, Criteria::NOT_EQUAL); $c->addDescendingOrderByColumn(conversionPeer::ID); $conversion = conversionPeer::doSelectOne($c); if ($conversion) { $end = time(); //$tParsedTime = strtotime($sGMTMySqlString . " GMT"); $start = $conversion->getCreatedAt(null); //$start = (int)strtotime($raw_start . " GMT"); $conversion->setTotalProcessTime($end - $start); $info = $conv_res->getResultInfo(); if ($info) { $params = ""; $time = 0; foreach ($info as $info_for_conversion) { $params .= "[" . $info_for_conversion->engine . "] : " . $info_for_conversion->conv_params_name . " | " . $info_for_conversion->conv_str . " | "; if (is_numeric($info_for_conversion->duration)) { $time += $info_for_conversion->duration; } // increment the duration } list($name1, $size1) = $this->getNameAndSizeFromInfo($info, 0); @(list($name2, $size2) = $this->getNameAndSizeFromInfo($info, 1)); $conversion->setOutFileName($name1); $conversion->setOutFileSize($size1); $conversion->setOutFileName2($name2); $conversion->setOutFileSize2($size2); $conversion->setConversionParams($params); $conversion->setConversionTime($time); } if ($conv_res->status_ok == true) { $conversion->setStatus(conversion::CONVERSION_STATUS_COMPLETED); } else { $conversion->setStatus(conversion::CONVERSION_STATUS_ERROR); } $conversion->save(); } else { KalturaLog::debug("Cannot find conversion details for entry {$entry_id}"); } } catch (Exception $ex) { KalturaLog::debug("Error reporting conversion details to DB (part II) " . $ex->getTraceAsString()); } }