DID tag представляет собой несколько усовершенствованный формат тага по сравнению с ID3 v 1.0. Основное усовершенствование - переменная длина тага. Каждая строка может иметь до 255 символов, строки пишутся как в паскале - сначала байт длины, потом сама строка. Кроме того, добавлены новые поля - кто оцифровал данную песню и с помощью какой программы. Жанр музыки в этой версии тага представляется строкой, как и все остальные поля, что снимает ограничение, накладываемое форматом ID3 тага.
Содержимое DID тага:
Offset | Type | Name | Comment |
0 6 ? ? ? ? ? ? ? end-8 end-6 |
char[6] string string string char[4] string string string string word char[6] |
Signature-Begin Title Artist Album Year Software Sampled-By Comment Genre Length Signature-End |
'DIDTAG', если нет, то это не DID-таг Название песни Исполнитель Название альбома Год издания Программа для оцифровки Кем было оцифровано Комментарий Жанр музыки Длина всего тага 'ENDTAG', если нет, то это не DID-таг |
DID таг пишется в конец файла, после MP3-потока. Если присутствует и ID3 таг, и DID таг, то сначала пишется DID, а потом ID3. Таким образом, чтение файла осуществляется так: сначала смотрим файл по смещению eof-128, если там стоит 'TAG', то нашли ID3 таг, смещаемся на eof-134, если там стоит 'ENDTAG', то смещаемся на eof-136 и читаем оттуда длину DID тага. Как видно из приведённой выше таблицы, длина не может превышать 1810 байт. В случае, если по eof-128 не нашли 'TAG', то надо посмотреть, не стоит ли по смещению end-6 'ENDTAG' (то есть есть DID таг, но нет ID3).
В качестве недостатка формата можно упомянуть, как и у ID3, отсутствие поддержки различных кодировок русского языка.