From: Steve Lhomme Date: Sun, 16 Oct 2022 07:54:53 +0000 (+0200) Subject: fix test8 compilation X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a6e17d08cc04bdea40c00b8de4e8675e4d7404a9;p=libmatroska fix test8 compilation --- diff --git a/test/mux/test8.cpp b/test/mux/test8.cpp index 6c4f4c5..a84daea 100644 --- a/test/mux/test8.cpp +++ b/test/mux/test8.cpp @@ -81,13 +81,13 @@ int main(int argc, char **argv) /// MuxedFile.ReadHead(); // find the EBML head in the file - ElementLevel0 = aStream.FindNextID(EbmlHead::ClassInfos, 0xFFFFFFFFL); + ElementLevel0 = aStream.FindNextID(EBML_INFO(EbmlHead), 0xFFFFFFFFL); if (ElementLevel0 != NULL) { printf("EBML : "); - for (unsigned int i=0; i> (8*(3-i))) & 0xFF); + printf("[%02X]", (EbmlId(*ElementLevel0).GetValue() >> ((i-1)*8)) & 0xFF); } printf("\n"); @@ -109,15 +109,15 @@ int main(int argc, char **argv) std::uint64_t TimecodeScale = 1000000; // find the segment to read - ElementLevel0 = aStream.FindNextID(KaxSegment::ClassInfos, 0xFFFFFFFFL); + ElementLevel0 = aStream.FindNextID(EBML_INFO(KaxSegment), 0xFFFFFFFFL); if (ElementLevel0 != NULL) { - if (EbmlId(*ElementLevel0) == KaxSegment::ClassInfos.GlobalId) { + if (EbmlId(*ElementLevel0) == EBML_ID(KaxSegment)) { Segment = static_cast(ElementLevel0); // MuxedFile.ReadTracks(); // MuxedFile.ReadCodec(); // scan the file for a Tracks element (all previous Level1 elements are discarded) - ElementLevel1 = aStream.FindNextElement(ElementLevel0->Generic().Context, UpperElementLevel, 0, bAllowDummy); + ElementLevel1 = aStream.FindNextElement(EBML_CONTEXT(ElementLevel0), UpperElementLevel, 0, bAllowDummy); while (ElementLevel1 != NULL) { if (UpperElementLevel > 0) { @@ -128,14 +128,14 @@ int main(int argc, char **argv) } /// \todo switch the type of the element to check if it's one we want to handle, like attachements - if (EbmlId(*ElementLevel1) == EbmlVoid::ClassInfos.GlobalId) { + if (EbmlId(*ElementLevel1) == EBML_ID(EbmlVoid)) { printf("\n- Void found\n"); - } else if (EbmlId(*ElementLevel1) == KaxTracks::ClassInfos.GlobalId) { + } else if (EbmlId(*ElementLevel1) == EBML_ID(KaxTracks)) { // found the Tracks element printf("\n- Segment Tracks found\n"); // handle the data in Tracks here. // poll for new tracks and handle them - ElementLevel2 = aStream.FindNextElement(ElementLevel1->Generic().Context, UpperElementLevel, 0, bAllowDummy); + ElementLevel2 = aStream.FindNextElement(EBML_CONTEXT(ElementLevel1), UpperElementLevel, 0, bAllowDummy); while (ElementLevel2 != NULL) { if (UpperElementLevel > 0) { @@ -145,10 +145,10 @@ int main(int argc, char **argv) UpperElementLevel = 0; } /// \todo switch the type of the element to check if it's one we want to handle, like attachements - if (EbmlId(*ElementLevel2) == KaxTrackEntry::ClassInfos.GlobalId) { + if (EbmlId(*ElementLevel2) == EBML_ID(KaxTrackEntry)) { printf("* Found a track\n"); - ElementLevel3 = aStream.FindNextElement(ElementLevel2->Generic().Context, UpperElementLevel, 0, bAllowDummy); + ElementLevel3 = aStream.FindNextElement(EBML_CONTEXT(ElementLevel2), UpperElementLevel, 0, bAllowDummy); while (ElementLevel3 != NULL) { if (UpperElementLevel > 0) { break; @@ -158,14 +158,14 @@ int main(int argc, char **argv) } // read the data we care about in a track // Track number - if (EbmlId(*ElementLevel3) == KaxTrackNumber::ClassInfos.GlobalId) { + if (EbmlId(*ElementLevel3) == EBML_ID(KaxTrackNumber)) { KaxTrackNumber & TrackNum = *static_cast(ElementLevel3); TrackNum.ReadData(aStream.I_O()); printf("Track # %d\n", std::uint8_t(TrackNum)); } // Track type - else if (EbmlId(*ElementLevel3) == KaxTrackType::ClassInfos.GlobalId) { + else if (EbmlId(*ElementLevel3) == EBML_ID(KaxTrackType)) { KaxTrackType & TrackType = *static_cast(ElementLevel3); TrackType.ReadData(aStream.I_O()); printf("Track type : "); @@ -187,10 +187,10 @@ int main(int argc, char **argv) printf("\n"); } - else if (EbmlId(*ElementLevel3) == KaxTrackFlagLacing::ClassInfos.GlobalId) { + else if (EbmlId(*ElementLevel3) == EBML_ID(KaxTrackFlagLacing)) { printf("Flag Lacing\n"); } - else if (EbmlId(*ElementLevel3) == KaxCodecID::ClassInfos.GlobalId) { + else if (EbmlId(*ElementLevel3) == EBML_ID(KaxCodecID)) { KaxCodecID & CodecID = *static_cast(ElementLevel3); CodecID.ReadData(aStream.I_O()); printf("Codec ID : %s\n", string(CodecID).c_str()); @@ -204,10 +204,10 @@ int main(int argc, char **argv) if (UpperElementLevel > 0) break; } else { - ElementLevel3->SkipData(aStream, ElementLevel3->Generic().Context); + ElementLevel3->SkipData(aStream, EBML_CONTEXT(ElementLevel3)); delete ElementLevel3; - ElementLevel3 = aStream.FindNextElement(ElementLevel2->Generic().Context, UpperElementLevel, 0, bAllowDummy); + ElementLevel3 = aStream.FindNextElement(EBML_CONTEXT(ElementLevel2), UpperElementLevel, 0, bAllowDummy); } } } @@ -218,15 +218,15 @@ int main(int argc, char **argv) if (UpperElementLevel > 0) break; } else { - ElementLevel2->SkipData(aStream, ElementLevel2->Generic().Context); + ElementLevel2->SkipData(aStream, EBML_CONTEXT(ElementLevel2)); delete ElementLevel2; - ElementLevel2 = aStream.FindNextElement(ElementLevel1->Generic().Context, UpperElementLevel, 0, bAllowDummy); + ElementLevel2 = aStream.FindNextElement(EBML_CONTEXT(ElementLevel1), UpperElementLevel, 0, bAllowDummy); } } } - else if (EbmlId(*ElementLevel1) == KaxInfo::ClassInfos.GlobalId) { + else if (EbmlId(*ElementLevel1) == EBML_ID(KaxInfo)) { printf("\n- Segment Informations found\n"); SegmentInfo = static_cast(ElementLevel1); @@ -235,12 +235,12 @@ int main(int argc, char **argv) aStream.I_O().setFilePointer(79, seek_current); printf("Seeked at position 0x%X in the file", aStream.I_O().getFilePointer()); int LowLevel = 1; - ElementLevel2 = aStream.FindNextElement(KaxSegment::ClassInfos.Context, LowLevel, 0, false); // search up to one level lower + ElementLevel2 = aStream.FindNextElement(EBML_CLASS_CONTEXT(KaxSegment), LowLevel, 0, false); // search up to one level lower UpperElementLevel = LowLevel; #else // JUMP_TEST // read the data we care about in matroska /// \todo There should be a way to get the default values of the elements not defined - ElementLevel2 = aStream.FindNextElement(ElementLevel1->Generic().Context, UpperElementLevel, 0, bAllowDummy); + ElementLevel2 = aStream.FindNextElement(EBML_CONTEXT(ElementLevel1), UpperElementLevel, 0, bAllowDummy); while (ElementLevel2 != NULL) { if (UpperElementLevel > 0) { break; @@ -248,18 +248,18 @@ int main(int argc, char **argv) if (UpperElementLevel < 0) { UpperElementLevel = 0; } - if (EbmlId(*ElementLevel2) == KaxTimecodeScale::ClassInfos.GlobalId) { + if (EbmlId(*ElementLevel2) == EBML_ID(KaxTimecodeScale)) { KaxTimecodeScale *TimeScale = static_cast(ElementLevel2); TimeScale->ReadData(aStream.I_O()); printf("Timecode Scale %d\n", std::uint32_t(*TimeScale)); TimecodeScale = std::uint64_t(*TimeScale); - } else if (EbmlId(*ElementLevel2) == KaxDuration::ClassInfos.GlobalId) { + } else if (EbmlId(*ElementLevel2) == EBML_ID(KaxDuration)) { printf("Segment duration\n"); - } else if (EbmlId(*ElementLevel2) == KaxDateUTC::ClassInfos.GlobalId) { + } else if (EbmlId(*ElementLevel2) == EBML_ID(KaxDateUTC)) { printf("Date UTC\n"); - } else if (EbmlId(*ElementLevel2) == KaxTitle::ClassInfos.GlobalId) { + } else if (EbmlId(*ElementLevel2) == EBML_ID(KaxTitle)) { printf("Title\n"); - } else if (EbmlId(*ElementLevel2) == KaxMuxingApp::ClassInfos.GlobalId) { + } else if (EbmlId(*ElementLevel2) == EBML_ID(KaxMuxingApp)) { KaxMuxingApp *pApp = static_cast(ElementLevel2); pApp->ReadData(aStream.I_O()); #if !defined(__CYGWIN__) && !defined(__APPLE__) && !defined(__BEOS__) && !defined(__NetBSD__) @@ -267,7 +267,7 @@ int main(int argc, char **argv) #else printf("Muxing App : %s\n", UTFstring(*pApp).c_str()); #endif - } else if (EbmlId(*ElementLevel2) == KaxWritingApp::ClassInfos.GlobalId) { + } else if (EbmlId(*ElementLevel2) == EBML_ID(KaxWritingApp)) { KaxWritingApp *pApp = static_cast(ElementLevel2); pApp->ReadData(aStream.I_O()); #if !defined(__CYGWIN__) && !defined(__APPLE__) && !defined(__BEOS__) && !defined(__NetBSD__) @@ -284,16 +284,16 @@ int main(int argc, char **argv) if (UpperElementLevel > 0) break; } else { - ElementLevel2->SkipData(aStream, ElementLevel2->Generic().Context); + ElementLevel2->SkipData(aStream, EBML_CONTEXT(ElementLevel2)); delete ElementLevel2; - ElementLevel2 = aStream.FindNextElement(ElementLevel1->Generic().Context, UpperElementLevel, 0, bAllowDummy); + ElementLevel2 = aStream.FindNextElement(EBML_CONTEXT(ElementLevel1), UpperElementLevel, 0, bAllowDummy); } } #endif // JUMP_TEST } - else if (EbmlId(*ElementLevel1) == KaxCluster::ClassInfos.GlobalId) { + else if (EbmlId(*ElementLevel1) == EBML_ID(KaxCluster)) { printf("\n- Segment Clusters found\n"); SegmentCluster = static_cast(ElementLevel1); // SegmentCluster->ClearElement(); @@ -303,7 +303,7 @@ int main(int argc, char **argv) std::uint64_t CrcPositionStart = 0; #ifdef MEMORY_READ // read the Cluster in memory and then extract elements from memory - SegmentCluster->Read(aStream, KaxCluster::ClassInfos.Context, UpperElementLevel, ElementLevel2, bAllowDummy); + SegmentCluster->Read(aStream, EBML_CLASS_CONTEXT(KaxCluster), UpperElementLevel, ElementLevel2, bAllowDummy); if (SegmentCluster->CheckMandatory()) { printf(" * All mandatory elements found *\n"); } else { @@ -313,11 +313,11 @@ int main(int argc, char **argv) // display the elements read unsigned int Index0; for (Index0 = 0; Index0ListSize() ;Index0++) { - printf(" - found %s\n", (*SegmentCluster)[Index0]->Generic().DebugName); + printf(" - found %s\n", EBML_NAME((*SegmentCluster)[Index0])); } #else // not MEMORY_READ // read blocks and discard the ones we don't care about - ElementLevel2 = aStream.FindNextElement(ElementLevel1->Generic().Context, UpperElementLevel, 0, bAllowDummy); + ElementLevel2 = aStream.FindNextElement(EBML_CONTEXT(ElementLevel1), UpperElementLevel, 0, bAllowDummy); while (ElementLevel2 != NULL) { if (UpperElementLevel > 0) { break; @@ -325,21 +325,21 @@ int main(int argc, char **argv) if (UpperElementLevel < 0) { UpperElementLevel = 0; } - if (EbmlId(*ElementLevel2) == KaxClusterTimecode::ClassInfos.GlobalId) { + if (EbmlId(*ElementLevel2) == EBML_ID(KaxClusterTimecode)) { printf("Cluster timecode found\n"); KaxClusterTimecode & ClusterTime = *static_cast(ElementLevel2); ClusterTime.ReadData(aStream.I_O()); ClusterTimecode = std::uint32_t(ClusterTime); SegmentCluster->InitTimecode(ClusterTimecode, TimecodeScale); - } else if (EbmlId(*ElementLevel2) == KaxBlockGroup::ClassInfos.GlobalId) { + } else if (EbmlId(*ElementLevel2) == EBML_ID(KaxBlockGroup)) { printf("Block Group found\n"); #ifdef TEST_BLOCKGROUP_READ KaxBlockGroup & aBlockGroup = *static_cast(ElementLevel2); // aBlockGroup.ClearElement(); // Extract the valuable data from the Block - aBlockGroup.Read(aStream, KaxBlockGroup::ClassInfos.Context, UpperElementLevel, ElementLevel3, bAllowDummy); - KaxBlock * DataBlock = static_cast(aBlockGroup.FindElt(KaxBlock::ClassInfos)); + aBlockGroup.Read(aStream, EBML_CLASS_CONTEXT(KaxBlockGroup), UpperElementLevel, ElementLevel3, bAllowDummy); + KaxBlock * DataBlock = static_cast(aBlockGroup.FindElt(EBML_INFO(KaxBlock))); if (DataBlock != NULL) { // DataBlock->ReadData(aStream.I_O()); DataBlock->SetParent(*SegmentCluster); @@ -347,18 +347,18 @@ int main(int argc, char **argv) } else { printf(" A BlockGroup without a Block !!!"); } - KaxBlockDuration * BlockDuration = static_cast(aBlockGroup.FindElt(KaxBlockDuration::ClassInfos)); + KaxBlockDuration * BlockDuration = static_cast(aBlockGroup.FindElt(EBML_INFO(KaxBlockDuration))); if (BlockDuration != NULL) { printf(" Block Duration %d scaled ticks : %ld ns\n", std::uint32_t(*BlockDuration), std::uint32_t(*BlockDuration) * TimecodeScale); } - KaxReferenceBlock * RefTime = static_cast(aBlockGroup.FindElt(KaxReferenceBlock::ClassInfos)); + KaxReferenceBlock * RefTime = static_cast(aBlockGroup.FindElt(EBML_INFO(KaxReferenceBlock))); if (RefTime != NULL) { printf(" Reference frame at scaled (%d) timecode %ld\n", std::int32_t(*RefTime), std::int32_t(std::int64_t(*RefTime) * TimecodeScale)); } #else // TEST_BLOCKGROUP_READ // read the data we care about in matroska /// \todo There should be a way to get the default values of the elements not defined - ElementLevel3 = aStream.FindNextElement(ElementLevel2->Generic().Context, UpperElementLevel, 0, bAllowDummy); + ElementLevel3 = aStream.FindNextElement(EBML_CONTEXT(ElementLevel2), UpperElementLevel, 0, bAllowDummy); while (ElementLevel3 != NULL) { if (UpperElementLevel > 0) { break; @@ -366,7 +366,7 @@ int main(int argc, char **argv) if (UpperElementLevel < 0) { UpperElementLevel = 0; } - if (EbmlId(*ElementLevel3) == KaxBlock::ClassInfos.GlobalId) { + if (EbmlId(*ElementLevel3) == EBML_ID(KaxBlock)) { printf(" Block Data\n"); KaxBlock & DataBlock = *static_cast(ElementLevel3); #ifdef NO_DISPLAY_DATA @@ -382,17 +382,17 @@ int main(int argc, char **argv) } #endif // NO_DISPLAY_DATA // printf("Codec ID : %s\n", &binary(CodecID)); // strings for the moment (example) - } else if (EbmlId(*ElementLevel3) == KaxBlockVirtual::ClassInfos.GlobalId) { + } else if (EbmlId(*ElementLevel3) == EBML_ID(KaxBlockVirtual)) { printf(" Virtual Block\n"); - } else if (EbmlId(*ElementLevel3) == KaxReferenceVirtual::ClassInfos.GlobalId) { + } else if (EbmlId(*ElementLevel3) == EBML_ID(KaxReferenceVirtual)) { printf(" virtual Reference\n"); - } else if (EbmlId(*ElementLevel3) == KaxReferencePriority::ClassInfos.GlobalId) { + } else if (EbmlId(*ElementLevel3) == EBML_ID(KaxReferencePriority)) { printf(" Reference priority\n"); - } else if (EbmlId(*ElementLevel3) == KaxReferenceBlock::ClassInfos.GlobalId) { + } else if (EbmlId(*ElementLevel3) == EBML_ID(KaxReferenceBlock)) { KaxReferenceBlock & RefTime = *static_cast(ElementLevel3); RefTime.ReadData(aStream.I_O()); printf(" Reference frame at scaled (%d) timecode %ld\n", std::int32_t(RefTime), std::int32_t(std::int64_t(RefTime) * TimecodeScale)); - } else if (EbmlId(*ElementLevel3) == KaxBlockDuration::ClassInfos.GlobalId) { + } else if (EbmlId(*ElementLevel3) == EBML_ID(KaxBlockDuration)) { KaxBlockDuration & BlockDuration = *static_cast(ElementLevel3); BlockDuration.ReadData(aStream.I_O()); printf(" Block Duration %d scaled ticks : %ld ns\n", std::uint32_t(BlockDuration), std::uint32_t(BlockDuration) * TimecodeScale); @@ -404,13 +404,13 @@ int main(int argc, char **argv) if (UpperElementLevel > 0) break; } else { - ElementLevel3->SkipData(aStream, ElementLevel3->Generic().Context); + ElementLevel3->SkipData(aStream, EBML_CONTEXT(ElementLevel3)); - ElementLevel3 = aStream.FindNextElement(ElementLevel2->Generic().Context, UpperElementLevel, 0, bAllowDummy); + ElementLevel3 = aStream.FindNextElement(EBML_CONTEXT(ElementLevel2), UpperElementLevel, 0, bAllowDummy); } } #endif // TEST_BLOCKGROUP_READ - } else if (EbmlId(*ElementLevel2) == EbmlCrc32::ClassInfos.GlobalId) { + } else if (EbmlId(*ElementLevel2) == EBML_ID(EbmlCrc32)) { printf("Cluster CheckSum !\n"); pChecksum = static_cast(ElementLevel2); pChecksum->ReadData(aStream.I_O()); @@ -426,11 +426,11 @@ int main(int argc, char **argv) if (UpperElementLevel > 0) break; } else { - ElementLevel2->SkipData(aStream, ElementLevel2->Generic().Context); + ElementLevel2->SkipData(aStream, EBML_CONTEXT(ElementLevel2)); if (ElementLevel2 != pChecksum) delete ElementLevel2; - ElementLevel2 = aStream.FindNextElement(ElementLevel1->Generic().Context, UpperElementLevel, 0, bAllowDummy); + ElementLevel2 = aStream.FindNextElement(EBML_CONTEXT(ElementLevel1), UpperElementLevel, 0, bAllowDummy); } } #endif // not MEMORY_READ @@ -453,12 +453,12 @@ int main(int argc, char **argv) pChecksum = NULL; } } - else if (EbmlId(*ElementLevel1) == KaxCues::ClassInfos.GlobalId) { + else if (EbmlId(*ElementLevel1) == EBML_ID(KaxCues)) { printf("\n- Cue entries found\n"); CuesEntry = static_cast(ElementLevel1); CuesEntry->SetGlobalTimecodeScale(TimecodeScale); // read everything in memory - CuesEntry->Read(aStream, KaxCues::ClassInfos.Context, UpperElementLevel, ElementLevel2, bAllowDummy); // build the entries in memory + CuesEntry->Read(aStream, EBML_CLASS_CONTEXT(KaxCues), UpperElementLevel, ElementLevel2, bAllowDummy); // build the entries in memory if (CuesEntry->CheckMandatory()) { printf(" * All mandatory elements found *\n"); } else { @@ -468,61 +468,61 @@ int main(int argc, char **argv) // display the elements read unsigned int Index0; for (Index0 = 0; Index0ListSize() ;Index0++) { - if ((*CuesEntry)[Index0]->Generic().GlobalId == KaxCuePoint::ClassInfos.GlobalId) { + if (EbmlId(*(*CuesEntry)[Index0]) == EBML_ID(KaxCuePoint)) { printf(" Cue Point\n"); KaxCuePoint & CuePoint = *static_cast((*CuesEntry)[Index0]); unsigned int Index1; for (Index1 = 0; Index1Generic().GlobalId == KaxCueTime::ClassInfos.GlobalId) { + if (EbmlId(*CuePoint[Index1]) == EBML_ID(KaxCueTime)) { KaxCueTime & CueTime = *static_cast(CuePoint[Index1]); printf(" Time %ld\n", std::uint64_t(CueTime) * TimecodeScale); - } else if (CuePoint[Index1]->Generic().GlobalId == KaxCueTrackPositions::ClassInfos.GlobalId) { + } else if (EbmlId(*(CuePoint[Index1])) == EBML_ID(KaxCueTrackPositions)) { KaxCueTrackPositions & CuePos = *static_cast(CuePoint[Index1]); printf(" Positions\n"); unsigned int Index2; for (Index2 = 0; Index2Generic().GlobalId == KaxCueTrack::ClassInfos.GlobalId) { + if (EbmlId(*(CuePos[Index2])) == EBML_ID(KaxCueTrack)) { KaxCueTrack & CueTrack = *static_cast(CuePos[Index2]); printf(" Track %d\n", std::uint16_t(CueTrack)); - } else if (CuePos[Index2]->Generic().GlobalId == KaxCueClusterPosition::ClassInfos.GlobalId) { + } else if (EbmlId(*(CuePos[Index2])) == EBML_ID(KaxCueClusterPosition)) { KaxCueClusterPosition & CuePoss = *static_cast(CuePos[Index2]); printf(" Cluster position %d\n", std::uint64_t(CuePoss)); - } else if (CuePos[Index2]->Generic().GlobalId == KaxCueReference::ClassInfos.GlobalId) { + } else if (EbmlId(*(CuePos[Index2])) == EBML_ID(KaxCueReference)) { KaxCueReference & CueRefs = *static_cast(CuePos[Index2]); printf(" Reference\n"); unsigned int Index3; for (Index3 = 0; Index3Generic().GlobalId == KaxCueRefTime::ClassInfos.GlobalId) { + if (EbmlId(*(CueRefs[Index3])) == EBML_ID(KaxCueRefTime)) { KaxCueRefTime & CueTime = *static_cast(CueRefs[Index3]); printf(" Time %d\n", std::uint32_t(CueTime)); - } else if (CueRefs[Index3]->Generic().GlobalId == KaxCueRefCluster::ClassInfos.GlobalId) { + } else if (EbmlId(*(CueRefs[Index3])) == EBML_ID(KaxCueRefCluster)) { KaxCueRefCluster & CueClust = *static_cast(CueRefs[Index3]); printf(" Cluster position %d\n", std::uint64_t(CueClust)); } else { - printf(" - found %s\n", CueRefs[Index3]->Generic().DebugName); + printf(" - found %s\n", EBML_NAME(CueRefs[Index3])); } } } else { - printf(" - found %s\n", CuePos[Index2]->Generic().DebugName); + printf(" - found %s\n", EBML_NAME(CuePos[Index2])); } } } else { - printf(" - found %s\n", CuePoint[Index1]->Generic().DebugName); + printf(" - found %s\n", EBML_NAME(CuePoint[Index1])); } } } else { - printf(" - found %s\n", (*CuesEntry)[Index0]->Generic().DebugName); + printf(" - found %s\n", EBML_NAME((*CuesEntry)[Index0])); } } } - else if (EbmlId(*ElementLevel1) == KaxSeekHead::ClassInfos.GlobalId) { + else if (EbmlId(*ElementLevel1) == EBML_ID(KaxSeekHead)) { printf("\n- Meta Seek found\n"); MetaSeek = static_cast(ElementLevel1); // read it in memory - MetaSeek->Read(aStream, KaxSeekHead::ClassInfos.Context, UpperElementLevel, ElementLevel2, bAllowDummy); + MetaSeek->Read(aStream, EBML_CLASS_CONTEXT(KaxSeekHead), UpperElementLevel, ElementLevel2, bAllowDummy); if (MetaSeek->CheckMandatory()) { printf(" * All mandatory elements found *\n"); } else { @@ -530,30 +530,30 @@ int main(int argc, char **argv) } unsigned int Index0; for (Index0 = 0; Index0ListSize() ;Index0++) { - if ((*MetaSeek)[Index0]->Generic().GlobalId == KaxSeek::ClassInfos.GlobalId) { + if (EbmlId(*(*MetaSeek)[Index0]) == EBML_ID(KaxSeek)) { printf(" Seek Point\n"); KaxSeek & SeekPoint = *static_cast((*MetaSeek)[Index0]); unsigned int Index1; for (Index1 = 0; Index1Generic().GlobalId == KaxSeekID::ClassInfos.GlobalId) { + if (EbmlId(*(SeekPoint[Index1])) == EBML_ID(KaxSeekID)) { KaxSeekID * SeekID = static_cast(SeekPoint[Index1]); printf(" Seek ID ", SeekID->GetBuffer()); for (unsigned int i=0; iGetSize(); i++) { printf("%02X", SeekID->GetBuffer()[i]); } printf("\n"); - } else if (SeekPoint[Index1]->Generic().GlobalId == KaxSeekPosition::ClassInfos.GlobalId) { + } else if (EbmlId(*(SeekPoint[Index1])) == EBML_ID(KaxSeekPosition)) { KaxSeekPosition * SeekPos = static_cast(SeekPoint[Index1]); printf(" Seek position %d\n", std::uint32_t(*SeekPos)); } } } } - } else if (EbmlId(*ElementLevel1) == KaxChapters::ClassInfos.GlobalId) { + } else if (EbmlId(*ElementLevel1) == EBML_ID(KaxChapters)) { printf("\n- Chapters found\n"); Chapters = static_cast(ElementLevel1); // read it in memory - Chapters->Read(aStream, KaxChapters::ClassInfos.Context, UpperElementLevel, ElementLevel2, bAllowDummy); + Chapters->Read(aStream, EBML_CLASS_CONTEXT(KaxChapters), UpperElementLevel, ElementLevel2, bAllowDummy); if (Chapters->CheckMandatory()) { printf(" * All mandatory elements found *\n"); } else { @@ -561,38 +561,38 @@ int main(int argc, char **argv) } unsigned int Index0; for (Index0 = 0; Index0ListSize() ;Index0++) { - if ((*Chapters)[Index0]->Generic().GlobalId == KaxEditionEntry::ClassInfos.GlobalId) { + if (EbmlId(*(*Chapters)[Index0]) == EBML_ID(KaxEditionEntry)) { printf(" Edition\n"); KaxEditionEntry & Edition = *static_cast((*Chapters)[Index0]); unsigned int Index2; for (Index2 = 0; Index2Generic().GlobalId == KaxChapterAtom::ClassInfos.GlobalId) { + if (EbmlId(*(Edition[Index2])) == EBML_ID(KaxChapterAtom)) { printf(" Chapter Atom\n"); KaxChapterAtom & aChapterAtom = *static_cast(Edition[Index2]); unsigned int Index3; for (Index3 = 0; Index3Generic().GlobalId == KaxChapterUID::ClassInfos.GlobalId) { + if (EbmlId(*(aChapterAtom[Index3])) == EBML_ID(KaxChapterUID)) { printf(" Chapter UID 0x%08x\n", std::uint32_t(*static_cast(aChapterAtom[Index3])) ); - } else if (aChapterAtom[Index3]->Generic().GlobalId == KaxChapterTimeStart::ClassInfos.GlobalId) { + } else if (EbmlId(*(aChapterAtom[Index3])) == EBML_ID(KaxChapterTimeStart)) { printf(" Time Start %d\n", std::uint32_t(*static_cast(aChapterAtom[Index3])) ); - } else if (aChapterAtom[Index3]->Generic().GlobalId == KaxChapterTimeEnd::ClassInfos.GlobalId) { + } else if (EbmlId(*(aChapterAtom[Index3])) == EBML_ID(KaxChapterTimeEnd)) { printf(" Time End %d ns\n", std::uint32_t(*static_cast(aChapterAtom[Index3])) ); - } else if (aChapterAtom[Index3]->Generic().GlobalId == KaxChapterTrack::ClassInfos.GlobalId) { + } else if (EbmlId(*(aChapterAtom[Index3])) == EBML_ID(KaxChapterTrack)) { printf(" Track list\n"); - } else if (aChapterAtom[Index3]->Generic().GlobalId == KaxChapterDisplay::ClassInfos.GlobalId) { + } else if (EbmlId(*(aChapterAtom[Index3])) == EBML_ID(KaxChapterDisplay)) { printf(" Display info\n"); KaxChapterDisplay & aDisplay = *static_cast(aChapterAtom[Index3]); unsigned int Index4; for (Index4 = 0; Index4Generic().GlobalId == KaxChapterString::ClassInfos.GlobalId) { + if (EbmlId(*(aDisplay[Index4])) == EBML_ID(KaxChapterString)) { #if !defined(__CYGWIN__) && !defined(__APPLE__) && !defined(__BEOS__) && !defined(__NetBSD__) wprintf(L" Display \"%s\"\n", UTFstring(*static_cast(aDisplay[Index4])).c_str() ); #else printf(" Display \"%s\"\n", UTFstring(*static_cast(aDisplay[Index4])).c_str() ); #endif - } else if (aDisplay[Index4]->Generic().GlobalId == KaxChapterLanguage::ClassInfos.GlobalId) { + } else if (EbmlId(*(aDisplay[Index4])) == EBML_ID(KaxChapterLanguage)) { printf(" For language \"%s\"\n", std::string(*static_cast(aDisplay[Index4])).c_str() ); - } else if (aDisplay[Index4]->Generic().GlobalId == KaxChapterCountry::ClassInfos.GlobalId) { + } else if (EbmlId(*(aDisplay[Index4])) == EBML_ID(KaxChapterCountry)) { printf(" For country \"%s\"\n", std::string(*static_cast(aDisplay[Index4])).c_str() ); } else if (aDisplay[Index4]->IsDummy()) { printf(" Dummy !!!\n"); @@ -604,11 +604,11 @@ int main(int argc, char **argv) } } } - } else if (EbmlId(*ElementLevel1) == KaxTags::ClassInfos.GlobalId) { + } else if (EbmlId(*ElementLevel1) == EBML_ID(KaxTags)) { printf("\n- Tags found\n"); AllTags = static_cast(ElementLevel1); // read it in memory - AllTags->Read(aStream, KaxTags::ClassInfos.Context, UpperElementLevel, ElementLevel2, bAllowDummy); + AllTags->Read(aStream, EBML_CLASS_CONTEXT(KaxTags), UpperElementLevel, ElementLevel2, bAllowDummy); if (AllTags->CheckMandatory()) { printf(" * All mandatory elements found *\n"); } else { @@ -616,18 +616,18 @@ int main(int argc, char **argv) } unsigned int Index0; for (Index0 = 0; Index0ListSize() ;Index0++) { - if ((*AllTags)[Index0]->Generic().GlobalId == KaxTag::ClassInfos.GlobalId) { + if (EbmlId(*(*AllTags)[Index0]) == EBML_ID(KaxTag)) { printf(" Tag\n"); KaxTag & TagElt = *static_cast((*AllTags)[Index0]); unsigned int Index1; for (Index1 = 0; Index1Generic().GlobalId == KaxTagTargets::ClassInfos.GlobalId) { + if (EbmlId(*(TagElt[Index1])) == EBML_ID(KaxTagTargets)) { printf(" Targets\n"); KaxTagTargets & Targets = *static_cast(TagElt[Index1]); unsigned int Index2; for (Index2 = 0; Index2Generic().GlobalId == KaxTagTrackUID::ClassInfos.GlobalId) { + if (EbmlId(*(Targets[Index2])) == EBML_ID(KaxTagTrackUID)) { #ifndef TEST_REMOVE printf(" Track UID\n"); #else // TEST_REMOVE @@ -639,20 +639,20 @@ int main(int argc, char **argv) Index2--; Index1--; #endif // TEST_REMOVE - } else if (Targets[Index2]->Generic().GlobalId == KaxTagChapterUID::ClassInfos.GlobalId) { + } else if (EbmlId(*(Targets[Index2])) == EBML_ID(KaxTagChapterUID)) { printf(" Chapter UID\n"); #if 0 - } else if (Targets[Index2]->Generic().GlobalId == KaxTagMultiComment::ClassInfos.GlobalId) { + } else if (EbmlId(*(Targets[Index2])) == EBML_ID(KaxTagMultiComment)) { printf(" Comment\n"); KaxTagMultiComment & Comment = *static_cast(Targets[Index2]); unsigned int Index3; for (Index3 = 0; Index3Generic().GlobalId == KaxTagMultiCommentName::ClassInfos.GlobalId) { + if (EbmlId(*(Comment[Index3])) == EBML_ID(KaxTagMultiCommentName)) { KaxTagMultiCommentName & CommentName = *static_cast(Comment[Index3]); printf(" Comment Name \"%s\"\n", std::string(CommentName).c_str()); } } -// } else if (Targets[Index2]->Generic().GlobalId == DummyRawElement::ClassInfos.GlobalId) { +// } else if (EbmlId(*(Targets[Index2])) == EBML_ID(DummyRawElement)) { #endif } } @@ -665,39 +665,39 @@ int main(int argc, char **argv) } #endif // TEST_REMOVE #if 0 - } else if (TagElt[Index1]->Generic().GlobalId == KaxTagGeneral::ClassInfos.GlobalId) { + } else if (EbmlId(*(TagElt[Index1])) == EBML_ID(KaxTagGeneral)) { printf(" General\n"); KaxTagGeneral & General = *static_cast(TagElt[Index1]); unsigned int Index2; for (Index2 = 0; Index2Generic().GlobalId == KaxTagSubject::ClassInfos.GlobalId) { + if (EbmlId(*(General[Index2])) == EBML_ID(KaxTagSubject)) { printf(" Subject\n"); - } else if (General[Index2]->Generic().GlobalId == KaxTagBibliography::ClassInfos.GlobalId) { + } else if (EbmlId(*(General[Index2])) == EBML_ID(KaxTagBibliography)) { printf(" Bibliography\n"); - } else if (General[Index2]->Generic().GlobalId == KaxTagLanguage::ClassInfos.GlobalId) { + } else if (EbmlId(*(General[Index2])) == EBML_ID(KaxTagLanguage)) { printf(" Language\n"); } } - } else if (TagElt[Index1]->Generic().GlobalId == KaxTagMultiCommercial::ClassInfos.GlobalId) { + } else if (EbmlId(*(TagElt[Index1])) == EBML_ID(KaxTagMultiCommercial)) { printf(" MultiCommercial\n"); KaxTagMultiCommercial & Commercials = *static_cast(TagElt[Index1]); unsigned int Index2; for (Index2 = 0; Index2Generic().GlobalId == KaxTagCommercial::ClassInfos.GlobalId) { + if (EbmlId(*(Commercials[Index2])) == EBML_ID(KaxTagCommercial)) { printf(" Commercial\n"); KaxTagCommercial & Commercial = *static_cast(Commercials[Index2]); unsigned int Index3; for (Index3 = 0; Index3Generic().GlobalId == KaxTagMultiCommercialType::ClassInfos.GlobalId) { + if (EbmlId(*(Commercial[Index3])) == EBML_ID(KaxTagMultiCommercialType)) { printf(" Type\n"); - } else if (Commercial[Index3]->Generic().GlobalId == KaxTagMultiPrice::ClassInfos.GlobalId) { + } else if (EbmlId(*(Commercial[Index3])) == EBML_ID(KaxTagMultiPrice)) { printf(" Prices\n"); KaxTagMultiPrice & Prices = *static_cast(Commercial[Index3]); unsigned int Index4; for (Index4 = 0; Index4Generic().GlobalId == KaxTagMultiPriceCurrency::ClassInfos.GlobalId) { + if (EbmlId(*(Prices[Index4])) == EBML_ID(KaxTagMultiPriceCurrency)) { printf(" Currency\n"); - } else if (Prices[Index4]->Generic().GlobalId == KaxTagMultiPriceAmount::ClassInfos.GlobalId) { + } else if (EbmlId(*(Prices[Index4])) == EBML_ID(KaxTagMultiPriceAmount)) { printf(" Amount\n"); } } @@ -705,14 +705,14 @@ int main(int argc, char **argv) } } } - } else if (TagElt[Index1]->Generic().GlobalId == KaxTagMultiDate::ClassInfos.GlobalId) { + } else if (EbmlId(*(TagElt[Index1])) == EBML_ID(KaxTagMultiDate)) { printf(" MultiDate\n"); - } else if (TagElt[Index1]->Generic().GlobalId == KaxTagMultiComment::ClassInfos.GlobalId) { + } else if (EbmlId(*(TagElt[Index1])) == EBML_ID(KaxTagMultiComment)) { printf(" Comment\n"); KaxTagMultiComment & Comment = *static_cast(TagElt[Index1]); unsigned int Index2; for (Index2 = 0; Index2Generic().GlobalId == KaxTagMultiCommentName::ClassInfos.GlobalId) { + if (EbmlId(*(Comment[Index2])) == EBML_ID(KaxTagMultiCommentName)) { KaxTagMultiCommentName & CommentName = *static_cast(Comment[Index2]); printf(" Comment Name \"%s\"\n", std::string(CommentName).c_str()); } @@ -738,10 +738,10 @@ int main(int argc, char **argv) if (UpperElementLevel > 0) break; } else { - ElementLevel1->SkipData(aStream, ElementLevel1->Generic().Context); + ElementLevel1->SkipData(aStream, EBML_CONTEXT(ElementLevel1)); delete ElementLevel1; - ElementLevel1 = aStream.FindNextElement(ElementLevel0->Generic().Context, UpperElementLevel, 0, bAllowDummy); + ElementLevel1 = aStream.FindNextElement(EBML_CONTEXT(ElementLevel0), UpperElementLevel, 0, bAllowDummy); } } }