private function getEBMLelement(&$element, $parent_end, $get_data=false) {
if ($this->current_offset >= $parent_end) {
return false;
}
if (!$this->getid3_matroska::EnsureBufferHasEnoughData()) {
$this->current_offset = PHP_INT_MAX; return false;
}
$element = array();
$element['offset'] = $this->current_offset;
$element['id'] = $this->getid3_matroska::readEBMLint();
$element['id_name'] = self::EBMLidName($element['id']);
$element['length'] = $this->getid3_matroska::readEBMLint();
$element['end'] = $this->current_offset + $element['length'];
$dont_parse = (in_array($element['id'], $this->unuseful_elements) || $element['id_name'] == dechex($element['id']));
if (($get_data === true || (is_array($get_data) && !in_array($element['id'], $get_data))) && !$dont_parse) {
$element['data'] = $this->getid3_matroska::readEBMLelementData($element['length'], $element);
}
return true;
}