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 日]
|