demux: mkv: add missing helpers from libebml 2.0
authorSteve Lhomme <robux4@ycbcr.xyz>
Thu, 11 Jul 2024 12:06:59 +0000 (14:06 +0200)
committerSebastian Ramacher <sramacher@debian.org>
Tue, 14 Jan 2025 22:09:47 +0000 (23:09 +0100)
The const versions are more versatile.

(cherry picked from commit 42945dadb88c72bd6b34a3468f4ac125d81198f1)

Gbp-Pq: Name 0100-demux-mkv-add-missing-helpers-from-libebml-2.0.patch

modules/demux/mkv/mkv.hpp

index 27a1566c4301c24a69dcaca84bff4097ee9855c2..2ea8035f2d7002bf5cebe3890dda6922819cfc16 100644 (file)
@@ -117,6 +117,19 @@ enum
 #define MKV_CHECKED_PTR_DECL( name, type, src ) type * name = MKV_IS_ID(src, type) ? static_cast<type*>(src) : NULL
 #define MKV_CHECKED_PTR_DECL_CONST( name, type, src ) const type * name = MKV_IS_ID(src, type) ? static_cast<const type*>(src) : NULL
 
+#if LIBEBML_VERSION < 0x020000
+template <typename Type>
+Type * FindChild(const EbmlMaster & Master)
+{
+  return static_cast<Type *>(Master.FindFirstElt(EBML_INFO(Type)));
+}
+
+template <typename Type>
+Type * FindNextChild(const EbmlMaster & Master, const Type & PastElt)
+{
+  return static_cast<Type *>(Master.FindNextElt(PastElt));
+}
+#endif
 
 using namespace LIBMATROSKA_NAMESPACE;