2006年08月16日

READ TOC Format=0000b

一般的な TOC 情報を入手するには、READ TOC/PMA/ATIP コマンドの FORMAT に 0000B をセットします。

得られるデータは、4バイトのヘッダと、 1トラックが8バイトで表される連続したデータからなります。

BYTE内容
0 〜 3ヘッダ
4 〜 11トラック 1
12 〜 19トラック 2
4+8×(n-1) 〜 4+8×n-1トラック n
4+8×n 〜 4+8×(n+1)-1トラック 0xAA
(リードアウト)


ヘッダは、次のとおりです。

BYTE\bit 7 6 5 4 3 2 1 0
0
(MSB)
TOCデータ長
(LSB)
1
2開始トラック番号
3終了トラック番号

ヘッダにTOCデータ長や開始トラック番号と終了トラック番号が書かれているので、 実際にデータを入手するときには、メモリを予め大きめ (100+1トラック分=812バイト) に 確保するか、ヘッダ部のみを入手し、必要な量を計算して確保してください。 なお、「TOCデータ長」にはそれ自体のバイト数 (2バイト) が含まれていないことに 注意してください。

各トラックの内容は、次のとおりです。

BYTE\bit 7 6 5 4 3 2 1 0
0予約
1ADRCTRL
2トラック番号
3予約
4
 
トラックの
開始時間
 
5
6
7

「トラック番号」が 0xAA のとき、リードアウトトラックを表します。 これがないと、最後のトラックの終了時間がわかりません。

「トラックの開始時間」は、コマンド送信時の「TIME」の 設定で、LBA か MSF になります。

LBA の場合、(MSBとLSBに注意)
BYTE\bit 7 6 5 4 3 2 1 0
4
(MSB)
トラックの
開始時間
(LSB)
5
6
7

MSF の場合
BYTE\bit 7 6 5 4 3 2 1 0
4 ZERO
5
6
7 フレーム (=1/75秒)


DVD、HD-DVD、Blu-ray では、このコマンドを実行しないで下さい。 ディスクの内容に関係なく一定の値が帰ってきます。 (MSFでは、255分59秒74フレームが最大ですが、 これを超える長さのDVDもあります。)


余談
「せんべえ焼き、もしくはコースターメーカー」では、 FORMAT=0010B (Full Toc) が失敗したときにこちらを実行します。 これは、Windows95 で試してみたときの名残です。 あと、過去のバージョンでは、 DVDにRead TOC/PMA/ATIPを使って間違っているものがあります。
posted by 七癖 at 07:11| Comment(0) | TrackBack(0) | Multimedia Commands | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。