$stsdEntriesDataOffset += 6;
$atom_structure['sample_description_table'
][$i]['reference_index'
] = getid3_lib::
BigEndian2Int(substr($atom_data,
$stsdEntriesDataOffset, 2
));
$stsdEntriesDataOffset += 2;
$atom_structure['sample_description_table'
][$i]['data'
] =
substr($atom_data,
$stsdEntriesDataOffset,
($atom_structure['sample_description_table'
][$i]['size'
] - 4 - 4 - 6 - 2
));
$stsdEntriesDataOffset += ($atom_structure['sample_description_table'
][$i]['size'
] - 4 - 4 - 6 - 2
);
if (substr($atom_structure['sample_description_table'
][$i]['data'
], 1, 54
) == 'application/octet-stream;type=com.parrot.videometadata'
) { // special handling for apparently-malformed (TextMetaDataSampleEntry?) data for some version of Parrot drones
$atom_structure['sample_description_table'
][$i]['parrot_frame_metadata'
]['mime_type'
] =
substr($atom_structure['sample_description_table'
][$i]['data'
], 1, 55
);
$atom_structure['sample_description_table'
][$i]['parrot_frame_metadata'
]['metadata_version'
] =
(int) substr($atom_structure['sample_description_table'
][$i]['data'
], 55, 1
);
unset($atom_structure['sample_description_table'
][$i]['data'
]);
$this->
warning('incomplete/incorrect handling of "stsd" with Parrot metadata in this version of getID3() ['.
$this->getid3->
version().']'
);
continue;
} $atom_structure['sample_description_table'
][$i]['encoder_version'
] = getid3_lib::
BigEndian2Int(substr($atom_structure['sample_description_table'
][$i]['data'
], 0, 2
));
$atom_structure['sample_description_table'
][$i]['encoder_revision'
] = getid3_lib::
BigEndian2Int(substr($atom_structure['sample_description_table'
][$i]['data'
], 2, 2
));
$atom_structure['sample_description_table'
][$i]['encoder_vendor'
] =
substr($atom_structure['sample_description_table'
][$i]['data'
], 4, 4
);
switch ($atom_structure['sample_description_table'
][$i]['encoder_vendor'
]) { case "\x00\x00\x00\x00":
// audio tracks