ID3v2 フレーム ヘッダ
March 14, 2011
フレームは、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 = データ長指定子がヘッダ ー(フレーム?) 末尾に指定されている。 |