{ while ( mi_level > 0) { delete m_el[mi_level]; m_el[mi_level] = NULL; mi_level--; } this->p_demux = p_demux; mi_user_level = mi_level = 1; // a little faster and cleaner m_es->I_O().setFilePointer( static_cast<KaxSegment*>(m_el[0])->GetGlobalPosition(0) ); } static const EbmlSemanticContext & GetEbmlNoGlobal_Context(); static const EbmlSemanticContext EbmlNoGlobal_Context = EbmlSemanticContext(0, NULL, NULL, *GetEbmlNoGlobal_Context, NULL); static const EbmlSemanticContext & GetEbmlNoGlobal_Context() { return EbmlNoGlobal_Context; } // the Segment Context should not allow Void or CRC32 elements to avoid lookup false alarm const EbmlSemanticContext Context_KaxSegmentVLC = EbmlSemanticContext(KaxSegment_Context.GetSize(), KaxSegment_Context.MyTable, KaxSegment_Context.Parent(), GetEbmlNoGlobal_Context, KaxSegment_Context.GetMaster()); EbmlElement *EbmlParser::Get( int n_call ) { int i_ulev = 0;
EbmlSemantic(true, false, KaxSegment::ClassInfos), }; EbmlSemantic KaxSegment_ContextList[8] = { EbmlSemantic(false, false, KaxCluster::ClassInfos), EbmlSemantic(false, false, KaxSeekHead::ClassInfos), EbmlSemantic(false, true, KaxCues::ClassInfos), EbmlSemantic(false, false, KaxTracks::ClassInfos), EbmlSemantic(true, true, KaxInfo::ClassInfos), EbmlSemantic(false, true, KaxChapters::ClassInfos), EbmlSemantic(false, true, KaxAttachments::ClassInfos), EbmlSemantic(false, true, KaxTags::ClassInfos), }; const EbmlSemanticContext KaxMatroska_Context = EbmlSemanticContext(countof(KaxMatroska_ContextList), KaxMatroska_ContextList, NULL, *GetKaxGlobal_Context, NULL); const EbmlSemanticContext KaxSegment_Context = EbmlSemanticContext(countof(KaxSegment_ContextList), KaxSegment_ContextList, NULL, *GetKaxGlobal_Context, &KaxSegment::ClassInfos); EbmlId KaxSegment_TheId(0x18538067, 4); const EbmlCallbacks KaxSegment::ClassInfos(KaxSegment::Create, KaxSegment_TheId, "Segment\0rotomopogo", KaxSegment_Context); KaxSegment::KaxSegment() :EbmlMaster(KaxSegment_Context) { SetSizeLength(5); // mandatory min size support (for easier updating) (2^(7*5)-2 = 32Go) SetSizeInfinite(); // by default a segment is big and the size is unknown in advance } KaxSegment::KaxSegment(const KaxSegment & ElementToClone) :EbmlMaster(ElementToClone) {
** **********************************************************************/ /*! \file \version \$Id: 51041ecb39a4fd1d3ef7982c26f4ebed686b2637 $ \author Steve Lhomme <robux4 @ users.sf.net> */ #include "ebml/EbmlContexts.h" #include "ebml/EbmlCrc32.h" #include "ebml/EbmlVoid.h" START_LIBEBML_NAMESPACE static const EbmlSemantic EbmlGlobal_ContextList[2] = { EbmlSemantic(false, false, EBML_INFO(EbmlCrc32)), ///< EbmlCrc32 EbmlSemantic(false, false, EBML_INFO(EbmlVoid)), ///< EbmlVoid }; const EbmlSemanticContext Context_EbmlGlobal = EbmlSemanticContext(0, NULL, NULL, *GetEbmlGlobal_Context, NULL); static const EbmlSemanticContext EbmlGlobal_Context = EbmlSemanticContext(countof(EbmlGlobal_ContextList), EbmlGlobal_ContextList, NULL, *GetEbmlGlobal_Context, NULL); const EbmlSemanticContext & GetEbmlGlobal_Context() { return EbmlGlobal_Context; } END_LIBEBML_NAMESPACE
EbmlSemantic(false, true, KaxCodecName::ClassInfos), EbmlSemantic(false, true, KaxTrackAttachmentLink::ClassInfos), #if MATROSKA_VERSION >= 2 EbmlSemantic(false, true, KaxCodecSettings::ClassInfos), EbmlSemantic(false, false,KaxCodecInfoURL::ClassInfos), EbmlSemantic(false, false,KaxCodecDownloadURL::ClassInfos), EbmlSemantic(true , true, KaxCodecDecodeAll::ClassInfos), #endif // MATROSKA_VERSION EbmlSemantic(false, false,KaxTrackOverlay::ClassInfos), EbmlSemantic(false, false,KaxTrackTranslate::ClassInfos), EbmlSemantic(false, true, KaxTrackAudio::ClassInfos), EbmlSemantic(false, true, KaxTrackVideo::ClassInfos), EbmlSemantic(false, true, KaxContentEncodings::ClassInfos), }; const EbmlSemanticContext KaxTracks_Context = EbmlSemanticContext(countof(KaxTracks_ContextList), KaxTracks_ContextList, &KaxSegment_Context, *GetKaxGlobal_Context, &KaxTracks::ClassInfos); const EbmlSemanticContext KaxTrackEntry_Context = EbmlSemanticContext(countof(KaxTrackEntry_ContextList), KaxTrackEntry_ContextList, &KaxTracks_Context, *GetKaxGlobal_Context, &KaxTrackEntry::ClassInfos); EbmlId KaxTracks_TheId (0x1654AE6B, 4); EbmlId KaxTrackEntry_TheId(0xAE, 1); const EbmlCallbacks KaxTracks::ClassInfos(KaxTracks::Create, KaxTracks_TheId, "Tracks", KaxTracks_Context); const EbmlCallbacks KaxTrackEntry::ClassInfos(KaxTrackEntry::Create, KaxTrackEntry_TheId, "TrackEntry", KaxTrackEntry_Context); KaxTracks::KaxTracks() :EbmlMaster(KaxTracks_Context) {} KaxTrackEntry::KaxTrackEntry() :EbmlMaster(KaxTrackEntry_Context) ,bGlobalTimecodeScaleIsSet(false)