本文整理汇总了C++中CAAFBuiltinDefs::cdTIFFDescriptor方法的典型用法代码示例。如果您正苦于以下问题:C++ CAAFBuiltinDefs::cdTIFFDescriptor方法的具体用法?C++ CAAFBuiltinDefs::cdTIFFDescriptor怎么用?C++ CAAFBuiltinDefs::cdTIFFDescriptor使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CAAFBuiltinDefs
的用法示例。
在下文中一共展示了CAAFBuiltinDefs::cdTIFFDescriptor方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CreateAAFFile
static HRESULT CreateAAFFile(
aafWChar * pFileName,
aafUID_constref fileKind,
testRawStorageType_t rawStorageType,
aafProductIdentification_constref productID)
{
IAAFFile* pFile = NULL;
IAAFHeader* pHeader = NULL;
IAAFDictionary* pDictionary = NULL;
IAAFSourceMob* pSourceMob = NULL;
IAAFMob* pMob = NULL;
IAAFTIFFDescriptor* pTIFFDesc = NULL;
IAAFEssenceDescriptor* pEssDesc = NULL;
HRESULT hr = AAFRESULT_SUCCESS;
aafUInt8 summary[512];
aafUInt16 numEntries = 2;
unsigned long nOffset;
#if defined( OS_WINDOWS )
tiffHeader.tiff_byteOrder = TIFF_LITTLEENDIAN;
#else
tiffHeader.tiff_byteOrder = TIFF_BIGENDIAN;
#endif
tiffHeader.tiff_identNumber = TIFF_VERSION;
tiffHeader.tiff_firstIFD = 0;
memcpy(summary, (void *)&tiffHeader, sizeof(tiffHeader));
nOffset = sizeof(tiffHeader);
tagImageWidth.tdir_tag = TIFFTAG_IMAGEWIDTH;
tagImageWidth.tdir_type = TIFF_LONG;
tagImageWidth.tdir_count = 1;
tagImageWidth.tdir_offset = 320;
tagImageLength.tdir_tag = TIFFTAG_IMAGELENGTH;
tagImageLength.tdir_type = TIFF_LONG;
tagImageLength.tdir_count = 1;
tagImageLength.tdir_offset = 640;
// Write IFD data
memcpy(summary+nOffset, &numEntries, sizeof(numEntries));
nOffset += sizeof(numEntries);
memcpy((void *)(summary+nOffset), (void *)&tagImageWidth, sizeof(tagImageWidth));
nOffset += sizeof(tagImageWidth);
memcpy((void *)(summary+nOffset), (void *)&tagImageLength, sizeof(tagImageLength));
nOffset += sizeof(tagImageLength);
try
{
// Remove the previous test file if any.
RemoveTestFile(pFileName);
// Create the AAF file
checkResult(CreateTestFile( pFileName, fileKind, rawStorageType, productID, &pFile ));
// We can't really do anthing in AAF without the header.
checkResult(pFile->GetHeader(&pHeader));
// Get the AAF Dictionary so that we can create valid AAF objects.
checkResult(pHeader->GetDictionary(&pDictionary));
CAAFBuiltinDefs defs (pDictionary);
// Create a source mob
checkResult(defs.cdSourceMob()->
CreateInstance(IID_IAAFSourceMob,
(IUnknown **)&pSourceMob));
checkResult(pSourceMob->QueryInterface(IID_IAAFMob, (void **)&pMob));
checkResult(pMob->SetMobID(TEST_MobID));
checkResult(pMob->SetName(L"TIFFDescriptorTest"));
checkResult(defs.cdTIFFDescriptor()->
CreateInstance(IID_IAAFTIFFDescriptor,
(IUnknown **)&pTIFFDesc));
checkResult(pTIFFDesc->QueryInterface(IID_IAAFEssenceDescriptor, (void **)&pEssDesc));
checkResult(pTIFFDesc->SetIsUniform(kAAFFalse));
checkResult(pTIFFDesc->SetIsContiguous(kAAFTrue));
checkResult(pTIFFDesc->SetLeadingLines((aafInt32)10));
checkResult(pTIFFDesc->SetTrailingLines((aafInt32)20));
checkResult(pTIFFDesc->SetJPEGTableID((aafJPEGTableID_t)0));
checkResult(pTIFFDesc->SetSummary((aafUInt32)nOffset, (aafDataValue_t) summary));
checkResult(pSourceMob->SetEssenceDescriptor(pEssDesc));
// Add the MOB to the file
checkResult(pHeader->AddMob(pMob));
}
catch (HRESULT& rResult)
{
hr = rResult;
}
// Cleanup and return
if (pTIFFDesc)
pTIFFDesc->Release();
if (pDictionary)
pDictionary->Release();
//.........这里部分代码省略.........