Update of /cvsroot/aaf/AAF/Utilities/AAFAnalyzer/RegressionTest/TestFiles In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31766/RegressionTest/TestFiles Modified Files: EPAnnotationTest.expected EPEffectTest.expected EPDerivationTest.expected InputParser.h GNUmakefile TestFileBuilder.cpp InputParser.cpp.gen EPAnnotationTest.xml InputParserGen.sh EPEffectTest.xml TestFileBuilder.h InputParser.cpp EPDerivationChain.dtd Added Files: EPHeaderTest1.xml EPDefinitionTest.expected EPHeaderTest2.xml EPParameterTest.expected EPHeaderTest1.expected EPHeaderTest3.expected EPAnnotationTest2.xml EPAnnotationTest2.expected EPHeaderTest2.expected EPParameterTest.xml EPHeaderTest3.xml EPDefinitionTest.xml Log Message: Added new tests. Added new requirements to existing tests Index: TestFileBuilder.h =================================================================== RCS file: /cvsroot/aaf/AAF/Utilities/AAFAnalyzer/RegressionTest/TestFiles/TestFileBuilder.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** TestFileBuilder.h 24 Nov 2005 17:10:48 -0000 1.8 --- TestFileBuilder.h 30 Nov 2005 16:49:10 -0000 1.9 *************** *** 29,32 **** --- 29,35 ---- #include <boost/shared_ptr.hpp> + //STL files + #include <map> + class AxObject; class AxMob; *************** *** 40,47 **** --- 43,52 ---- class AxDescriptiveMarker; class AxSourceReference; + class AxInterpolationDef; namespace aafanalyzer { using namespace boost; + using namespace std; class TestFileBuilder *************** *** 56,59 **** --- 61,69 ---- ~TestFileBuilder(); + //Definition Objects: + void CreateKLVDataDefinition( const AxString& name, const AxString& description ); + void CreateTaggedValueDefinition( const AxString& name, const AxString& description ); + void CreateOperationDefinition( const AxString& name, const AxString& description ); + //Mobs: //Composition: *************** *** 77,97 **** //Create Segments: //Type A: ! shared_ptr<AxComponent> CreateTimecode( TrackType essenceType, const aafUID_t& uidNothing ); ! shared_ptr<AxComponent> CreateEdgecode( TrackType essenceType, const aafUID_t& uidNothing ); ! shared_ptr<AxComponent> CreateTimecodeStream12M( TrackType essenceType, const aafUID_t& uidNothing ); ! shared_ptr<AxComponent> CreateEOC( TrackType essenceType, const aafUID_t& uidNothing ); ! shared_ptr<AxComponent> CreateOOF( TrackType essenceType, const aafUID_t& uidNothing ); //Type B: ! shared_ptr<AxComponent> CreateSourceClip( TrackType essenceType, const aafUID_t& uidNothing ); //Type C: ! shared_ptr<AxComponent> CreateTransition( TrackType essenceType, const aafUID_t& uidNothing ); ! shared_ptr<AxComponent> CreateSequence( TrackType essenceType, const aafUID_t& uidNothing ); ! shared_ptr<AxComponent> CreateCommentMarker( TrackType essenceType, const aafUID_t& uidNothing ); ! shared_ptr<AxComponent> CreateDescriptiveMarker( TrackType essenceType, const aafUID_t& uidNothing ); //Type D: ! shared_ptr<AxComponent> CreateOperationGroup( TrackType essenceType, const aafUID_t& opDefId ); //Fill Components: --- 87,107 ---- //Create Segments: //Type A: ! shared_ptr<AxComponent> CreateTimecode( TrackType essenceType, const AxString& strNothing, aafLength_t length, bool hasLength ); ! shared_ptr<AxComponent> CreateEdgecode( TrackType essenceType, const AxString& strNothing, aafLength_t length, bool hasLength ); ! shared_ptr<AxComponent> CreateTimecodeStream12M( TrackType essenceType, const AxString& strNothing, aafLength_t length, bool hasLength ); ! shared_ptr<AxComponent> CreateEOC( TrackType essenceType, const AxString& strNothing, aafLength_t length, bool hasLength ); ! shared_ptr<AxComponent> CreateOOF( TrackType essenceType, const AxString& strNothing, aafLength_t length, bool hasLength ); //Type B: ! shared_ptr<AxComponent> CreateSourceClip( TrackType essenceType, const AxString& strNothing, aafLength_t length, bool hasLength ); //Type C: ! shared_ptr<AxComponent> CreateTransition( TrackType essenceType, const AxString& strNothing, aafLength_t length, bool hasLength ); ! shared_ptr<AxComponent> CreateSequence( TrackType essenceType, const AxString& strNothing, aafLength_t length, bool hasLength ); ! shared_ptr<AxComponent> CreateCommentMarker( TrackType essenceType, const AxString& strNothing, aafLength_t length, bool hasLength ); ! shared_ptr<AxComponent> CreateDescriptiveMarker( TrackType essenceType, const AxString& strNothing, aafLength_t length, bool hasLength ); //Type D: ! shared_ptr<AxComponent> CreateOperationGroup( TrackType essenceType, const AxString& opDef, aafLength_t length, bool hasLength ); //Fill Components: *************** *** 107,112 **** void AddToOperationGroup( shared_ptr<AxSegment> parent, AxSegment& child, int property ); ! //Comment: void AddComment( shared_ptr<AxComponent> axComponent, const AxString& name, const AxString& value ); //Mob Slots: --- 117,123 ---- void AddToOperationGroup( shared_ptr<AxSegment> parent, AxSegment& child, int property ); ! //Annotation: void AddComment( shared_ptr<AxComponent> axComponent, const AxString& name, const AxString& value ); + void AddKLVData( shared_ptr<AxComponent> axComponent, const AxString& keyName, const AxString& value ); //Mob Slots: *************** *** 116,124 **** //Parameters: ! void AttachConstantRationalParameter( AxOperationGroup& axOpGroup, const aafUID_t& paramDefId, aafUInt32 numerator, aafUInt32 denominator ); //Interchange Objects: void AttachDescriptiveFramework( shared_ptr<AxDescriptiveMarker> axMarker ); private: --- 127,138 ---- //Parameters: ! void AttachConstantRationalParameter( AxOperationGroup& axOpGroup, const aafUID_t& paramDefId, aafUInt32 numerator, aafUInt32 denominator, const aafUID_t& uidNothing ); ! void AttachVaryingRationalParameter( AxOperationGroup& axOpGroup, const aafUID_t& paramDefId, aafUInt32 numerator, aafUInt32 denominator, const aafUID_t& interpolationDefId ); //Interchange Objects: void AttachDescriptiveFramework( shared_ptr<AxDescriptiveMarker> axMarker ); + //Other: + void SetOperationalPattern( aafUID_t pattern ); private: *************** *** 126,134 **** AxFile _axFile; aafUInt32 _mobCount; const aafMobID_t GenerateMobId(); void AddDataDef( AxComponent& axComponent, TrackType essenceType ); ! shared_ptr<AxOperationDef> GetOperationDef( const aafUID_t& opDefId, AxDictionary& axDictionary ); shared_ptr<AxParameterDef> GetParameterDef( const aafUID_t& paramDefId, AxDictionary& axDictionary ); }; --- 140,151 ---- AxFile _axFile; aafUInt32 _mobCount; + map<AxString, aafUID_t> _namedAUIDs; const aafMobID_t GenerateMobId(); + const aafUID_t GenerateAUID(); void AddDataDef( AxComponent& axComponent, TrackType essenceType ); ! shared_ptr<AxOperationDef> GetOperationDef( const AxString& opDef, AxDictionary& axDictionary ); shared_ptr<AxParameterDef> GetParameterDef( const aafUID_t& paramDefId, AxDictionary& axDictionary ); + shared_ptr<AxInterpolationDef> GetInterpolationDef( const aafUID_t& interpolationDefId, AxDictionary& axDictionary ); }; Index: EPAnnotationTest.expected =================================================================== RCS file: /cvsroot/aaf/AAF/Utilities/AAFAnalyzer/RegressionTest/TestFiles/EPAnnotationTest.expected,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** EPAnnotationTest.expected 24 Nov 2005 17:10:48 -0000 1.1 --- EPAnnotationTest.expected 30 Nov 2005 16:49:10 -0000 1.2 *************** *** 3,7 **** Result: Failed Reason: Test Failed - See "Edit Protocol Annotation Visitor" Visitor for details ! Passing Requirements: None Warning Requirements: None Failing Requirements: REQ_EP_147; REQ_EP_149; REQ_EP_150 --- 3,7 ---- Result: Failed Reason: Test Failed - See "Edit Protocol Annotation Visitor" Visitor for details ! Passing Requirements: REQ_EP_151; REQ_EP_152 Warning Requirements: None Failing Requirements: REQ_EP_147; REQ_EP_149; REQ_EP_150 *************** *** 11,15 **** Result: Failed Reason: ! Passing Requirements: None Warning Requirements: None Failing Requirements: REQ_EP_147; REQ_EP_149; REQ_EP_150 --- 11,15 ---- Result: Failed Reason: ! Passing Requirements: REQ_EP_151; REQ_EP_152 Warning Requirements: None Failing Requirements: REQ_EP_147; REQ_EP_149; REQ_EP_150 Index: EPDerivationTest.expected =================================================================== RCS file: /cvsroot/aaf/AAF/Utilities/AAFAnalyzer/RegressionTest/TestFiles/EPDerivationTest.expected,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** EPDerivationTest.expected 24 Nov 2005 17:10:48 -0000 1.5 --- EPDerivationTest.expected 30 Nov 2005 16:49:10 -0000 1.6 *************** *** 53,92 **** Name: Verify Mob Chain Desc: Verify the structure of one mob chain. ! Detail: Analyzing root composition mob "Invalid out of Clip: Top Level A" Result: Failed Reason: Visitor Failed - See "MobChainVisitor" Visitor for details. ! Passing Requirements: REQ_EP_017; REQ_EP_018; REQ_EP_019; REQ_EP_026; REQ_EP_030; REQ_EP_031; REQ_EP_036; REQ_EP_045; REQ_EP_050; REQ_EP_063; REQ_EP_064; REQ_EP_072; REQ_EP_076; REQ_EP_083 Warning Requirements: None ! Failing Requirements: REQ_EP_025; REQ_EP_055 Name: MobChainVisitor Desc: Visit mobs and verify derivation order. ! Detail: OK - Transition to Top-Level Composition: "Invalid out of Clip: Top Level A" ! Detail: OK - Transition to Clip: "Invalid out of Clip: Clip A" ! Detail: FAIL - Transition to Top-Level Composition: "Clip->Top-Level" Result: Failed ! Reason: Top-Level Composition: "Clip->Top-Level" is out of place in the derrivation chain. ! Passing Requirements: REQ_EP_017; REQ_EP_018; REQ_EP_019; REQ_EP_026; REQ_EP_030; REQ_EP_031; REQ_EP_036; REQ_EP_045; REQ_EP_050; REQ_EP_063; REQ_EP_064; REQ_EP_072; REQ_EP_076; REQ_EP_083 Warning Requirements: None ! Failing Requirements: REQ_EP_025; REQ_EP_055 Name: Verify Mob Chain Desc: Verify the structure of one mob chain. ! Detail: Analyzing root composition mob "Missing EOC Lower-Level: Top-Level" Result: Failed Reason: Visitor Failed - See "MobChainVisitor" Visitor for details. ! Passing Requirements: REQ_EP_018; REQ_EP_019; REQ_EP_025; REQ_EP_026; REQ_EP_030; REQ_EP_031; REQ_EP_036; REQ_EP_045; REQ_EP_050; REQ_EP_055; REQ_EP_063; REQ_EP_064; REQ_EP_072; REQ_EP_076; REQ_EP_083 Warning Requirements: None ! Failing Requirements: REQ_EP_017 Name: MobChainVisitor Desc: Visit mobs and verify derivation order. ! Detail: OK - Transition to Top-Level Composition: "Missing EOC Lower-Level: Top-Level" ! Detail: OK - Transition to Lower-Level Composition: "Missing EOC Lower-Level" Result: Failed ! Reason: End of derivation chain encountered without a zero-valued source clip or out of file reference at Composition Mob: "Missing EOC Lower-Level" ! Passing Requirements: REQ_EP_018; REQ_EP_019; REQ_EP_025; REQ_EP_026; REQ_EP_030; REQ_EP_031; REQ_EP_036; REQ_EP_045; REQ_EP_050; REQ_EP_055; REQ_EP_063; REQ_EP_064; REQ_EP_072; REQ_EP_076; REQ_EP_083 Warning Requirements: None ! Failing Requirements: REQ_EP_017 Name: Verify Mob Chain --- 53,92 ---- Name: Verify Mob Chain Desc: Verify the structure of one mob chain. ! Detail: Analyzing root composition mob "Missing EOC Lower-Level: Top-Level" Result: Failed Reason: Visitor Failed - See "MobChainVisitor" Visitor for details. ! Passing Requirements: REQ_EP_018; REQ_EP_019; REQ_EP_025; REQ_EP_026; REQ_EP_030; REQ_EP_031; REQ_EP_036; REQ_EP_045; REQ_EP_050; REQ_EP_055; REQ_EP_063; REQ_EP_064; REQ_EP_072; REQ_EP_076; REQ_EP_083 Warning Requirements: None ! Failing Requirements: REQ_EP_017 Name: MobChainVisitor Desc: Visit mobs and verify derivation order. ! Detail: OK - Transition to Top-Level Composition: "Missing EOC Lower-Level: Top-Level" ! Detail: OK - Transition to Lower-Level Composition: "Missing EOC Lower-Level" Result: Failed ! Reason: End of derivation chain encountered without a zero-valued source clip or out of file reference at Composition Mob: "Missing EOC Lower-Level" ! Passing Requirements: REQ_EP_018; REQ_EP_019; REQ_EP_025; REQ_EP_026; REQ_EP_030; REQ_EP_031; REQ_EP_036; REQ_EP_045; REQ_EP_050; REQ_EP_055; REQ_EP_063; REQ_EP_064; REQ_EP_072; REQ_EP_076; REQ_EP_083 Warning Requirements: None ! Failing Requirements: REQ_EP_017 Name: Verify Mob Chain Desc: Verify the structure of one mob chain. ! Detail: Analyzing root composition mob "Invalid out of Clip: Top Level A" Result: Failed Reason: Visitor Failed - See "MobChainVisitor" Visitor for details. ! Passing Requirements: REQ_EP_017; REQ_EP_018; REQ_EP_019; REQ_EP_026; REQ_EP_030; REQ_EP_031; REQ_EP_036; REQ_EP_045; REQ_EP_050; REQ_EP_063; REQ_EP_064; REQ_EP_072; REQ_EP_076; REQ_EP_083 Warning Requirements: None ! Failing Requirements: REQ_EP_025; REQ_EP_055 Name: MobChainVisitor Desc: Visit mobs and verify derivation order. ! Detail: OK - Transition to Top-Level Composition: "Invalid out of Clip: Top Level A" ! Detail: OK - Transition to Clip: "Invalid out of Clip: Clip A" ! Detail: FAIL - Transition to Top-Level Composition: "Clip->Top-Level" Result: Failed ! Reason: Top-Level Composition: "Clip->Top-Level" is out of place in the derrivation chain. ! Passing Requirements: REQ_EP_017; REQ_EP_018; REQ_EP_019; REQ_EP_026; REQ_EP_030; REQ_EP_031; REQ_EP_036; REQ_EP_045; REQ_EP_050; REQ_EP_063; REQ_EP_064; REQ_EP_072; REQ_EP_076; REQ_EP_083 Warning Requirements: None ! Failing Requirements: REQ_EP_025; REQ_EP_055 Name: Verify Mob Chain Index: EPEffectTest.xml =================================================================== RCS file: /cvsroot/aaf/AAF/Utilities/AAFAnalyzer/RegressionTest/TestFiles/EPEffectTest.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** EPEffectTest.xml 24 Nov 2005 17:10:48 -0000 1.2 --- EPEffectTest.xml 30 Nov 2005 16:49:10 -0000 1.3 *************** *** 5,15 **** <!-- Test everything outside of a transition --> - <top-level name="Video Dissolve not in Transition"> <timeline-mob-slot edit-rate-denominator="1" edit-rate-numerator="1"> <sequence track-type="picture"> ! <eoc track-type="picture"/> ! <video-dissolve track-type="picture"/> ! <eoc track-type="picture"/> </sequence> [...1382 lines suppressed...] ! </video-dissolve> ! </transition> ! <eoc track-type="picture" length="1"/> </sequence> </timeline-mob-slot> </top-level> ! <!-- Test Two-Parameter Mono Audio Dissolve Effects --> ! <top-level name="Two-Parameter Mono Audio Dissolve - No Incoming Segment"> ! <timeline-mob-slot edit-rate-denominator="1" edit-rate-numerator="1"> ! <sequence track-type="audio"> ! <eoc track-type="audio" length="10"/> ! <transition track-type="audio" length="10"> ! <two-parameter-mono-audio-dissolve track-type="audio"/> ! </transition> ! </sequence> ! </timeline-mob-slot> ! </top-level> ! </aaf-file> --- NEW FILE: EPDefinitionTest.expected --- Name: Edit Protocol Definition Test Desc: Verify the use of DataDefinition objects throught the file. Result: Failed Reason: Test Failed - See "Edit Protocol Track Contents Visitor" Visitor for details Passing Requirements: None Warning Requirements: None Failing Requirements: REQ_EP_162 Name: Edit Protocol Definition Visitor Desc: Visit Data Definitions and Components to make sure all Data Definitions are valid. Result: Failed Reason: Passing Requirements: None Warning Requirements: None Failing Requirements: REQ_EP_162 Name: Edit Protocol Definition Visitor Desc: - Result: Failed Reason: OperationGroup in Mob slot with ID = 1 of Top-Level Composition: "Invalid OperationGroup/OperationDefinition" has data definition value "Sound" and references OperationDefinition "Chroma Key" with data definition value "Picture". Passing Requirements: None Warning Requirements: None Failing Requirements: REQ_EP_162 --- NEW FILE: EPHeaderTest3.expected --- Name: Edit Protocol Header Test Desc: Verify the AAF file header is valid. Result: Failed Reason: Test Failed - See "Edit Protocol Header Visitor" Visitor for details Passing Requirements: None Warning Requirements: None Failing Requirements: REQ_EP_255 Name: Edit Protocol Header Visitor Desc: Visit the AAF File Header and verify it meets the Edit Protocol requirements. Result: Failed Reason: Header::OperationalPattern property is not equal to OpEditProtocol. Passing Requirements: None Warning Requirements: None Failing Requirements: REQ_EP_255 --- NEW FILE: EPHeaderTest1.expected --- Name: Edit Protocol Header Test Desc: Verify the AAF file header is valid. Result: Passed Passing Requirements: REQ_EP_255 Warning Requirements: None Failing Requirements: None Name: Edit Protocol Header Visitor Desc: Visit the AAF File Header and verify it meets the Edit Protocol requirements. Result: Passed Passing Requirements: REQ_EP_255 Warning Requirements: None Failing Requirements: None Index: EPDerivationChain.dtd =================================================================== RCS file: /cvsroot/aaf/AAF/Utilities/AAFAnalyzer/RegressionTest/TestFiles/EPDerivationChain.dtd,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** EPDerivationChain.dtd 24 Nov 2005 17:10:48 -0000 1.8 --- EPDerivationChain.dtd 30 Nov 2005 16:49:10 -0000 1.9 *************** *** 5,15 **** <!ENTITY % OPERATION_GROUP "video-dissolve | smpte-video-wipe | video-speed-control | video-repeat | video-flip | video-flop | video-flip-flop | video-position | video-crop | video-scale | video-rotate | video-corner-pinning | alpha-with-video-key | separate-alpha-key | luminance-key | chroma-key | mono-audio-gain | mono-audio-pan | mono-audio-dissolve | two-parameter-mono-audio-dissolve"> <!ENTITY % SOURCE_REFERENCE "source-clip | eoc | oof"> ! <!ENTITY % SEGMENT "sequence | timecode | timecode-stream-12m | edgecode | comment-marker | descriptive-marker | %SOURCE_REFERENCE; | %OPERATION_GROUP;"> <!ENTITY % COMPONENT "transition | %SEGMENT;"> ! <!ENTITY % COMMENTS_AND_COMPONENTS "( comment | %COMPONENT; )*"> ! <!ENTITY % COMMENTS_AND_SEGMENTS "( comment | %SEGMENT; )*"> <!ENTITY % ESSENCE_TYPE "none | audio | picture | timecode | edgecode | auxiliary"> ! <!ELEMENT aaf-file ( %MOB; )+> <!-- Mobs --> --- 5,37 ---- <!ENTITY % OPERATION_GROUP "video-dissolve | smpte-video-wipe | video-speed-control | video-repeat | video-flip | video-flop | video-flip-flop | video-position | video-crop | video-scale | video-rotate | video-corner-pinning | alpha-with-video-key | separate-alpha-key | luminance-key | chroma-key | mono-audio-gain | mono-audio-pan | mono-audio-dissolve | two-parameter-mono-audio-dissolve"> <!ENTITY % SOURCE_REFERENCE "source-clip | eoc | oof"> ! <!ENTITY % SEGMENT "sequence | timecode | timecode-stream-12m | edgecode | comment-marker | descriptive-marker | operation-group | %SOURCE_REFERENCE; | %OPERATION_GROUP;"> <!ENTITY % COMPONENT "transition | %SEGMENT;"> ! <!ENTITY % COMMENTS_AND_COMPONENTS "( comment | klv-data | %COMPONENT; )*"> ! <!ENTITY % COMMENTS_AND_SEGMENTS "( comment | klv-data | %SEGMENT; )*"> <!ENTITY % ESSENCE_TYPE "none | audio | picture | timecode | edgecode | auxiliary"> ! <!ELEMENT aaf-file ( dictionary?, ( %MOB; ) )+> ! <!ATTLIST aaf-file operational-pattern ( edit-protocol | invalid ) #IMPLIED > ! ! <!-- Dictionary and Definitions --> ! <!ELEMENT dictionary ( klv-data-def | tagged-value-def | operation-def )+> ! ! <!ELEMENT klv-data-def EMPTY> ! <!ATTLIST klv-data-def ! name CDATA #REQUIRED ! description CDATA #REQUIRED ! > ! ! <!ELEMENT tagged-value-def EMPTY> ! <!ATTLIST tagged-value-def ! name CDATA #REQUIRED ! description CDATA #REQUIRED ! > ! ! <!ELEMENT operation-def EMPTY> ! <!ATTLIST operation-def ! name CDATA #REQUIRED ! description CDATA #REQUIRED ! > <!-- Mobs --> *************** *** 55,59 **** <!ATTLIST auxiliary-source name CDATA #IMPLIED> ! <!-- Comments --> <!ELEMENT comment EMPTY> <!ATTLIST comment --- 77,81 ---- <!ATTLIST auxiliary-source name CDATA #IMPLIED> ! <!-- Annotations --> <!ELEMENT comment EMPTY> <!ATTLIST comment *************** *** 62,99 **** > <!-- Type A Components --> ! <!ELEMENT timecode ( comment* )> ! <!ATTLIST timecode track-type ( timecode ) #REQUIRED> ! <!ELEMENT edgecode ( comment* )> ! <!ATTLIST edgecode track-type ( edgecode ) #REQUIRED> ! <!ELEMENT timecode-stream-12m ( comment* )> ! <!ATTLIST timecode-stream-12m track-type ( timecode ) #REQUIRED> ! <!ELEMENT eoc ( comment* )> ! <!ATTLIST eoc track-type ( %ESSENCE_TYPE; ) #REQUIRED> ! <!ELEMENT oof ( comment* )> ! <!ATTLIST oof track-type ( %ESSENCE_TYPE; ) #REQUIRED> <!-- Type B Components --> ! <!ELEMENT source-clip ( comment*, ( %MOB; ), comment* )> ! <!ATTLIST source-clip track-type ( none | audio | picture | auxiliary ) #REQUIRED> <!-- Type C Components --> <!ELEMENT transition ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST transition track-type ( %ESSENCE_TYPE; ) #REQUIRED> ! <!ELEMENT sequence ( comment*, ( %COMPONENT; ), %COMMENTS_AND_COMPONENTS; )> ! <!ATTLIST sequence track-type ( %ESSENCE_TYPE; ) #REQUIRED> ! <!ELEMENT comment-marker ( comment*, ( %SOURCE_REFERENCE; )?, comment* )> ! <!ATTLIST comment-marker track-type ( %ESSENCE_TYPE; ) #REQUIRED> ! <!ELEMENT descriptive-marker ( comment*, ( ( ( %SOURCE_REFERENCE; )?, comment*, descriptive-framework? ) | ( descriptive-framework?, comment*, ( %SOURCE_REFERENCE; )? ) ), comment* )> ! <!ATTLIST descriptive-marker track-type ( %ESSENCE_TYPE; ) #REQUIRED> <!-- Type D components --> --- 84,147 ---- > + <!ELEMENT klv-data EMPTY> + <!ATTLIST klv-data + key-name CDATA #REQUIRED + value CDATA #REQUIRED + > + <!-- Type A Components --> ! <!ELEMENT timecode ( ( comment | klv-data )* )> ! <!ATTLIST timecode ! track-type ( timecode ) #REQUIRED ! length CDATA #IMPLIED> ! <!ELEMENT edgecode ( ( comment | klv-data )* )> ! <!ATTLIST edgecode ! track-type ( edgecode ) #REQUIRED ! length CDATA #IMPLIED> ! <!ELEMENT timecode-stream-12m ( ( comment | klv-data )* )> ! <!ATTLIST timecode-stream-12m ! track-type ( timecode ) #REQUIRED ! length CDATA #IMPLIED> ! <!ELEMENT eoc ( ( comment | klv-data )* )> ! <!ATTLIST eoc ! track-type ( %ESSENCE_TYPE; ) #REQUIRED ! length CDATA #IMPLIED> ! <!ELEMENT oof ( ( comment | klv-data )* )> ! <!ATTLIST oof ! track-type ( %ESSENCE_TYPE; ) #REQUIRED ! length CDATA #IMPLIED> <!-- Type B Components --> ! <!ELEMENT source-clip ( ( comment | klv-data )*, ( %MOB; ), ( comment | klv-data )* )> ! <!ATTLIST source-clip ! track-type ( %ESSENCE_TYPE; ) #REQUIRED ! length CDATA #IMPLIED> <!-- Type C Components --> <!ELEMENT transition ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST transition ! track-type ( %ESSENCE_TYPE; ) #REQUIRED ! length CDATA #IMPLIED> ! <!ELEMENT sequence ( ( comment | klv-data )*, ( %COMPONENT; ), %COMMENTS_AND_COMPONENTS; )> ! <!ATTLIST sequence ! track-type ( %ESSENCE_TYPE; ) #REQUIRED ! length CDATA #IMPLIED> ! <!ELEMENT comment-marker ( ( comment | klv-data )*, ( %SOURCE_REFERENCE; )?, ( comment | klv-data )* )> ! <!ATTLIST comment-marker ! track-type ( %ESSENCE_TYPE; ) #REQUIRED ! length CDATA #IMPLIED> ! <!ELEMENT descriptive-marker ( ( comment | klv-data )*, ( ( ( %SOURCE_REFERENCE; )?, ( comment | klv-data )*, descriptive-framework? ) | ( descriptive-framework?, ( comment | klv-data )*, ( %SOURCE_REFERENCE; )? ) ), ( comment | klv-data )* )> ! <!ATTLIST descriptive-marker ! track-type ( %ESSENCE_TYPE; ) #REQUIRED ! length CDATA #IMPLIED> <!-- Type D components --> *************** *** 109,177 **** --> <!ELEMENT video-dissolve ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST video-dissolve track-type ( picture ) #REQUIRED> <!ELEMENT smpte-video-wipe ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST smpte-video-wipe track-type ( picture ) #REQUIRED> ! <!ELEMENT video-speed-control ( %COMMENTS_AND_COMPONENTS;, speed-ratio?, %COMMENTS_AND_COMPONENTS; )> ! <!ATTLIST video-speed-control track-type ( picture ) #REQUIRED> ! <!ELEMENT speed-ratio EMPTY> ! <!ATTLIST speed-ratio numerator CDATA #REQUIRED denominator CDATA #REQUIRED > <!ELEMENT video-repeat ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST video-repeat track-type ( picture ) #REQUIRED> <!ELEMENT video-flip ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST video-flip track-type ( picture ) #REQUIRED> <!ELEMENT video-flop ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST video-flop track-type ( picture ) #REQUIRED> <!ELEMENT video-flip-flop ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST video-flip-flop track-type ( picture ) #REQUIRED> <!ELEMENT video-position ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST video-position track-type ( picture ) #REQUIRED> <!ELEMENT video-crop ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST video-crop track-type ( picture ) #REQUIRED> <!ELEMENT video-scale ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST video-scale track-type ( picture ) #REQUIRED> <!ELEMENT video-rotate ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST video-rotate track-type ( picture ) #REQUIRED> <!ELEMENT video-corner-pinning ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST video-corner-pinning track-type ( picture ) #REQUIRED> <!ELEMENT alpha-with-video-key ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST alpha-with-video-key track-type ( picture ) #REQUIRED> <!ELEMENT separate-alpha-key ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST separate-alpha-key track-type ( picture ) #REQUIRED> <!ELEMENT luminance-key ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST luminance-key track-type ( picture ) #REQUIRED> <!ELEMENT chroma-key ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST chroma-key track-type ( picture ) #REQUIRED> <!ELEMENT mono-audio-gain ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST mono-audio-gain track-type ( audio ) #REQUIRED> <!ELEMENT mono-audio-pan ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST mono-audio-pan track-type ( audio ) #REQUIRED> <!ELEMENT mono-audio-dissolve ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST mono-audio-dissolve track-type ( audio ) #REQUIRED> <!ELEMENT two-parameter-mono-audio-dissolve ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST two-parameter-mono-audio-dissolve track-type ( audio ) #REQUIRED> <!-- Mob Slots --> --- 157,278 ---- --> + <!ELEMENT operation-group ( %COMMENTS_AND_SEGMENTS; )> + <!ATTLIST operation-group + track-type ( %ESSENCE_TYPE; ) #REQUIRED + length CDATA #IMPLIED + operation-definition CDATA #REQUIRED> + <!ELEMENT video-dissolve ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST video-dissolve ! track-type ( picture ) #REQUIRED ! length CDATA #IMPLIED> <!ELEMENT smpte-video-wipe ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST smpte-video-wipe ! track-type ( picture ) #REQUIRED ! length CDATA #IMPLIED> ! <!ELEMENT video-speed-control ( %COMMENTS_AND_COMPONENTS;, ( constant-speed-ratio | varying-speed-ratio )?, %COMMENTS_AND_COMPONENTS; )> ! <!ATTLIST video-speed-control ! track-type ( picture ) #REQUIRED ! length CDATA #IMPLIED> ! <!ELEMENT constant-speed-ratio EMPTY> ! <!ATTLIST constant-speed-ratio numerator CDATA #REQUIRED denominator CDATA #REQUIRED > + <!ELEMENT varying-speed-ratio EMPTY> + <!ATTLIST varying-speed-ratio + numerator CDATA #REQUIRED + denominator CDATA #REQUIRED + interpolator ( b-spline | constant | linear | log | none | power ) #REQUIRED + > + <!ELEMENT video-repeat ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST video-repeat ! track-type ( picture ) #REQUIRED ! length CDATA #IMPLIED> <!ELEMENT video-flip ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST video-flip ! track-type ( picture ) #REQUIRED ! length CDATA #IMPLIED> <!ELEMENT video-flop ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST video-flop ! track-type ( picture ) #REQUIRED ! length CDATA #IMPLIED> <!ELEMENT video-flip-flop ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST video-flip-flop ! track-type ( picture ) #REQUIRED ! length CDATA #IMPLIED> <!ELEMENT video-position ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST video-position ! track-type ( picture ) #REQUIRED ! length CDATA #IMPLIED> <!ELEMENT video-crop ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST video-crop ! track-type ( picture ) #REQUIRED ! length CDATA #IMPLIED> <!ELEMENT video-scale ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST video-scale ! track-type ( picture ) #REQUIRED ! length CDATA #IMPLIED> <!ELEMENT video-rotate ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST video-rotate ! track-type ( picture ) #REQUIRED ! length CDATA #IMPLIED> <!ELEMENT video-corner-pinning ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST video-corner-pinning ! track-type ( picture ) #REQUIRED ! length CDATA #IMPLIED> <!ELEMENT alpha-with-video-key ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST alpha-with-video-key ! track-type ( picture ) #REQUIRED ! length CDATA #IMPLIED> <!ELEMENT separate-alpha-key ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST separate-alpha-key ! track-type ( picture ) #REQUIRED ! length CDATA #IMPLIED> <!ELEMENT luminance-key ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST luminance-key ! track-type ( picture ) #REQUIRED ! length CDATA #IMPLIED> <!ELEMENT chroma-key ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST chroma-key ! track-type ( picture ) #REQUIRED ! length CDATA #IMPLIED> <!ELEMENT mono-audio-gain ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST mono-audio-gain ! track-type ( audio ) #REQUIRED ! length CDATA #IMPLIED> <!ELEMENT mono-audio-pan ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST mono-audio-pan ! track-type ( audio ) #REQUIRED ! length CDATA #IMPLIED> <!ELEMENT mono-audio-dissolve ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST mono-audio-dissolve ! track-type ( audio ) #REQUIRED ! length CDATA #IMPLIED> <!ELEMENT two-parameter-mono-audio-dissolve ( %COMMENTS_AND_SEGMENTS; )> ! <!ATTLIST two-parameter-mono-audio-dissolve ! track-type ( audio ) #REQUIRED ! length CDATA #IMPLIED> <!-- Mob Slots --> Index: GNUmakefile =================================================================== RCS file: /cvsroot/aaf/AAF/Utilities/AAFAnalyzer/RegressionTest/TestFiles/GNUmakefile,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** GNUmakefile 24 Nov 2005 17:10:48 -0000 1.8 --- GNUmakefile 30 Nov 2005 16:49:10 -0000 1.9 *************** *** 101,106 **** env LD_LIBRARY_PATH=$(AAFSDKBINDIR):$(LD_LIBRARY_PATH) $(AAFSDKBINDIR)/BuildTestFile$(EXE) EPAnnotationTest.xml EPAnnotationTest.aaf env LD_LIBRARY_PATH=$(AAFSDKBINDIR):/usr/local/lib:$(LD_LIBRARY_PATH) $(AAFSDKBINDIR)/AAFAnalyzer$(EXE) EPAnnotationTest.aaf ../../Requirements/AAFRequirements.xml >> EPAnnotationTest.temp ! grep -A `expr \`expr \\\`wc -l EPAnnotationTest.temp | sed 's_\([0-9]*\).*_\1_'\\\`\` - \`expr \\\`grep -n "Name: Edit Protocol Annotation Test" EPAnnotationTest.temp | sed 's_\([0-9]*\).*_\1_'\\\`\`` "Name: Edit Protocol Annotation Test" EPAnnotationTest.temp >> EPAnnotationTest.results @echo "Comparing EPAnnotationTest Expected Results (EPAnnotationTest.expected) to Actual Results (EPAnnotationTest.results)" diff EPAnnotationTest.expected EPAnnotationTest.results @echo "End of Test" \ No newline at end of file --- 101,142 ---- env LD_LIBRARY_PATH=$(AAFSDKBINDIR):$(LD_LIBRARY_PATH) $(AAFSDKBINDIR)/BuildTestFile$(EXE) EPAnnotationTest.xml EPAnnotationTest.aaf env LD_LIBRARY_PATH=$(AAFSDKBINDIR):/usr/local/lib:$(LD_LIBRARY_PATH) $(AAFSDKBINDIR)/AAFAnalyzer$(EXE) EPAnnotationTest.aaf ../../Requirements/AAFRequirements.xml >> EPAnnotationTest.temp ! grep -A `expr \`expr \\\`grep -n "Name: Edit Protocol Definition Test" EPAnnotationTest.temp | sed 's_\([0-9]*\).*_\1_' \\\`\` - \`expr \\\`grep -n "Name: Edit Protocol Annotation Test" EPAnnotationTest.temp | sed 's_\([0-9]*\).*_\1_'\\\`\` - 1` "Name: Edit Protocol Annotation Test" EPAnnotationTest.temp >> EPAnnotationTest.results @echo "Comparing EPAnnotationTest Expected Results (EPAnnotationTest.expected) to Actual Results (EPAnnotationTest.results)" diff EPAnnotationTest.expected EPAnnotationTest.results + @echo "End of Test" + env LD_LIBRARY_PATH=$(AAFSDKBINDIR):$(LD_LIBRARY_PATH) $(AAFSDKBINDIR)/BuildTestFile$(EXE) EPAnnotationTest2.xml EPAnnotationTest2.aaf + env LD_LIBRARY_PATH=$(AAFSDKBINDIR):/usr/local/lib:$(LD_LIBRARY_PATH) $(AAFSDKBINDIR)/AAFAnalyzer$(EXE) EPAnnotationTest2.aaf ../../Requirements/AAFRequirements.xml >> EPAnnotationTest2.temp + grep -A `expr \`expr \\\`grep -n "Name: Edit Protocol Definition Test" EPAnnotationTest2.temp | sed 's_\([0-9]*\).*_\1_' \\\`\` - \`expr \\\`grep -n "Name: Edit Protocol Annotation Test" EPAnnotationTest2.temp | sed 's_\([0-9]*\).*_\1_'\\\`\` - 1` "Name: Edit Protocol Annotation Test" EPAnnotationTest2.temp >> EPAnnotationTest2.results + @echo "Comparing EPAnnotationTest 2 Expected Results (EPAnnotationTest2.expected) to Actual Results (EPAnnotationTest2.results)" + diff EPAnnotationTest2.expected EPAnnotationTest2.results + @echo "End of Test" + env LD_LIBRARY_PATH=$(AAFSDKBINDIR):$(LD_LIBRARY_PATH) $(AAFSDKBINDIR)/BuildTestFile$(EXE) EPDefinitionTest.xml EPDefinitionTest.aaf + env LD_LIBRARY_PATH=$(AAFSDKBINDIR):/usr/local/lib:$(LD_LIBRARY_PATH) $(AAFSDKBINDIR)/AAFAnalyzer$(EXE) EPDefinitionTest.aaf ../../Requirements/AAFRequirements.xml >> EPDefinitionTest.temp + grep -A `expr \`expr \\\`grep -n "Name: Edit Protocol Header Test" EPDefinitionTest.temp | sed 's_\([0-9]*\).*_\1_' \\\`\` - \`expr \\\`grep -n "Name: Edit Protocol Definition Test" EPDefinitionTest.temp | sed 's_\([0-9]*\).*_\1_'\\\`\` - 1` "Name: Edit Protocol Definition Test" EPDefinitionTest.temp >> EPDefinitionTest.results + @echo "Comparing EPDefinitionTest Expected Results (EPDefinitionTest.expected) to Actual Results (EPDefinitionTest.results)" + diff EPDefinitionTest.expected EPDefinitionTest.results + @echo "End of Test" + env LD_LIBRARY_PATH=$(AAFSDKBINDIR):$(LD_LIBRARY_PATH) $(AAFSDKBINDIR)/BuildTestFile$(EXE) EPHeaderTest1.xml EPHeaderTest1.aaf + env LD_LIBRARY_PATH=$(AAFSDKBINDIR):/usr/local/lib:$(LD_LIBRARY_PATH) $(AAFSDKBINDIR)/AAFAnalyzer$(EXE) EPHeaderTest1.aaf ../../Requirements/AAFRequirements.xml >> EPHeaderTest1.temp + grep -A `expr \`expr \\\`grep -n "Name: Edit Protocol Parameter Test" EPHeaderTest1.temp | sed 's_\([0-9]*\).*_\1_' \\\`\` - \`expr \\\`grep -n "Name: Edit Protocol Header Test" EPHeaderTest1.temp | sed 's_\([0-9]*\).*_\1_'\\\`\` - 1` "Name: Edit Protocol Header Test" EPHeaderTest1.temp >> EPHeaderTest1.results + @echo "Comparing EPHeaderTest 1 Expected Results (EPHeaderTest1.expected) to Actual Results (EPHeaderTest1.results)" + diff EPHeaderTest1.expected EPHeaderTest1.results + @echo "End of Test" + env LD_LIBRARY_PATH=$(AAFSDKBINDIR):$(LD_LIBRARY_PATH) $(AAFSDKBINDIR)/BuildTestFile$(EXE) EPHeaderTest2.xml EPHeaderTest2.aaf + env LD_LIBRARY_PATH=$(AAFSDKBINDIR):/usr/local/lib:$(LD_LIBRARY_PATH) $(AAFSDKBINDIR)/AAFAnalyzer$(EXE) EPHeaderTest2.aaf ../../Requirements/AAFRequirements.xml >> EPHeaderTest2.temp + grep -A `expr \`expr \\\`grep -n "Name: Edit Protocol Parameter Test" EPHeaderTest2.temp | sed 's_\([0-9]*\).*_\1_' \\\`\` - \`expr \\\`grep -n "Name: Edit Protocol Header Test" EPHeaderTest2.temp | sed 's_\([0-9]*\).*_\1_'\\\`\` - 1` "Name: Edit Protocol Header Test" EPHeaderTest2.temp >> EPHeaderTest2.results + @echo "Comparing EPHeaderTest 2 Expected Results (EPHeaderTest2.expected) to Actual Results (EPHeaderTest2.results)" + diff EPHeaderTest2.expected EPHeaderTest2.results + @echo "End of Test" + env LD_LIBRARY_PATH=$(AAFSDKBINDIR):$(LD_LIBRARY_PATH) $(AAFSDKBINDIR)/BuildTestFile$(EXE) EPHeaderTest3.xml EPHeaderTest3.aaf + env LD_LIBRARY_PATH=$(AAFSDKBINDIR):/usr/local/lib:$(LD_LIBRARY_PATH) $(AAFSDKBINDIR)/AAFAnalyzer$(EXE) EPHeaderTest3.aaf ../../Requirements/AAFRequirements.xml >> EPHeaderTest3.temp + grep -A `expr \`expr \\\`grep -n "Name: Edit Protocol Parameter Test" EPHeaderTest3.temp | sed 's_\([0-9]*\).*_\1_' \\\`\` - \`expr \\\`grep -n "Name: Edit Protocol Header Test" EPHeaderTest3.temp | sed 's_\([0-9]*\).*_\1_'\\\`\` - 1` "Name: Edit Protocol Header Test" EPHeaderTest3.temp >> EPHeaderTest3.results + @echo "Comparing EPHeaderTest 3 Expected Results (EPHeaderTest3.expected) to Actual Results (EPHeaderTest3.results)" + diff EPHeaderTest3.expected EPHeaderTest3.results + @echo "End of Test" + env LD_LIBRARY_PATH=$(AAFSDKBINDIR):$(LD_LIBRARY_PATH) $(AAFSDKBINDIR)/BuildTestFile$(EXE) EPParameterTest.xml EPParameterTest.aaf + env LD_LIBRARY_PATH=$(AAFSDKBINDIR):/usr/local/lib:$(LD_LIBRARY_PATH) $(AAFSDKBINDIR)/AAFAnalyzer$(EXE) EPParameterTest.aaf ../../Requirements/AAFRequirements.xml >> EPParameterTest.temp + grep -A `expr \`expr \\\`wc -l EPParameterTest.temp | sed 's_\([0-9]*\).*_\1_'\\\`\` - \`expr \\\`grep -n "Name: Edit Protocol Parameter Test" EPParameterTest.temp | sed 's_\([0-9]*\).*_\1_'\\\`\`` "Name: Edit Protocol Parameter Test" EPParameterTest.temp >> EPParameterTest.results + @echo "Comparing EPParameterTest Expected Results (EPParameterTest.expected) to Actual Results (EPParameterTest.results)" + diff EPParameterTest.expected EPParameterTest.results @echo "End of Test" \ No newline at end of file Index: InputParser.h =================================================================== RCS file: /cvsroot/aaf/AAF/Utilities/AAFAnalyzer/RegressionTest/TestFiles/InputParser.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** InputParser.h 24 Nov 2005 17:10:48 -0000 1.6 --- InputParser.h 30 Nov 2005 16:49:10 -0000 1.7 *************** *** 71,77 **** typedef shared_ptr<AxMob>(TestFileBuilder::*ptrToAddFunction)( const AxString& name, bool isNamed, aafRational_t rationalParam ); ! typedef shared_ptr<AxComponent>(TestFileBuilder::*ptrToCreateFunction)( TestFileBuilder::TrackType essenceType, const aafUID_t& uidParam ); typedef void(TestFileBuilder::*ptrToAttachSlotFunction)( AxMob& parent, AxSegment& axSegment, aafRational_t editRate, const AxString& name, bool isNamed, int physicalTrackNum, bool isNumbered ); ! typedef void(TestFileBuilder::*ptrToAttachParameterFunction)( AxOperationGroup& axOpGroup, const aafUID_t& paramDefId, aafUInt32 intParam1, aafUInt32 intParam2 ); //Components can be divided into 4 distinct classes based upon the types of --- 71,79 ---- typedef shared_ptr<AxMob>(TestFileBuilder::*ptrToAddFunction)( const AxString& name, bool isNamed, aafRational_t rationalParam ); ! typedef shared_ptr<AxComponent>(TestFileBuilder::*ptrToCreateFunction)( TestFileBuilder::TrackType essenceType, const AxString& strParam, aafLength_t length, bool hasLength ); typedef void(TestFileBuilder::*ptrToAttachSlotFunction)( AxMob& parent, AxSegment& axSegment, aafRational_t editRate, const AxString& name, bool isNamed, int physicalTrackNum, bool isNumbered ); ! typedef void(TestFileBuilder::*ptrToAttachParameterFunction)( AxOperationGroup& axOpGroup, const aafUID_t& paramDefId, aafUInt32 intParam1, aafUInt32 intParam2, const aafUID_t& interpolationDefId ); ! typedef void(TestFileBuilder::*ptrToCreateDefFunction)( const AxString& name, const AxString& description ); ! typedef void(TestFileBuilder::*ptrToAddAnnotationFunction)( shared_ptr<AxComponent> axComponent, const AxString& keyName, const AxString& value ); //Components can be divided into 4 distinct classes based upon the types of *************** *** 112,115 **** --- 114,118 ---- stack<SlotInfo> _slotStack; + map<AxString, ptrToCreateDefFunction> _definitionMap; map<AxString, ptrToAddFunction> _materialTypeMap; map<AxString, ptrToCreateFunction> _createSegmentMap; *************** *** 121,130 **** map<AxString, ptrToAttachParameterFunction> _attachParameterMap; map<AxString, TestFileBuilder::TrackType> _essenceMap; map<AxString, AxString> _optRationalParam; ! map<AxString, aafUID_t> _effectMap; map<AxString, aafUID_t> _parameterTypeMap; map<TypeDPair, int> _typeDPropertyMap; TestFileBuilder _testFile; --- 124,137 ---- map<AxString, ptrToAttachParameterFunction> _attachParameterMap; + map<AxString, ptrToAddAnnotationFunction> _annotationMap; map<AxString, TestFileBuilder::TrackType> _essenceMap; map<AxString, AxString> _optRationalParam; ! map<AxString, AxString> _effectMap; map<AxString, aafUID_t> _parameterTypeMap; + map<AxString, aafUID_t> _interpolationTypeMap; map<TypeDPair, int> _typeDPropertyMap; + map<AxString, aafUID_t> _operationalPatternMap; + map<AxString, AxString> _annotationIds; TestFileBuilder _testFile; --- NEW FILE: EPParameterTest.expected --- Name: Edit Protocol Parameter Test Desc: Verify that all parameters in the AAF file are valid. Result: Failed Reason: Test Failed - See "Edit Protocol Parameter Visitor" Visitor for details Passing Requirements: REQ_EP_174 Warning Requirements: None Failing Requirements: REQ_EP_175 Name: Edit Protocol Parameter Visitor Desc: Visit parameters and make sure they are valid. Result: Failed Reason: Passing Requirements: REQ_EP_174 Warning Requirements: None Failing Requirements: REQ_EP_175 Name: Edit Protocol Parameter Visitor Desc: - Result: Failed Reason: VaryingValue object in Mob slot with ID = 1 of Top-Level Composition: "None Interpolator" has an illegal interpolation definition (AUID = 5b6c85a3-0ede-11d3-80a9006008143e6f). Passing Requirements: None Warning Requirements: None Failing Requirements: REQ_EP_175 Index: EPEffectTest.expected =================================================================== RCS file: /cvsroot/aaf/AAF/Utilities/AAFAnalyzer/RegressionTest/TestFiles/EPEffectTest.expected,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** EPEffectTest.expected 21 Nov 2005 15:29:49 -0000 1.1 --- EPEffectTest.expected 30 Nov 2005 16:49:10 -0000 1.2 *************** *** 5,9 **** Passing Requirements: None Warning Requirements: None ! Failing Requirements: REQ_EP_180; REQ_EP_183; REQ_EP_186; REQ_EP_187; REQ_EP_190; REQ_EP_194; REQ_EP_197; REQ_EP_200; REQ_EP_203; REQ_EP_206; REQ_EP_209; REQ_EP_212; REQ_EP_215; REQ_EP_220; REQ_EP_225; REQ_EP_228; REQ_EP_231; REQ_EP_234; REQ_EP_240; REQ_EP_244; REQ_EP_247 Name: Edit Protocol Effect Visitor --- 5,9 ---- Passing Requirements: None Warning Requirements: None ! Failing Requirements: REQ_EP_180; REQ_EP_183; REQ_EP_186; REQ_EP_187; REQ_EP_190; REQ_EP_194; REQ_EP_197; REQ_EP_200; REQ_EP_203; REQ_EP_206; REQ_EP_209; REQ_EP_212; REQ_EP_215; REQ_EP_220; REQ_EP_225; REQ_EP_228; REQ_EP_231; REQ_EP_234; REQ_EP_240; REQ_EP_244; REQ_EP_247; REQ_EP_248; REQ_EP_249 Name: Edit Protocol Effect Visitor *************** *** 13,17 **** Passing Requirements: None Warning Requirements: None ! Failing Requirements: REQ_EP_180; REQ_EP_183; REQ_EP_186; REQ_EP_187; REQ_EP_190; REQ_EP_194; REQ_EP_197; REQ_EP_200; REQ_EP_203; REQ_EP_206; REQ_EP_209; REQ_EP_212; REQ_EP_215; REQ_EP_220; REQ_EP_225; REQ_EP_228; REQ_EP_231; REQ_EP_234; REQ_EP_240; REQ_EP_244; REQ_EP_247 Name: Edit Protocol Effect Visitor --- 13,17 ---- Passing Requirements: None Warning Requirements: None ! Failing Requirements: REQ_EP_180; REQ_EP_183; REQ_EP_186; REQ_EP_187; REQ_EP_190; REQ_EP_194; REQ_EP_197; REQ_EP_200; REQ_EP_203; REQ_EP_206; REQ_EP_209; REQ_EP_212; REQ_EP_215; REQ_EP_220; REQ_EP_225; REQ_EP_228; REQ_EP_231; REQ_EP_234; REQ_EP_240; REQ_EP_244; REQ_EP_247; REQ_EP_248; REQ_EP_249 Name: Edit Protocol Effect Visitor *************** *** 50,53 **** --- 50,69 ---- Desc: - Result: Failed + Reason: Two-Parameter Audio Dissolve Effect in Mob slot with ID = 1 of Top-Level Composition: "Two Parameter Mobo Audio Dissolve not in Transition" is not within a Transition object. + Passing Requirements: None + Warning Requirements: None + Failing Requirements: REQ_EP_248 + + Name: Edit Protocol Effect Visitor + Desc: - + Result: Failed + Reason: Two-Parameter Audio Dissolve Effect in Mob slot with ID = 1 of Top-Level Composition: "Two Parameter Mobo Audio Dissolve not in Transition" is not within a Transition object. + Passing Requirements: None + Warning Requirements: None + Failing Requirements: REQ_EP_249 + + Name: Edit Protocol Effect Visitor + Desc: - + Result: Failed Reason: Video Speed Control Effect in Mob slot with ID = 1 of Top-Level Composition: "Video Speed Control child of Transition" is within a Transition object. Passing Requirements: None *************** *** 209,212 **** --- 225,244 ---- Name: Edit Protocol Effect Visitor Desc: - + Result: Failed + Reason: Two-Parameter Audio Dissolve Effect in Mob slot with ID = 1 of Top-Level Composition: "Two Parameter Mobo Audio Dissolve grandchild of Transition" is not within a Transition object. + Passing Requirements: None + Warning Requirements: None + Failing Requirements: REQ_EP_248 + + Name: Edit Protocol Effect Visitor + Desc: - + Result: Failed + Reason: Two-Parameter Audio Dissolve Effect in Mob slot with ID = 1 of Top-Level Composition: "Two Parameter Mobo Audio Dissolve grandchild of Transition" is not within a Transition object. + Passing Requirements: None + Warning Requirements: None + Failing Requirements: REQ_EP_249 + + Name: Edit Protocol Effect Visitor + Desc: - Result: Passed, but with warnings. Reason: Video Speed Control Effect in Mob slot with ID = 1 of Top-Level Composition: "Speed Ratio Zero Denominator" has a Speed Ratio parameter with a 0 denominator (1/0). *************** *** 231,232 **** --- 263,288 ---- Failing Requirements: REQ_EP_187 + Name: Edit Protocol Effect Visitor + Desc: - + Result: Failed + Reason: Video Speed Control Effect in Mob slot with ID = 1 of Top-Level Composition: "Varying Speed Ration" has a Speed Ratio parameter that is not constant + Passing Requirements: None + Warning Requirements: None + Failing Requirements: REQ_EP_187 + + Name: Edit Protocol Effect Visitor + Desc: - + Result: Failed + Reason: Two-Parameter Audio Dissolve Effect in Mob slot with ID = 1 of Top-Level Composition: "Two-Parameter Mono Audio Dissolve - No Incoming Segment" does not have an incoming segment. + Passing Requirements: None + Warning Requirements: None + Failing Requirements: REQ_EP_248 + + Name: Edit Protocol Effect Visitor + Desc: - + Result: Failed + Reason: Two-Parameter Audio Dissolve Effect in Mob slot with ID = 1 of Top-Level Composition: "Two-Parameter Mono Audio Dissolve - No Incoming Segment" does not have an incoming segment. + Passing Requirements: None + Warning Requirements: None + Failing Requirements: REQ_EP_249 + Index: InputParserGen.sh =================================================================== RCS file: /cvsroot/aaf/AAF/Utilities/AAFAnalyzer/RegressionTest/TestFiles/InputParserGen.sh,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** InputParserGen.sh 24 Nov 2005 17:10:48 -0000 1.1 --- InputParserGen.sh 30 Nov 2005 16:49:10 -0000 1.2 *************** *** 45,49 **** for compparams in $NON_OG_COMPONENT_PARAMS do ! echo ' _effectMap[L"'$compparams'"] = kAAFOperationDef_Unknown;' >&4 done --- 45,49 ---- for compparams in $NON_OG_COMPONENT_PARAMS do ! echo ' _effectMap[L"'$compparams'"] = L"";' >&4 done --- NEW FILE: EPHeaderTest3.xml --- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE aaf-file SYSTEM "EPDerivationChain.dtd"> <aaf-file operational-pattern="invalid"> <!-- Make sure the file is not empty --> <top-level name="Invalid Header"> <timeline-mob-slot edit-rate-denominator="1" edit-rate-numerator="1"> <eoc track-type="none"/> </timeline-mob-slot> </top-level> </aaf-file> --- NEW FILE: EPAnnotationTest2.expected --- Name: Edit Protocol Annotation Test Desc: Verify that all annotations in an AAF file are legal. Result: Failed Reason: Test Failed - See "Edit Protocol Annotation Visitor" Visitor for details Passing Requirements: None Warning Requirements: None Failing Requirements: REQ_EP_147; REQ_EP_149; REQ_EP_150; REQ_EP_151; REQ_EP_152 Name: Edit Protocol Annotation Visitor Desc: Visit components to make sure they do not have illegal annotations. Result: Failed Reason: Passing Requirements: None Warning Requirements: None Failing Requirements: REQ_EP_147; REQ_EP_149; REQ_EP_150; REQ_EP_151; REQ_EP_152 Name: Edit Protocol Annotation Visitor Desc: - Result: Failed Reason: Mob slot with ID = 1 of Top-Level Composition: "Illegal User Comments" contains a Component that illegally uses the Component::UserComments property. Passing Requirements: None Warning Requirements: None Failing Requirements: REQ_EP_147 Name: Edit Protocol Annotation Visitor Desc: - Result: Failed Reason: Mob slot with ID = 1 of Top-Level Composition: "CommentMarker in Essence Track" is an essence track and uses CommentMarkers for annotations. Passing Requirements: None Warning Requirements: None Failing Requirements: REQ_EP_149 Name: Edit Protocol Annotation Visitor Desc: - Result: Failed Reason: Mob slot with ID = 1 of Top-Level Composition: "CommentMarker nested in Timeline Mob Slot" is not an Event Mob Slot but contains a CommentMarker. Passing Requirements: None Warning Requirements: None Failing Requirements: REQ_EP_150 Name: Edit Protocol Annotation Visitor Desc: - Result: Failed Reason: Mob slot with ID = 1 of Top-Level Composition: "CommentMarker in Timeline Mob Slot" is not an Event Mob Slot but contains a CommentMarker. Passing Requirements: None Warning Requirements: None Failing Requirements: REQ_EP_150 Name: Edit Protocol Annotation Visitor Desc: - Result: Failed Reason: Mob slot with ID = 1 of Top-Level Composition: "CommentMarker nested in Static Mob Slot" is not an Event Mob Slot but contains a CommentMarker. Passing Requirements: None Warning Requirements: None Failing Requirements: REQ_EP_150 Name: Edit Protocol Annotation Visitor Desc: - Result: Failed Reason: Mob slot with ID = 1 of Top-Level Composition: "CommentMarker in Static Mob Slot" is not an Event Mob Slot but contains a CommentMarker. Passing Requirements: None Warning Requirements: None Failing Requirements: REQ_EP_150 Name: Edit Protocol Annotation Visitor Desc: - Result: Failed Reason: TaggedValue "Test Case 1" is not documented in the dictionary. Passing Requirements: None Warning Requirements: None Failing Requirements: REQ_EP_151 Name: Edit Protocol Annotation Visitor Desc: - Result: Failed Reason: TaggedValue "Test Case 2" is not documented in the dictionary. Passing Requirements: None Warning Requirements: None Failing Requirements: REQ_EP_151 Name: Edit Protocol Annotation Visitor Desc: - Result: Failed Reason: KLVData with key 00000012-0012-0012-1212121212121212 is not documented in the dictionary. Passing Requirements: None Warning Requirements: None Failing Requirements: REQ_EP_152 Index: TestFileBuilder.cpp =================================================================== RCS file: /cvsroot/aaf/AAF/Utilities/AAFAnalyzer/RegressionTest/TestFiles/TestFileBuilder.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** TestFileBuilder.cpp 24 Nov 2005 17:10:48 -0000 1.8 --- TestFileBuilder.cpp 30 Nov 2005 16:49:10 -0000 1.9 *************** *** 29,33 **** #include <AxDefObject.h> #include <AxComponent.h> - #include <AxIterator.h> #include <AxMobSlot.h> #include <AxEssence.h> --- 29,32 ---- *************** *** 37,40 **** --- 36,40 ---- #include <AxMetaDef.h> [...973 lines suppressed...] + L"None" + ); + } + else if ( interpolationDefId == kAAFInterpolationDef_Power ) + { + axIntDef.Initialize( + interpolationDefId, + L"Power", + L"Power" + ); + } + + axDictionary.RegisterInterpolationDef( axIntDef ); + } + shared_ptr<AxInterpolationDef> spIntDef( new AxInterpolationDef( axDictionary.LookupInterpolationDef( interpolationDefId ) ) ); + + return spIntDef; + } + } // end of namespace diskstream --- NEW FILE: EPHeaderTest2.expected --- Name: Edit Protocol Header Test Desc: Verify the AAF file header is valid. Result: Failed Reason: Test Failed - See "Edit Protocol Header Visitor" Visitor for details Passing Requirements: None Warning Requirements: None Failing Requirements: REQ_EP_255 Name: Edit Protocol Header Visitor Desc: Visit the AAF File Header and verify it meets the Edit Protocol requirements. Result: Failed Reason: Header::OperationalPattern property is not present. Passing Requirements: None Warning Requirements: None Failing Requirements: REQ_EP_255 --- NEW FILE: EPHeaderTest2.xml --- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE aaf-file SYSTEM "EPDerivationChain.dtd"> <aaf-file> <!-- Make sure the file is not empty --> <top-level name="Missing OperationalDefinition"> <timeline-mob-slot edit-rate-denominator="1" edit-rate-numerator="1"> <eoc track-type="none"/> </timeline-mob-slot> </top-level> </aaf-file> Index: InputParser.cpp.gen =================================================================== RCS file: /cvsroot/aaf/AAF/Utilities/AAFAnalyzer/RegressionTest/TestFiles/InputParser.cpp.gen,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** InputParser.cpp.gen 24 Nov 2005 17:10:48 -0000 1.1 --- InputParser.cpp.gen 30 Nov 2005 16:49:10 -0000 1.2 *************** *** 47,50 **** --- 47,51 ---- _typeDPropertyMap[TypeDPair( L"video-dissolve", L"comment-marker" )] = TestFileBuilder::INPUT_SEGMENT; _typeDPropertyMap[TypeDPair( L"video-dissolve", L"descriptive-marker" )] = TestFileBuilder::INPUT_SEGMENT; + _typeDPropertyMap[TypeDPair( L"video-dissolve", L"operation-group" )] = TestFileBuilder::INPUT_SEGMENT; _typeDPropertyMap[TypeDPair( L"video-dissolve", L"source-clip" )] = TestFileBuilder::INPUT_SEGMENT; _typeDPropertyMap[TypeDPair( L"video-dissolve", L"eoc" )] = TestFileBuilder::INPUT_SEGMENT; *************** *** 77,80 **** --- 78,82 ---- _typeDPropertyMap[TypeDPair( L"smpte-video-wipe", L"comment-marker" )] = TestFileBuilder::INPUT_SEGMENT; _typeDPropertyMap[TypeDPair( L"smpte-video-wipe", L"descriptive-marker" )] = TestFileBuilder::INPUT_SEGMENT; + _typeDPropertyMap[TypeDPair( L"smpte-video-wipe", L"operation-group" )] = TestFileBuilder::INPUT_SEGMENT; _typeDPropertyMap[TypeDPair( L"smpte-video-wipe", L"source-clip" )] = TestFileBuilder::INPUT_SEGMENT; _typeDPropertyMap[TypeDPair( L"smpte-video-wipe", L"eoc" )] = TestFileBuilder::INPUT_SEGMENT; *************** *** 107,110 **** --- 109,113 ---- _typeDPropertyMap[TypeDPair( L"video-speed-control", L"comment-mark... [truncated message content] |