ID3v2 フレーム ヘッダ
フレームは、ID3v2 のタグ情報におけるデータ本体となる。フレームはヘッダと本体で構成されている。
ヘッダー構造
ヘッダの内容は以下のようになる。
フレーム ID はデータの識別子となる A
~ Z
、0
~ @ で構成される文字列である。X
、Y
、Z
ではじまる 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 = データ長指定子がヘッダ ー(フレーム?) 末尾に指定されている。 |