Exemplo n.º 1
0
{
    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;
Exemplo n.º 2
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)
{
Exemplo n.º 3
0
**
**********************************************************************/

/*!
	\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
Exemplo n.º 4
0
	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)