26 lines
982 B
PHP
26 lines
982 B
PHP
|
<?php
|
||
|
|
||
|
namespace App\Media\QuickTime\Atoms\moov\meta;
|
||
|
|
||
|
// The metadata item keys atom holds a list of the metadata keys that may be present in the metadata atom.
|
||
|
// This list is indexed starting with 1; 0 is a reserved index value. The metadata item keys atom is a full atom with an atom type of "keys".
|
||
|
|
||
|
use App\Media\QuickTime\Atoms\SubAtom;
|
||
|
|
||
|
class keys extends SubAtom
|
||
|
{
|
||
|
public function __construct(int $offset,int $size,string $filename,?string $data)
|
||
|
{
|
||
|
parent::__construct($offset,$size,$filename);
|
||
|
|
||
|
$this->keys = collect();
|
||
|
$read = unpack($this->unpack(self::atom_record),substr($data,0,$ptr=$this->unpack_size(self::atom_record)));
|
||
|
|
||
|
for ($i=0; $i<$read['count']; $i++) {
|
||
|
$key_size = unpack('Nsize',substr($data,$ptr,4));
|
||
|
$keys = unpack(sprintf('a4namespace/a%dname',$key_size['size']-8),substr($data,$ptr+4,4+$key_size['size']-8));
|
||
|
$ptr += $key_size['size'];
|
||
|
$this->cache = $this->cache->push(sprintf('%s.%s',$keys['namespace'],$keys['name']));
|
||
|
}
|
||
|
}
|
||
|
}
|