+ msg_Err( p_demux, "No EBML header found" );
+ return NULL;
+ }
+
+ // 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);
+
+ EDocType doc_type = GetChild<EDocType>(*static_cast<EbmlHead*>(p_l0));
+ if (std::string(doc_type) != "matroska")
+ {
+ msg_Err( p_demux, "Not a Matroska file : DocType = %s ", std::string(doc_type).c_str());
+ return NULL;
+ }
+
+ EDocTypeReadVersion doc_read_version = GetChild<EDocTypeReadVersion>(*static_cast<EbmlHead*>(p_l0));
+#if LIBMATROSKA_VERSION >= 0x000800
+ if (uint64(doc_read_version) > 2)
+ {
+ msg_Err( p_demux, "This matroska file is needs version "I64Fd" and this VLC only supports version 1 & 2", uint64(doc_read_version));
+ return NULL;
+ }
+#else
+ if (uint64(doc_read_version) != 1)
+ {
+ msg_Err( p_demux, "This matroska file is needs version "I64Fd" and this VLC only supports version 1", uint64(doc_read_version));