14 #include <type_traits>
15 #include <string_view>
19 namespace mediadescription
33 const char* strStructName,
34 const char* strMediaDescription,
56 const std::pair<std::string, std::string>& type_definition,
78 const char* strStructName,
79 const char* strMediaDescription,
91 const char* strStructName,
101 std::tuple<std::string, std::string, ddl::tDataRepresentation>
123 template<
typename ValueType,
size_t szArraySize>
124 struct is_array_like<std::array<ValueType, szArraySize>>: std::true_type {};
126 template<
class ValueType,
size_t szArraySize>
129 template <
typename T>
136 std::string_view strMDDescription,
138 size_t szFixArraySize,
139 bool bValidate =
false);
143 size_t szFixArraySize);
154 template<
typename T =
void>
158 static_assert(!std::is_arithmetic_v<T>,
159 "stream_type_default can be used only for structured types, "
160 "use adtf::streaming::stream_type_plain<T> instead");
161 static_assert(std::is_trivially_copyable_v<T>,
162 "stream_type_default can be used only for trivial structured types");
163 static_assert(!detail::is_array_like_v<T>,
164 "stream_type_default can not used for arrays of structured types, "
165 "use adtf::mediadescription::stream_type_default_array<T> instead");
166 static_assert(has_description_v<T>,
167 "stream_type_default<T>() can only be used if ddl description was generated with adtf_mdgen! "
168 "If you have another source for the description, use stream_type_default<void>(...).");
232 cStreamTypeDefaultBase(
233 oTypeDefinition.getStructType().getName(), oTypeDefinition.getStructDescription(), eDataRep, 1)
248 std::string_view strMDDescription):
263 std::string_view strMDDescription,
265 cStreamTypeDefaultBase(strMDStructName, strMDDescription, eDataRep, 1, true)
292 cStreamTypeDefaultBase(strMDStructName, eDataRep, 1)
328 template<
typename T =
void>
332 static_assert(adtf::base::penguin::detail::always_false<T>,
333 "stream_type_default_array can be used only for std::array<T, N> and T[N] "
334 "use i.e. adtf::mediadescription::stream_type_default_array<std::array<T, N>>! "
335 "Use stream_type_default_array<void> if you have a valid media description.");
379 cStreamTypeDefaultBase(oValueTypeDefinition.getStructType().getName(),
380 oValueTypeDefinition.getStructDescription(),
397 std::string_view strMDDescription,
413 std::string_view strMDDescription,
416 cStreamTypeDefaultBase(strMDStructName, strMDDescription, eDataRep, szArraySize, true)
452 cStreamTypeDefaultBase(strMDStructName, eDataRep, szArraySize)
463 template<
class ValueType,
size_t szArraySize>
467 static_assert(has_description_v<ValueType>,
468 "stream_type_default_array<T>() can only be used if ddl description was generated with adtf_mdgen! "
469 "If you have another source for the description, use stream_type_default_array<void>(...).");
470 static_assert(!std::is_arithmetic_v<ValueType>,
471 "stream_type_default_array can be used only for structured types, "
472 "use adtf::streaming::stream_type_plain<std::array<T, N>> instead");
473 static_assert(std::is_trivially_copyable_v<ValueType>,
474 "stream_type_default_array can be used only for trivial structured types");
509 template<
typename ValueType,
size_t szArraySize>
A common result class usable as return value throughout.
Defintion of a property set container interface.
Defines access methods for the interface of a Stream Type - see also Stream Type and Stream Meta Type...
Default StreamType implementation.
Utility class for a complete valid data definition of one StructType and its dependencies.
Copyright © Audi Electronics Venture GmbH.
Namespace for entire ADTF SDK.
definition of the ddl namespace
DataRepresentation
Enumeration for the data representation.
@ Deserialized
alias names for legacy reasons
Copyright © Audi Electronics Venture GmbH.
Copyright © Audi Electronics Venture GmbH.