Coverage Report

Created: 2026-08-13 07:43

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/vlc/contrib/x86_64-unknown-linux-gnu/include/matroska/KaxDefines.h
Line
Count
Source
1
/****************************************************************************
2
** libmatroska : parse Matroska files, see http://www.matroska.org/
3
**
4
** <file/class description>
5
**
6
** Copyright (C) 2002-2010 Steve Lhomme.  All rights reserved.
7
**
8
** This library is free software; you can redistribute it and/or
9
** modify it under the terms of the GNU Lesser General Public
10
** License as published by the Free Software Foundation; either
11
** version 2.1 of the License, or (at your option) any later version.
12
**
13
** This library is distributed in the hope that it will be useful,
14
** but WITHOUT ANY WARRANTY; without even the implied warranty of
15
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16
** Lesser General Public License for more details.
17
**
18
** You should have received a copy of the GNU Lesser General Public
19
** License along with this library; if not, write to the Free Software
20
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
21
**
22
** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.**
23
** Contact license@matroska.org if any conditions of this licensing are
24
** not clear to you.
25
**
26
**********************************************************************/
27
28
/*!
29
  \file
30
  \version \$Id$
31
  \author Steve Lhomme     <robux4 @ users.sf.net>
32
*/
33
#ifndef LIBMATROSKA_DEFINES_H
34
#define LIBMATROSKA_DEFINES_H
35
36
#include <ebml/EbmlVersion.h>
37
#include <ebml/EbmlElement.h>
38
39
#if defined(HAVE_EBML2) || defined(HAS_EBML2)
40
#define DEFINE_MKX_CONTEXT(a)                DEFINE_xxx_CONTEXT(a,EBML_SemanticGlobal)
41
#define DEFINE_MKX_MASTER_CONS(a,b,c,d,e)    DEFINE_xxx_MASTER_CONS(a,b,d,e,EBML_SemanticGlobal)
42
#define DEFINE_MKX_MASTER(a,b,c,d,e)         DEFINE_xxx_MASTER(a,b,d,e,EBML_SemanticGlobal)
43
#define DEFINE_MKX_MASTER_ORPHAN(a,b,c,d)    DEFINE_xxx_MASTER_ORPHAN(a,b,d,EBML_SemanticGlobal)
44
#define DEFINE_MKX_UINTEGER_DEF(a,b,c,d,e,v) DEFINE_xxx_UINTEGER_DEF(a,b,d,e,EBML_SemanticGlobal,v)
45
#define DEFINE_MKX_SINTEGER_DEF(a,b,c,d,e,v) DEFINE_xxx_SINTEGER_DEF(a,b,d,e,EBML_SemanticGlobal,v)
46
#define DEFINE_MKX_UINTEGER(a,b,c,d,e)       DEFINE_xxx_UINTEGER(a,b,d,e,EBML_SemanticGlobal)
47
#define DEFINE_MKX_SINTEGER(a,b,c,d,e)       DEFINE_xxx_SINTEGER(a,b,d,e,EBML_SemanticGlobal)
48
#define DEFINE_MKX_SINTEGER_CONS(a,b,c,d,e)  DEFINE_xxx_SINTEGER_CONS(a,b,d,e,EBML_SemanticGlobal)
49
#define DEFINE_MKX_STRING_DEF(a,b,c,d,e,v)   DEFINE_xxx_STRING_DEF(a,b,d,e,EBML_SemanticGlobal,v)
50
#define DEFINE_MKX_STRING(a,b,c,d,e)         DEFINE_xxx_STRING(a,b,d,e,EBML_SemanticGlobal)
51
#define DEFINE_MKX_UNISTRING(a,b,c,d,e)      DEFINE_xxx_UNISTRING(a,b,d,e,EBML_SemanticGlobal)
52
#define DEFINE_MKX_BINARY(a,b,c,d,e)         DEFINE_xxx_BINARY(a,b,d,e,EBML_SemanticGlobal)
53
#define DEFINE_MKX_BINARY_CONS(a,b,c,d,e)    DEFINE_xxx_BINARY_CONS(a,b,d,e,EBML_SemanticGlobal)
54
#define DEFINE_MKX_FLOAT_DEF(a,b,c,d,e,v)    DEFINE_xxx_FLOAT_DEF(a,b,d,e,EBML_SemanticGlobal,v)
55
#define DEFINE_MKX_FLOAT(a,b,c,d,e)          DEFINE_xxx_FLOAT(a,b,d,e,EBML_SemanticGlobal)
56
#define DEFINE_MKX_FLOAT64(a,b,c,d,e)        DEFINE_xxx_FLOAT64(a,b,d,e,EBML_SemanticGlobal)
57
#define DEFINE_MKX_DATE(a,b,c,d,e)           DEFINE_xxx_DATE(a,b,d,e,EBML_SemanticGlobal)
58
59
#define DECLARE_MKX_CONTEXT(x)
60
61
#define DECLARE_MKX_MASTER(x)     DECLARE_MKX_CONTEXT(x) \
62
class MATROSKA_DLL_API x : public EbmlMaster { \
63
    public: x(EBML_EXTRA_PARAM); \
64
    x(const x & ElementToClone) :EbmlMaster(ElementToClone) {} \
65
    bool SetSizeInfinite(bool finite = true) override { return !finite; } \
66
    EBML_CONCRETE_CLASS(x)
67
68
#define DECLARE_MKX_MASTER_CONS(x)     DECLARE_MKX_CONTEXT(x) \
69
class MATROSKA_DLL_API x : public EbmlMaster { \
70
    public: x(EBML_EXTRA_PARAM); \
71
    x(const x & ElementToClone); \
72
    EBML_CONCRETE_CLASS(x)
73
74
#define DECLARE_MKX_BINARY(x)     DECLARE_MKX_CONTEXT(x) \
75
  class MATROSKA_DLL_API x : public EbmlBinary { \
76
    public: x(EBML_EXTRA_PARAM); \
77
    x(const x & ElementToClone) :EbmlBinary(ElementToClone) {} \
78
    EBML_CONCRETE_CLASS(x)
79
80
#define DECLARE_MKX_BINARY_CONS(x) DECLARE_MKX_CONTEXT(x) \
81
  class MATROSKA_DLL_API x : public EbmlBinary { \
82
    public: x(EBML_EXTRA_PARAM); \
83
    x(const x & ElementToClone); \
84
    EBML_CONCRETE_CLASS(x)
85
86
#define DECLARE_MKX_UNISTRING(x)  DECLARE_MKX_CONTEXT(x) \
87
  class MATROSKA_DLL_API x : public EbmlUnicodeString { \
88
    public: x(EBML_EXTRA_PARAM); \
89
    x(const x & ElementToClone) :EbmlUnicodeString(ElementToClone) {} \
90
    EBML_CONCRETE_CLASS(x)
91
92
#define DECLARE_MKX_STRING(x)     DECLARE_MKX_CONTEXT(x) \
93
  class MATROSKA_DLL_API x : public EbmlString { \
94
    public: x(EBML_EXTRA_PARAM); \
95
    x(const x & ElementToClone) :EbmlString(ElementToClone) {} \
96
    EBML_CONCRETE_CLASS(x)
97
98
#define DECLARE_MKX_UINTEGER(x)   DECLARE_MKX_CONTEXT(x) \
99
  class MATROSKA_DLL_API x : public EbmlUInteger { \
100
    public: x(EBML_EXTRA_PARAM); \
101
    x(const x & ElementToClone) :EbmlUInteger(ElementToClone) {} \
102
    EBML_CONCRETE_CLASS(x)
103
104
#define DECLARE_MKX_SINTEGER_CONS(x)   DECLARE_MKX_CONTEXT(x) \
105
  class MATROSKA_DLL_API x : public EbmlSInteger { \
106
    public: x(EBML_EXTRA_PARAM); \
107
    x(const x & ElementToClone); \
108
    EBML_CONCRETE_CLASS(x)
109
110
#define DECLARE_MKX_SINTEGER(x)   DECLARE_MKX_CONTEXT(x) \
111
  class MATROSKA_DLL_API x : public EbmlSInteger { \
112
    public: x(EBML_EXTRA_PARAM); \
113
    x(const x & ElementToClone) :EbmlSInteger(ElementToClone) {} \
114
    EBML_CONCRETE_CLASS(x)
115
116
#define DECLARE_MKX_DATE(x)       DECLARE_MKX_CONTEXT(x) \
117
  class MATROSKA_DLL_API x : public EbmlDate { \
118
    public: x(EBML_EXTRA_PARAM); \
119
    x(const x & ElementToClone) :EbmlDate(ElementToClone) {} \
120
    EBML_CONCRETE_CLASS(x)
121
122
#define DECLARE_MKX_FLOAT(x)      DECLARE_MKX_CONTEXT(x) \
123
  class MATROSKA_DLL_API x : public EbmlFloat { \
124
    public: x(EBML_EXTRA_PARAM); \
125
    x(const x & ElementToClone) :EbmlFloat(ElementToClone) {} \
126
    EBML_CONCRETE_CLASS(x)
127
128
129
#else
130
#define DEFINE_MKX_CONTEXT(a)                DEFINE_xxx_CONTEXT(a,GetKaxGlobal_Context)
131
#define DEFINE_MKX_MASTER_CONS(a,b,c,d,e)    DEFINE_xxx_MASTER_CONS(a,b,c,d,e,GetKaxGlobal_Context)
132
#define DEFINE_MKX_MASTER(a,b,c,d,e)         DEFINE_xxx_MASTER(a,b,c,d,e,GetKaxGlobal_Context)
133
#define DEFINE_MKX_MASTER_ORPHAN(a,b,c,d)    DEFINE_xxx_MASTER_ORPHAN(a,b,c,d,GetKaxGlobal_Context)
134
#define DEFINE_MKX_UINTEGER_DEF(a,b,c,d,e,v) DEFINE_xxx_UINTEGER_DEF(a,b,c,d,e,GetKaxGlobal_Context,v)
135
#define DEFINE_MKX_SINTEGER_DEF(a,b,c,d,e,v) DEFINE_xxx_SINTEGER_DEF(a,b,c,d,e,GetKaxGlobal_Context,v)
136
#define DEFINE_MKX_UINTEGER(a,b,c,d,e)       DEFINE_xxx_CLASS(a,b,c,d,e,GetKaxGlobal_Context)
137
#define DEFINE_MKX_SINTEGER(a,b,c,d,e)       DEFINE_xxx_CLASS(a,b,c,d,e,GetKaxGlobal_Context)
138
#define DEFINE_MKX_STRING_DEF(a,b,c,d,e,v)   DEFINE_xxx_STRING_DEF(a,b,c,d,e,GetKaxGlobal_Context,v)
139
#define DEFINE_MKX_STRING(a,b,c,d,e)         DEFINE_xxx_CLASS(a,b,c,d,e,GetKaxGlobal_Context)
140
#define DEFINE_MKX_UNISTRING(a,b,c,d,e)      DEFINE_xxx_CLASS(a,b,c,d,e,GetKaxGlobal_Context)
141
#define DEFINE_MKX_BINARY(a,b,c,d,e)         DEFINE_xxx_CLASS(a,b,c,d,e,GetKaxGlobal_Context)
142
#define DEFINE_MKX_FLOAT_DEF(a,b,c,d,e,v)    DEFINE_xxx_FLOAT_DEF(a,b,c,d,e,GetKaxGlobal_Context,v)
143
#define DEFINE_MKX_FLOAT(a,b,c,d,e)          DEFINE_xxx_CLASS(a,b,c,d,e,GetKaxGlobal_Context)
144
#define DEFINE_MKX_DATE(a,b,c,d,e)           DEFINE_xxx_CLASS(a,b,c,d,e,GetKaxGlobal_Context)
145
#define DEFINE_MKX_BINARY_CONS(a,b,c,d,e)    DEFINE_xxx_CLASS_CONS(a,b,c,d,e,GetKaxGlobal_Context)
146
#define DEFINE_MKX_SINTEGER_CONS(a,b,c,d,e)  DEFINE_xxx_CLASS_CONS(a,b,c,d,e,GetKaxGlobal_Context)
147
148
#define DECLARE_MKX_CONTEXT(x)
149
150
#define DECLARE_MKX_MASTER(x)     DECLARE_MKX_CONTEXT(x) \
151
class MATROSKA_DLL_API x : public EbmlMaster { \
152
    public: x(); \
153
    x(const x & ElementToClone) :EbmlMaster(ElementToClone) {} \
154
    bool SetSizeInfinite(bool finite = true) override { return !finite; } \
155
    EBML_CONCRETE_CLASS(x)
156
157
#define DECLARE_MKX_MASTER_CONS(x)     DECLARE_MKX_CONTEXT(x) \
158
class MATROSKA_DLL_API x : public EbmlMaster { \
159
    public: x(); \
160
    x(const x & ElementToClone); \
161
    EBML_CONCRETE_CLASS(x)
162
163
#define DECLARE_MKX_BINARY(x)     DECLARE_MKX_CONTEXT(x) \
164
  class MATROSKA_DLL_API x : public EbmlBinary { \
165
    public: x(); \
166
1.11k
    x(const x & ElementToClone) :EbmlBinary(ElementToClone) {} \
libmatroska::KaxSegmentUID::KaxSegmentUID(libmatroska::KaxSegmentUID const&)
Line
Count
Source
166
980
    x(const x & ElementToClone) :EbmlBinary(ElementToClone) {} \
Unexecuted instantiation: libmatroska::KaxSegmentFamily::KaxSegmentFamily(libmatroska::KaxSegmentFamily const&)
Unexecuted instantiation: libmatroska::KaxChapterTranslateID::KaxChapterTranslateID(libmatroska::KaxChapterTranslateID const&)
libmatroska::KaxContentCompSettings::KaxContentCompSettings(libmatroska::KaxContentCompSettings const&)
Line
Count
Source
166
111
    x(const x & ElementToClone) :EbmlBinary(ElementToClone) {} \
Unexecuted instantiation: libmatroska::KaxChapterSegmentUID::KaxChapterSegmentUID(libmatroska::KaxChapterSegmentUID const&)
Unexecuted instantiation: libmatroska::KaxChapterProcessPrivate::KaxChapterProcessPrivate(libmatroska::KaxChapterProcessPrivate const&)
libmatroska::KaxChapterProcessData::KaxChapterProcessData(libmatroska::KaxChapterProcessData const&)
Line
Count
Source
166
22
    x(const x & ElementToClone) :EbmlBinary(ElementToClone) {} \
167
    EBML_CONCRETE_CLASS(x)
168
169
#define DECLARE_MKX_BINARY_CONS(x) DECLARE_MKX_CONTEXT(x) \
170
  class MATROSKA_DLL_API x : public EbmlBinary { \
171
    public: x(); \
172
    x(const x & ElementToClone); \
173
    EBML_CONCRETE_CLASS(x)
174
175
#define DECLARE_MKX_UNISTRING(x)  DECLARE_MKX_CONTEXT(x) \
176
  class MATROSKA_DLL_API x : public EbmlUnicodeString { \
177
    public: x(); \
178
    x(const x & ElementToClone) :EbmlUnicodeString(ElementToClone) {} \
179
    EBML_CONCRETE_CLASS(x)
180
181
#define DECLARE_MKX_STRING(x)     DECLARE_MKX_CONTEXT(x) \
182
  class MATROSKA_DLL_API x : public EbmlString { \
183
    public: x(); \
184
    x(const x & ElementToClone) :EbmlString(ElementToClone) {} \
185
    EBML_CONCRETE_CLASS(x)
186
187
#define DECLARE_MKX_UINTEGER(x)   DECLARE_MKX_CONTEXT(x) \
188
  class MATROSKA_DLL_API x : public EbmlUInteger { \
189
    public: x(); \
190
0
    x(const x & ElementToClone) :EbmlUInteger(ElementToClone) {} \
191
    EBML_CONCRETE_CLASS(x)
192
193
#define DECLARE_MKX_SINTEGER_CONS(x)   DECLARE_MKX_CONTEXT(x) \
194
  class MATROSKA_DLL_API x : public EbmlSInteger { \
195
    public: x(); \
196
    x(const x & ElementToClone); \
197
    EBML_CONCRETE_CLASS(x)
198
199
#define DECLARE_MKX_SINTEGER(x)   DECLARE_MKX_CONTEXT(x) \
200
  class MATROSKA_DLL_API x : public EbmlSInteger { \
201
    public: x(); \
202
    x(const x & ElementToClone) :EbmlSInteger(ElementToClone) {} \
203
    EBML_CONCRETE_CLASS(x)
204
205
#define DECLARE_MKX_DATE(x)       DECLARE_MKX_CONTEXT(x) \
206
  class MATROSKA_DLL_API x : public EbmlDate { \
207
    public: x(); \
208
    x(const x & ElementToClone) :EbmlDate(ElementToClone) {} \
209
    EBML_CONCRETE_CLASS(x)
210
211
#define DECLARE_MKX_FLOAT(x)      DECLARE_MKX_CONTEXT(x) \
212
  class MATROSKA_DLL_API x : public EbmlFloat { \
213
    public: x(); \
214
    x(const x & ElementToClone) :EbmlFloat(ElementToClone) {} \
215
    EBML_CONCRETE_CLASS(x)
216
217
#endif
218
219
#endif // LIBMATROSKA_DEFINES_H