総ディスク容量を取得するには、セクター数に各セクターのユーザー データ フィールドの長さを掛ける必要があります (CD-ROM/XA (eXtended Architecture) モード 2 では、2048 バイトではなく 2336 バイトになります)。
CD-ROM のセクターには 2048 バイトのユーザー データが含まれ、残りの 304 バイトは他の目的に使用されます。すべてのデータ セクターは、16 バイトのヘッダーで始まります。
- 12 バイトの同期フィールド (00 ff ff ff ff ff ff ff ff ff 00)
- 3 バイト アドレス (分、秒、1/75 秒)
- 1バイトモード
モード バイトは、セクター内の残りの 2336 バイトがどのように見えるかを決定します。
- モード 0: null データ。CD録音には実用的ではない
- モード 1: 典型的な CD-ROM レイアウト 2048 バイトのユーザー データ 4 バイトの EDC (エラー検出コード、32 ビット CRC) 8 バイトの予約済みスペース、ゼロに設定 172 バイトの「P」パリティ 104 バイトの「Q」 " パリティ
- モード 2: 2336 バイトのユーザー データ。通常は CD-ROM/XA に使用されます。
1 つのトラックのセクターに提供されたデータのタイプを取得するには、IRawCDImageTrackInfoインターフェイス からメソッドget_SectorTypeを使用できます。
可能なセクター タイプは、IMAPI_CD_SECTOR_TYPE列挙によって定義されます。
typedef enum {
IMAPI_CD_SECTOR_AUDIO = 0x00,
IMAPI_CD_SECTOR_MODE_ZERO = 0x01,
IMAPI_CD_SECTOR_MODE1 = 0x02,
IMAPI_CD_SECTOR_MODE2FORM0 = 0x03,
IMAPI_CD_SECTOR_MODE2FORM1 = 0x04,
IMAPI_CD_SECTOR_MODE2FORM2 = 0x05,
IMAPI_CD_SECTOR_MODE1RAW = 0x06,
IMAPI_CD_SECTOR_MODE2FORM0RAW = 0x07,
IMAPI_CD_SECTOR_MODE2FORM1RAW = 0x08,
IMAPI_CD_SECTOR_MODE2FORM2RAW = 0x09
} IMAPI_CD_SECTOR_TYPE;
- IMAPI_CD_SECTOR_AUDIO このセクター タイプでは、オーディオ データはセクター/フレームあたり 2352 バイトです。これは 588 個の連続するサンプルに分解でき、各サンプルは 4 バイトです。1 つのサンプルのレイアウトは、16 ビット ステレオ 44.1KHz の WAV ファイル データと一致します。このタイプのセクタには、追加のエラー修正コードはありません。
- IMAPI_CD_SECTOR_MODE_ZERO このセクター タイプでは、ユーザー データはセクター/フレームあたり 2336 バイトです。このめったに使用されないセクター タイプには、すべてゼロのデータが含まれており、今日のメディアではほとんど見られません。
- IMAPI_CD_SECTOR_MODE1 このセクター タイプでは、ユーザー データはセクター/フレームあたり 2048 バイトです。Mode1 データは、プレスされた CD-ROM メディアの最も一般的なデータ形式です。このデータ タイプは、標準のセクタ タイプの中で最大レベルの ECC/EDC も提供します。
- IMAPI_CD_SECTOR_MODE2FORM0 このセクター タイプでは、ユーザー データはセクター/フレームあたり 2336 バイトです。すべてのモード 2 セクタ タイプは「CD-ROM XA」モードとも呼ばれ、1 枚のディスクでオーディオ トラックとデータ トラックを混在させることができます。このセクター タイプは、モード 2 の「フォームレス」とも呼ばれ、非推奨と見なされ、めったに使用されません。
- IMAPI_CD_SECTOR_MODE2FORM1 このセクター タイプでは、ユーザー データはセクター/フレームあたり 2048 バイトです。すべてのモード 2 セクタ タイプは「CD-ROM XA」モードとも呼ばれ、1 枚のディスクでオーディオ トラックとデータ トラックを混在させることができます。
- IMAPI_CD_SECTOR_MODE2FORM2 このセクター タイプでは、ユーザー データはセクター/フレームあたり 2336 バイトあり、最後の 4 バイトはオプションの CRC コード (使用しない場合はゼロ) です。すべてのモード 2 セクタ タイプは「CD-ROM XA」モードとも呼ばれ、1 枚のディスクでオーディオ トラックとデータ トラックを混在させることができます。このセクター タイプは、VideoCD ディスクの書き込み時に最もよく使用されます。
- IMAPI_CD_SECTOR_MODE1RAW このセクター タイプでは、ユーザー データはセクター/フレームあたり 2352 バイトです。これは、前処理された Mode1Cooked データ セクターであり、セクター ヘッダー、ECC/EDC、およびスクランブルが既にデータ ストリームに追加されています。
- IMAPI_CD_SECTOR_MODE2FORM0RAW このセクター タイプでは、ユーザー データはセクター/フレームあたり 2352 バイトです。これは前処理された Mode2Form0 データ セクターであり、セクター ヘッダー、ECC/EDC、およびスクランブリングが既にデータ ストリームに追加されています。
- IMAPI_CD_SECTOR_MODE2FORM1RAW このセクター タイプでは、ユーザー データはセクター/フレームあたり 2352 バイトです。これは前処理された Mode2Form1 データ セクターであり、セクター ヘッダー、ECC/EDC、およびスクランブリングが既にデータ ストリームに追加されています。
- IMAPI_CD_SECTOR_MODE2FORM2RAW このセクター タイプでは、ユーザー データはセクター/フレームあたり 2352 バイトです。これは前処理された Mode2Form2 データ セクターであり、セクター ヘッダー、ECC/EDC、およびスクランブリングが既にデータ ストリームに追加されています。
備考: 一部のセクター タイプは、1 つのイメージ内の他のセクター タイプと互換性がありません。この状態の典型的な例を次に示します。最初のトラックがオーディオの場合、すべてのトラックがオーディオでなければなりません。最初のトラックが Mode1 の場合、すべてのトラックが Mode1 でなければなりません。3 つのモード 2 (XA) セクター (モード 2 フォーム 0、モード 2 フォーム 1、およびモード 2 フォーム 2) のみを 1 つのディスク イメージ内で混在させることができ、その場合でも他のモード 2 (XA) セクター タイプとのみ混在させることができます。