From: Alexey K. <akh...@us...> - 2008-02-05 22:10:25
|
Update of /cvsroot/aaf/AAF/ref-impl/src/impl In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv20471 Modified Files: ImplAAFMasterMob.cpp Log Message: Change AddMasterSlot to reference new SourceClip directly, without wrapping it in a Sequence. This reverts the previous changes 1.61 and 1.62, which were made in attempt to comply with MXF structural metadata requirements. This altered the behavior of existing COM interfaces breaking COM rules and affecting some toolkit clients. Index: ImplAAFMasterMob.cpp =================================================================== RCS file: /cvsroot/aaf/AAF/ref-impl/src/impl/ImplAAFMasterMob.cpp,v retrieving revision 1.64 retrieving revision 1.65 diff -C2 -d -r1.64 -r1.65 *** ImplAAFMasterMob.cpp 31 Aug 2006 02:55:59 -0000 1.64 --- ImplAAFMasterMob.cpp 5 Feb 2008 22:10:21 -0000 1.65 *************** *** 14,18 **** // under the License. // ! // The Original Code of this file is Copyright 1998-2004, Licensor of the // AAF Association. // --- 14,18 ---- // under the License. // ! // The Original Code of this file is Copyright 1998-2007, Licensor of the // AAF Association. // *************** *** 125,129 **** aafUID_t segDataDef; ImplAAFSegment* pSegment = NULL; - ImplAAFSequence* pSequence = NULL; ImplAAFSourceClip* pSrcClip = NULL; aafSourceRef_t ref; --- 125,128 ---- *************** *** 182,208 **** CHECK(pDictionary->GetBuiltinDefs()->cdSourceClip()-> CreateInstance((ImplAAFObject**) &pSrcClip)); - CHECK(pSrcClip->Initialize(pDataDef, slotLength, ref)); - - // For MXF it is mandatory that we use a sequence here. - // For AAF it is optional. - CHECK(pDictionary->GetBuiltinDefs()->cdSequence()-> - CreateInstance((ImplAAFObject **) &pSequence)); - CHECK(pSequence->Initialize(pDataDef)); - CHECK(pSequence->AppendComponent(pSrcClip)); - - CHECK(AppendNewStaticSlot(pSequence, masterSlotID, pSlotName, - &pNewStaticSlot)); pDictionary->ReleaseReference(); pDictionary = NULL; pNewStaticSlot->ReleaseReference(); pNewStaticSlot = NULL; pSrcClip->ReleaseReference(); - pSrcClip = NULL; - - pSequence->ReleaseReference(); - pSequence = NULL; } --- 181,196 ---- CHECK(pDictionary->GetBuiltinDefs()->cdSourceClip()-> CreateInstance((ImplAAFObject**) &pSrcClip)); pDictionary->ReleaseReference(); pDictionary = NULL; + CHECK(pSrcClip->Initialize(pDataDef, slotLength, ref)); + CHECK(AppendNewStaticSlot(pSrcClip, masterSlotID, pSlotName, + &pNewStaticSlot)); + pNewStaticSlot->ReleaseReference(); pNewStaticSlot = NULL; pSrcClip->ReleaseReference(); } *************** *** 240,258 **** CreateInstance((ImplAAFObject**) &pSrcClip)); - CHECK(pSrcClip->Initialize(pDataDef, slotLength, ref)); - - // For MXF it is mandatory that we use a sequence here. - // For AAF it is optional. - CHECK(pDictionary->GetBuiltinDefs()->cdSequence()-> - CreateInstance((ImplAAFObject **) &pSequence)); - CHECK(pSequence->Initialize(pDataDef)); - CHECK(pSequence->AppendComponent(pSrcClip)); - - CHECK(AppendNewTimelineSlot(editRate,pSequence, masterSlotID, pSlotName, - zeroPos,&pNewTimelineSlot)); - pDictionary->ReleaseReference(); pDictionary = NULL; pNewTimelineSlot->ReleaseReference(); pNewTimelineSlot = NULL; --- 228,238 ---- CreateInstance((ImplAAFObject**) &pSrcClip)); pDictionary->ReleaseReference(); pDictionary = NULL; + CHECK(pSrcClip->Initialize(pDataDef, slotLength, ref)); + CHECK(AppendNewTimelineSlot(editRate,pSrcClip, masterSlotID, pSlotName, + zeroPos,&pNewTimelineSlot)); + pNewTimelineSlot->ReleaseReference(); pNewTimelineSlot = NULL; *************** *** 260,266 **** pSrcClip->ReleaseReference(); pSrcClip = NULL; - - pSequence->ReleaseReference(); - pSequence = NULL; } } --- 240,243 ---- *************** *** 277,282 **** if(pSrcClip != NULL) pSrcClip->ReleaseReference(); - if(pSequence != NULL) - pSequence->ReleaseReference(); if(pDictionary != NULL) pDictionary->ReleaseReference(); --- 254,257 ---- |