WordPress Version: 6.3
/**
* Parses ID3v2, ID3v1, and getID3 comments to extract usable data.
*
* @since 3.6.0
*
* @param array $metadata An existing array with data.
* @param array $data Data supplied by ID3 tags.
*/
function wp_add_id3_tag_data(&$metadata, $data)
{
foreach (array('id3v2', 'id3v1') as $version) {
if (!empty($data[$version]['comments'])) {
foreach ($data[$version]['comments'] as $key => $list) {
if ('length' !== $key && !empty($list)) {
$metadata[$key] = wp_kses_post(reset($list));
// Fix bug in byte stream analysis.
if ('terms_of_use' === $key && str_starts_with($metadata[$key], 'yright notice.')) {
$metadata[$key] = 'Cop' . $metadata[$key];
}
}
}
break;
}
}
if (!empty($data['id3v2']['APIC'])) {
$image = reset($data['id3v2']['APIC']);
if (!empty($image['data'])) {
$metadata['image'] = array('data' => $image['data'], 'mime' => $image['image_mime'], 'width' => $image['image_width'], 'height' => $image['image_height']);
}
} elseif (!empty($data['comments']['picture'])) {
$image = reset($data['comments']['picture']);
if (!empty($image['data'])) {
$metadata['image'] = array('data' => $image['data'], 'mime' => $image['image_mime']);
}
}
}