Closed apavlenko closed 8 years ago
class VMF_EXPORT Format
{
public:
typedef std::map<std::string, std::string> AttribMap;
/*!
* \brief Export various metadata stream items to a string representation. Used in particular for "stream.serialize()" implementation.
*/
virtual std::string store(
const MetadataSet& set,
const std::vector<std::shared_ptr<MetadataSchema>>& schemas = {},
const std::vector<std::shared_ptr<MetadataStream::VideoSegment>>& segments = {},
const std::vector<Stat>& stats = {},
const AttribMap& attribs = {} // nextId, checksum, etc
) = 0;
/*!
* \brief Deserialize input string to stream metadata and related stuff. Used in particular for "stream.deserialize(text)" implementation.
*/
virtual std::array<int, 5> parse(
const std::string& text,
std::vector<std::shared_ptr<MetadataInternal>>& metadata,
std::vector<std::shared_ptr<MetadataSchema>>& schemas,
std::vector<std::shared_ptr<MetadataStream::VideoSegment>>& segments,
std::vector<Stat>& stats,
AttribMap& attribs // nextId, checksum, etc
) = 0;
;
Simpler API.
1)
MetadataSchema
,MetadataDesc
,Metadata
Less code, no
shared_ptr
=> faster!