CC-5009:
Use Silan to silently update track length in the background -done
This commit is contained in:
parent
9a78c3f8e5
commit
479e69de12
|
@ -979,8 +979,24 @@ class ApiController extends Zend_Controller_Action
|
||||||
list($id, $info) = $pair;
|
list($id, $info) = $pair;
|
||||||
// TODO : move this code into model -- RG
|
// TODO : move this code into model -- RG
|
||||||
$file = Application_Model_StoredFile::Recall($p_id = $id)->getPropelOrm();
|
$file = Application_Model_StoredFile::Recall($p_id = $id)->getPropelOrm();
|
||||||
|
|
||||||
|
//What we are doing here is setting a more accurate length that was
|
||||||
|
//calculated with silan by actually scanning the entire file. This
|
||||||
|
//process takes a really long time, and so we only do it in the background
|
||||||
|
//after the file has already been imported -MK
|
||||||
|
$length = $file->getDbLength();
|
||||||
|
if (isset($info['length'])) {
|
||||||
|
$length = $info['length'];
|
||||||
|
//length decimal number in seconds. Need to convert it to format
|
||||||
|
//HH:mm:ss to get around silly PHP limitations.
|
||||||
|
$length = Application_Common_DateHelper::secondsToPlaylistTime($length);
|
||||||
|
|
||||||
|
$file->setDbLength($length);
|
||||||
|
}
|
||||||
|
|
||||||
$cuein = isset($info['cuein']) ? $info['cuein'] : 0;
|
$cuein = isset($info['cuein']) ? $info['cuein'] : 0;
|
||||||
$cueout = isset($info['cueout']) ? $info['cueout'] : $file->getDbLength();
|
$cueout = isset($info['cueout']) ? $info['cueout'] : $length;
|
||||||
|
|
||||||
$file->setDbCuein($cuein);
|
$file->setDbCuein($cuein);
|
||||||
$file->setDbCueout($cueout);
|
$file->setDbCueout($cueout);
|
||||||
$file->setDbSilanCheck(true);
|
$file->setDbSilanCheck(true);
|
||||||
|
|
|
@ -20,6 +20,8 @@ class CcFiles extends BaseCcFiles {
|
||||||
|
|
||||||
public function setDbLength($v)
|
public function setDbLength($v)
|
||||||
{
|
{
|
||||||
|
//we are using DateTime instead of DateInterval because the latter doesn't
|
||||||
|
//support subseconds :(
|
||||||
if ($v instanceof DateTime) {
|
if ($v instanceof DateTime) {
|
||||||
$dt = $v;
|
$dt = $v;
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,9 +49,12 @@ class SilanAnalyzer(Thread):
|
||||||
if len(comm):
|
if len(comm):
|
||||||
out = comm[0].strip('\r\n')
|
out = comm[0].strip('\r\n')
|
||||||
info = json.loads(out)
|
info = json.loads(out)
|
||||||
if len(info['sound']) >= 2:
|
try: data['length'] = str('{0:f}'.format(info['file duration']))
|
||||||
data['cuein'] = str('{0:f}'.format(info['sound'][0][0]))
|
except: pass
|
||||||
data['cueout'] = str('{0:f}'.format(info['sound'][-1][1]))
|
try: data['cuein'] = str('{0:f}'.format(info['sound'][0][0]))
|
||||||
|
except: pass
|
||||||
|
try: data['cueout'] = str('{0:f}'.format(info['sound'][-1][1]))
|
||||||
|
except: pass
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
self.logger.error(str(command))
|
self.logger.error(str(command))
|
||||||
self.logger.error(e)
|
self.logger.error(e)
|
||||||
|
|
|
@ -55,6 +55,7 @@ try:
|
||||||
data = {}
|
data = {}
|
||||||
data['cuein'] = str('{0:f}'.format(info['sound'][0][0]))
|
data['cuein'] = str('{0:f}'.format(info['sound'][0][0]))
|
||||||
data['cueout'] = str('{0:f}'.format(info['sound'][-1][1]))
|
data['cueout'] = str('{0:f}'.format(info['sound'][-1][1]))
|
||||||
|
data['length'] = str('{0:f}'.format(info['file duration']))
|
||||||
processed_data.append((f['id'], data))
|
processed_data.append((f['id'], data))
|
||||||
total += 1
|
total += 1
|
||||||
if total % 5 == 0:
|
if total % 5 == 0:
|
||||||
|
|
Loading…
Reference in New Issue