bool b_keep_stream = false, b_keep_segment;
// verify the EBML Header
- p_l0 = p_estream->FindNextID(EbmlHead::ClassInfos, 0xFFFFFFFFL);
+ p_l0 = p_estream->FindNextID(EBML_INFO(EbmlHead), 0xFFFFFFFFL);
if (p_l0 == NULL)
{
msg_Err( p_demux, "No EBML header found" );
}
// verify we can read this Segment, we only support Matroska version 1 for now
- p_l0->Read(*p_estream, EbmlHead::ClassInfos.Context, i_upper_lvl, p_l0, true);
+ p_l0->Read(*p_estream, EBML_CLASS_CONTEXT(EbmlHead), i_upper_lvl, p_l0, true);
EDocType doc_type = GetChild<EDocType>(*static_cast<EbmlHead*>(p_l0));
if (std::string(doc_type) != "matroska" && std::string(doc_type) != "webm" )
// find all segments in this file
- p_l0 = p_estream->FindNextID(KaxSegment::ClassInfos, 0xFFFFFFFFFLL);
+ p_l0 = p_estream->FindNextID(EBML_INFO(KaxSegment), 0xFFFFFFFFFLL);
if (p_l0 == NULL)
{
return NULL;
// find the families of this segment
KaxInfo *p_info = static_cast<KaxInfo*>(p_l1);
- p_info->Read(*p_estream, KaxInfo::ClassInfos.Context, i_upper_lvl, p_l2, true);
+ p_info->Read(*p_estream, EBML_CLASS_CONTEXT(KaxInfo), i_upper_lvl, p_l2, true);
for( size_t i = 0; i < p_info->ListSize(); i++ )
{
EbmlElement *l = (*p_info)[i];
if (p_l0->IsFiniteSize() )
{
p_l0->SkipData(*p_estream, KaxMatroska_Context);
- p_l0 = p_estream->FindNextID(KaxSegment::ClassInfos, 0xFFFFFFFFL);
+ p_l0 = p_estream->FindNextID(EBML_INFO(KaxSegment), 0xFFFFFFFFL);
}
else
{
{
if( MKV_IS_ID( l, KaxSeek ) )
{
- EbmlId id = EbmlVoid::ClassInfos.GlobalId;
+ EbmlId id = EBML_ID(EbmlVoid);
int64_t i_pos = -1;
#ifdef MKV_DEBUG
if( i_pos >= 0 )
{
- if( id == KaxCues::ClassInfos.GlobalId )
+ if( id == EBML_ID(KaxCues) )
{
msg_Dbg( &sys.demuxer, "| - cues at %"PRId64, i_pos );
- LoadSeekHeadItem( KaxCues::ClassInfos, i_pos );
+ LoadSeekHeadItem( EBML_INFO(KaxCues), i_pos );
}
- else if( id == KaxInfo::ClassInfos.GlobalId )
+ else if( id == EBML_ID(KaxInfo) )
{
msg_Dbg( &sys.demuxer, "| - info at %"PRId64, i_pos );
- LoadSeekHeadItem( KaxInfo::ClassInfos, i_pos );
+ LoadSeekHeadItem( EBML_INFO(KaxInfo), i_pos );
}
- else if( id == KaxChapters::ClassInfos.GlobalId )
+ else if( id == EBML_ID(KaxChapters) )
{
msg_Dbg( &sys.demuxer, "| - chapters at %"PRId64, i_pos );
- LoadSeekHeadItem( KaxChapters::ClassInfos, i_pos );
+ LoadSeekHeadItem( EBML_INFO(KaxChapters), i_pos );
}
- else if( id == KaxTags::ClassInfos.GlobalId )
+ else if( id == EBML_ID(KaxTags) )
{
msg_Dbg( &sys.demuxer, "| - tags at %"PRId64, i_pos );
- LoadSeekHeadItem( KaxTags::ClassInfos, i_pos );
+ LoadSeekHeadItem( EBML_INFO(KaxTags), i_pos );
}
- else if( id == KaxSeekHead::ClassInfos.GlobalId )
+ else if( id == EBML_ID(KaxSeekHead) )
{
msg_Dbg( &sys.demuxer, "| - chained seekhead at %"PRId64, i_pos );
- LoadSeekHeadItem( KaxSeekHead::ClassInfos, i_pos );
+ LoadSeekHeadItem( EBML_INFO(KaxSeekHead), i_pos );
}
- else if( id == KaxTracks::ClassInfos.GlobalId )
+ else if( id == EBML_ID(KaxTracks) )
{
msg_Dbg( &sys.demuxer, "| - tracks at %"PRId64, i_pos );
- LoadSeekHeadItem( KaxTracks::ClassInfos, i_pos );
+ LoadSeekHeadItem( EBML_INFO(KaxTracks), i_pos );
}
- else if( id == KaxAttachments::ClassInfos.GlobalId )
+ else if( id == EBML_ID(KaxAttachments) )
{
msg_Dbg( &sys.demuxer, "| - attachments at %"PRId64, i_pos );
- LoadSeekHeadItem( KaxAttachments::ClassInfos, i_pos );
+ LoadSeekHeadItem( EBML_INFO(KaxAttachments), i_pos );
}
#ifdef MKV_DEBUG
else
}
}
}
-// else if( EbmlId( *l ) == KaxCodecSettings::ClassInfos.GlobalId ) DEPRECATED by matroska
+// else if( MKV_IS_ID( l, KaxCodecSettings) ) DEPRECATED by matroska
// {
// KaxCodecSettings &cset = *(KaxCodecSettings*)l;
// tk->psz_codec_settings = ToUTF8( UTFstring( cset ) );
// msg_Dbg( &sys.demuxer, "| | | + Track Codec Settings=%s", tk->psz_codec_settings );
// }
-// else if( EbmlId( *l ) == KaxCodecInfoURL::ClassInfos.GlobalId ) DEPRECATED by matroska
+// else if( MKV_IS_ID( l, KaxCodecInfoURL) ) DEPRECATED by matroska
// {
// KaxCodecInfoURL &ciurl = *(KaxCodecInfoURL*)l;
// tk->psz_codec_info_url = strdup( string( ciurl ).c_str() );
// msg_Dbg( &sys.demuxer, "| | | + Track Codec Info URL=%s", tk->psz_codec_info_url );
// }
-// else if( EbmlId( *l ) == KaxCodecDownloadURL::ClassInfos.GlobalId ) DEPRECATED by matroska
+// else if( MKV_IS_ID( l, KaxCodecDownloadURL) ) DEPRECATED by matroska
// {
// KaxCodecDownloadURL &cdurl = *(KaxCodecDownloadURL*)l;
tk->f_fps = float( vfps );
msg_Dbg( &sys.demuxer, " | | | + fps=%f", float( vfps ) );
}
-// else if( EbmlId( *l ) == KaxVideoGamma::ClassInfos.GlobalId ) //DEPRECATED by Matroska
+// else if( MKV_IS_ID( l, KaxVideoGamma) ) //DEPRECATED by Matroska
// {
// KaxVideoGamma &gamma = *(KaxVideoGamma*)l;
int i_upper_level = 0;
/* Master elements */
- tracks->Read( es, tracks->Generic().Context, i_upper_level, el, true );
+ tracks->Read( es, EBML_CONTEXT(tracks), i_upper_level, el, true );
for( size_t i = 0; i < tracks->ListSize(); i++ )
{
/* Master elements */
m = static_cast<EbmlMaster *>(info);
- m->Read( es, info->Generic().Context, i_upper_level, el, true );
+ m->Read( es, EBML_CONTEXT(info), i_upper_level, el, true );
for( size_t i = 0; i < m->ListSize(); i++ )
{
KaxChapterTranslate *p_trans = static_cast<KaxChapterTranslate*>( l );
chapter_translation_c *p_translate = new chapter_translation_c();
- p_trans->Read( es, p_trans->Generic().Context, i_upper_level, el, true );
+ p_trans->Read( es, EBML_CONTEXT(p_trans), i_upper_level, el, true );
for( size_t j = 0; j < p_trans->ListSize(); j++ )
{
EbmlElement *l = (*p_trans)[j];
EbmlElement *el;
int i_upper_level = 0;
- attachments->Read( es, attachments->Generic().Context, i_upper_level, el, true );
+ attachments->Read( es, EBML_CONTEXT(attachments), i_upper_level, el, true );
KaxAttached *attachedFile = FindChild<KaxAttached>( *attachments );
mtime_t i_dur;
/* Master elements */
- chapters->Read( es, chapters->Generic().Context, i_upper_level, el, true );
+ chapters->Read( es, EBML_CONTEXT(chapters), i_upper_level, el, true );
for( size_t i = 0; i < chapters->ListSize(); i++ )
{
/* Master elements */
m = static_cast<EbmlMaster *>( cluster );
- m->Read( es, cluster->Generic().Context, i_upper_level, el, true );
+ m->Read( es, EBML_CONTEXT(cluster), i_upper_level, el, true );
for( unsigned int i = 0; i < m->ListSize(); i++ )
{