アカベコマイリ

HEAR NOTHING SEE NOTHING SAY NOTHING

ID3v2 フレーム ヘッダ

フレームは、ID3v2 のタグ情報におけるデータ本体となる。フレームはヘッダと本体で構成されている。

ヘッダー構造

ヘッダの内容は以下のようになる。

フレーム ID はデータの識別子となる AZ0 ~ @ で構成される文字列である。XYZ ではじまる ID は ID3v2 ヘッダで実験中フラグが無効でも常に実験用となる。

サイズはヘッダ部分を除く、フレームのバイト数となる。ヘッダは v2.2 なら 6、v2.3 ~ 2.4 なら 10 バイトなので、フレーム全体からこれを差し引いた大きさとなる。フレームが圧縮・暗号・非同期化されている場合は、それらを処理した後のサイズとなる。フラグの内容によってはヘッダの後に付加情報が追加される。

v2.2

Byte内容
0フレーム ID
1*
2*
3サイズ
4*
5*
6未使用
7*
8*
9*

v2.3

Byte内容
0フレーム ID
1*
2*
3*
4サイズ
5*
6*
7*
8状態フラグ
9*
10圧縮前のサイズ
11*
12*
13*
14暗号方法
15グループ

v2.4

Byte内容
0フレーム ID
1*
2*
3*
4サイズ
5*
6*
7*
8状態フラグ
9*
10グループ
11暗号方法
12データ長指定子
13*
14*
15*

フラグ

フラグは v2.3 から追加された仕様で 2 byte の値。1 byte 目が状態フラグ、2 byte 目は v2.3 ならエンコード フラグ、v2.4 はフォーマット フラグとして定義される。

状態フラグ

ビット配置は v2.3 なら %abc00000、v2.4 は %0abc0000 となる。

フラグ内容
aタグ変更による削除。0 = 何もしない、1 = タグが変更されたとき、現在のフレームを削除する。
bファイル変更による削除。0 = 何もしない、1 = ファイル (タグ以外の領域) が変更されたとき現在のフレームを削除する。
c読み取り専用。0 = フレーム編集可能、1 = 読み取り専用。

エンコード フラグ

v2.3 の エンコード フラグ。ビット配置は %ijk00000

フラグ内容
i圧縮。0 = 圧縮なし、1 フレームが圧縮されておりヘッダー末尾に元のサイズ (4 byte) が指定されている。
j暗号化。0 = 暗号化なし、1 フレームが暗号化されておりヘッダー末尾にその方法 (1 byte) が指定されている。
kグループ化。0 = グループ情報なし、1 = グループ化されておりヘッダーの末尾に識別子 (1 byte) が指定されている。

フォーマット フラグ

v2.4 の フォーマット フラグの内容は以下。ビット配置は %0h00kmnp

フラグ内容
hグループ化。0 = グループ情報なし、1 = グループ化されておりヘッダーの末尾に識別子 (1 バイト) が指定されている。
k圧縮。0 = 圧縮なし、1 = フレームが圧縮されておりヘッダー末尾に元のサイズ (4 バイト) が指定されている。
m暗号化。0 = 暗号化なし、1 = フレームが暗号化されておりヘッダー末尾にその方法 (1 バイト) が指定されている。
n非同期化。0 = 非同期化なし、1 = フレームが非同期化されている。
pデータ長指定子。0 = データ長指定子なし、1 = データ長指定子がヘッダ ー(フレーム?) 末尾に指定されている。