<Website>

getID3

PHK Home

File: /lib/module.audio-video.bink.php

Size:1373
Storage flags:strip

<?php
















class getid3_bink extends getid3_handler
{

public function 
Analyze() {
$info = &$this->getid3->info;

$info['error'][] = 'Bink / Smacker files not properly processed by this version of getID3() ['.$this->getid3->version().']';

$this->fseek($info['avdataoffset']);
$fileTypeID $this->fread(3);
switch (
$fileTypeID) {
case 
'BIK':
return 
$this->ParseBink();
break;

case 
'SMK':
return 
$this->ParseSmacker();
break;

default:
$info['error'][] = 'Expecting "BIK" or "SMK" at offset '.$info['avdataoffset'].', found "'.getid3_lib::PrintHexBytes($fileTypeID).'"';
return 
false;
break;
}

return 
true;

}

public function 
ParseBink() {
$info = &$this->getid3->info;
$info['fileformat'] = 'bink';
$info['video']['dataformat'] = 'bink';

$fileData 'BIK'.$this->fread(13);

$info['bink']['data_size'] = getid3_lib::LittleEndian2Int(substr($fileData44));
$info['bink']['frame_count'] = getid3_lib::LittleEndian2Int(substr($fileData82));

if ((
$info['avdataend'] - $info['avdataoffset']) != ($info['bink']['data_size'] + 8)) {
$info['error'][] = 'Probably truncated file: expecting '.$info['bink']['data_size'].' bytes, found '.($info['avdataend'] - $info['avdataoffset']);
}

return 
true;
}

public function 
ParseSmacker() {
$info = &$this->getid3->info;
$info['fileformat'] = 'smacker';
$info['video']['dataformat'] = 'smacker';

return 
true;
}

}

For more information about the PHK package format: http://phk.tekwire.net