高度な検索
Developer Connection
Member Login ログイン | ご入会 ADC連絡先

Technical Q&A QA1249
How can I find out what non-RGB pixel formats a codec supports?


Q: アプリケーションからコーデックに問い合わせをして、そのコーデックがサポートする非 RGB ピクセル形式を調べる方法はありますか?

A: 非 RGB ピクセル形式をサポートするコーデックには、そのパブリックリソースリストに、非 RGB ピクセル形式の 4 文字のコードを格納する 'cpix' というリソースが含まれています。この情報は、GetComponentPublicResource を使って、アプリケーションによって取得できます。

リスト 1 に、コーデックが特定の非 RGB ピクセル形式をサポートするかどうかをアプリケーションで調べる方法を示します。

リスト 1.

Boolean DoesCodecSupportPixelFormat(Component inComponent,
                                    OSType    inFormat)
{
  Boolean   isSupported = false;

  OSTypePtr *hResource = NULL;
  long      thePixelFormatCount;
  int       i;
  OSErr     err;

  // 注記: GetComponentPublicResource は、リソースではなく、
  // ハンドルを返す。呼び出し側は、DisposeHandle を使って
  // このハンドルを破棄する必要がある
  err = GetComponentPublicResource(inComponent,
                                   'cpix', 1,
                                   (Handle*)&hResource);
  if (err || (NULL == hResource)) goto bail;

  thePixelFormatCount = GetHandleSize((Handle)hResource)/4);

  for (i = 0; i < thePixelFormatCount && !isSupported; i++)
    isSupported = ((*hResource)[i] == inFormat);

  DisposeHandle((Handle)hResource);

bail:
  return isSupported;
}

コーデックデベロッパ:

'2vuy''r408''v408' に対するコーデックのアドバタイジングサポートは、たとえば、図 1 に示すように、パブリックリソースリストの一部に 'cpix' リソースを含んでいます。

図 1.

resource 'cpix' (kMyCPIXResID) {
 {
     '2vuy','r408','v408'
 }
};

先頭に戻る

参考資料:


[2004 年 1 月 5 日]