Example #1
0
// Create a SourceMob with the specified ID and name,
// then create an EssenceData object associating it
// with the new SourceMob.
static void Test_CreateEssenceData(
  CAAFBuiltinDefs& defs,
  IAAFHeader* pHeader,
  const aafMobID_t& mobID,
  aafCharacter_constptr mobName,
  IAAFEssenceData** pResult)
{
  IAAFSourceMobSP pSourceMob;
  IAAFMobSP pMob;
  IAAFEssenceDescriptorSP pEssenceDesciptor;
  IAAFEssenceDataSP pEssenceData;

  // Create a Mob
  CheckResult(defs.cdSourceMob()->CreateInstance(IID_IAAFSourceMob,
                                                 (IUnknown **)&pSourceMob));

  CheckResult(pSourceMob->QueryInterface(IID_IAAFMob, (void **)&pMob));
  CheckResult(pMob->SetMobID(mobID));
  CheckResult(pMob->SetName(mobName));

  // Create a concrete subclass of EssenceDescriptor
  CheckResult(defs.cdAIFCDescriptor()->CreateInstance(IID_IAAFEssenceDescriptor, 
                                                      (IUnknown **)&pEssenceDesciptor));

	IAAFAIFCDescriptor*			pAIFCDesc = NULL;
	CheckResult(pEssenceDesciptor->QueryInterface (IID_IAAFAIFCDescriptor, (void **)&pAIFCDesc));
	CheckResult(pAIFCDesc->SetSummary (5, (unsigned char*)"TEST"));
	pAIFCDesc->Release();
	pAIFCDesc = NULL;

  CheckResult(pSourceMob->SetEssenceDescriptor (pEssenceDesciptor));
  CheckResult(pHeader->AddMob(pMob));


  // Attempt to create an AAFEssenceData.
  CheckResult(defs.cdEssenceData()->CreateInstance(IID_IAAFEssenceData,
                                             (IUnknown **)&pEssenceData));

  CheckResult(pEssenceData->SetFileMob(pSourceMob));
  CheckResult(pHeader->AddEssenceData(pEssenceData));

  *pResult = pEssenceData;
  (*pResult)->AddRef();
}
void EnumEssenceDataTest::createEssenceData(IAAFSourceMob *pSourceMob)
{
  assert(_pFile && _pHeader && _pDictionary);
  assert(pSourceMob);
  assert(NULL == _pEssenceData);

  CAAFBuiltinDefs defs (_pDictionary);

  // Attempt to create an AAFEssenceData.
  check(defs.cdEssenceData()->
		CreateInstance(IID_IAAFEssenceData,
					   (IUnknown **)&_pEssenceData));

  check(_pEssenceData->SetFileMob(pSourceMob));
  check(_pHeader->AddEssenceData(_pEssenceData));

  _pEssenceData->Release();
  _pEssenceData = NULL;
}
Example #3
0
void EssenceDataTest::createEssenceData(IAAFSourceMob *pSourceMob)
{
  assert(_pFile && _pHeader && _pDictionary);
  assert(pSourceMob);
  assert(NULL == _pEssenceData);
  
  CAAFBuiltinDefs defs (_pDictionary);

  // Attempt to create an AAFEssenceData.
  IAAFEssenceData* pRawEssenceData = NULL;
  check(defs.cdEssenceData()->
		CreateInstance(IID_IAAFEssenceData,
					   (IUnknown **)&pRawEssenceData));

  check(pRawEssenceData->SetFileMob(pSourceMob));
  check(_pHeader->AddEssenceData(pRawEssenceData));
  
  IAAFEssenceData2* pEssenceData2 = NULL;
  check(pRawEssenceData->QueryInterface(IID_IAAFEssenceData2, (void**)&pEssenceData2));
  check(pEssenceData2->GetPlainEssenceData(0, &_pEssenceData));

  // Set essence element key
  IAAFKLVEssenceDataParameters* pParameters = NULL;
  check(_pEssenceData->QueryInterface(IID_IAAFKLVEssenceDataParameters, (void **)&pParameters));
  AAFRESULT hr = pParameters->SetEssenceElementKey(_essenceElementKey);
  checkExpression(AAFRESULT_SUCCEEDED(hr) || hr == AAFRESULT_OPERATION_NOT_PERMITTED,
                  AAFRESULT_TEST_FAILED);
  aafUID_t key;
  hr = pParameters->GetEssenceElementKey(&key);
  checkExpression(AAFRESULT_SUCCEEDED(hr) || hr == AAFRESULT_OPERATION_NOT_PERMITTED,
                  AAFRESULT_TEST_FAILED);
  checkExpression(AAFRESULT_FAILED(hr) || key == _essenceElementKey,
                  AAFRESULT_TEST_FAILED);


  writeEssenceData(_pEssenceData, (aafDataBuffer_t)_smiley, sizeof(_smiley));
  writeEssenceData(_pEssenceData, (aafDataBuffer_t)_frowney, sizeof(_frowney));

  // Read back the data before saving and/or closing the file
  check(_pEssenceData->SetPosition(0));
  aafPosition_t dataPosition = 0;
  check(_pEssenceData->GetPosition(&dataPosition));
  checkExpression(dataPosition == 0, AAFRESULT_TEST_FAILED);

  // Validate the current essence size.
  aafLength_t essenceSize = 0;
  aafLength_t expectedEssenceSize = sizeof(_smiley) + sizeof(_frowney);
  check(_pEssenceData->GetSize(&essenceSize));
  checkExpression(essenceSize == expectedEssenceSize, AAFRESULT_TEST_FAILED);
  

  readEssenceData(_pEssenceData, (aafDataBuffer_t)_smiley, sizeof(_smiley));
  readEssenceData(_pEssenceData, (aafDataBuffer_t)_frowney, sizeof(_frowney));

  pParameters->Release();
  pParameters = NULL;

  pRawEssenceData->Release();
  pRawEssenceData = NULL;

  pEssenceData2->Release();
  pEssenceData2 = NULL;

  _pEssenceData->Release();
  _pEssenceData = NULL;
}