20#ifndef MATROSKAVIDEO_HPP_
21#define MATROSKAVIDEO_HPP_
24#include "exiv2lib_export.h"
41enum matroskaTypeEnum :
char {
55enum matroskaProcessEnum :
char {
65 matroskaTypeEnum _type;
66 matroskaProcessEnum _process;
68 MatroskaTag(uint64_t
id, std::string label, matroskaTypeEnum type, matroskaProcessEnum process) :
69 _id(
id), _label(std::move(label)), _type(type), _process(process) {
74 _label(std::move(label)),
75 _type(matroskaTypeEnum::UndefinedType),
76 _process(matroskaProcessEnum::Undefined) {
79 bool operator==(uint64_t
id)
const {
83 [[nodiscard]]
bool isSkipped()
const {
84 return _process == Skip;
86 [[nodiscard]]
bool isComposite()
const {
87 return _process == Composite;
89 void dump(std::ostream& os)
const {
91 <<
" id: [0x" << std::hex << _id <<
"] label:[" << _label <<
"] type:[" << _type <<
"] process :[" << _process
120 void readMetadata()
override;
121 void writeMetadata()
override;
126 [[nodiscard]] std::string
mimeType()
const override;
139 [[nodiscard]]
static uint32_t findBlockSize(
byte b);
161 bool continueTraversing_{};
165 uint32_t track_count_{};
166 double time_code_scale_ = 1.0;
169 static constexpr double bytesMB = 1048576;
An interface for simple binary IO.
Definition basicio.hpp:35
std::unique_ptr< BasicIo > UniquePtr
BasicIo auto_ptr type.
Definition basicio.hpp:38
Abstract base class defining the interface for an image. This is the top-level interface to the Exiv2...
Definition image.hpp:50
std::unique_ptr< Image > UniquePtr
Image auto_ptr type.
Definition image.hpp:53
Class to access Matroska video files.
Definition matroskavideo.hpp:100
Class CrwImage to access Canon CRW images. References: The Canon RAW (CRW) File Format by Phil Harv...
Definition asfvideo.hpp:15
EXIV2API Image::UniquePtr newMkvInstance(BasicIo::UniquePtr io, bool create)
Create a new MatroskaVideo instance and return an auto-pointer to it. Caller owns the returned object...
Definition matroskavideo.cpp:922
EXIV2API bool isMkvType(BasicIo &iIo, bool advance)
Check if the file iIo is a Matroska Video.
Definition matroskavideo.cpp:930
Definition matroskavideo.hpp:62
List of TIFF compression to MIME type mappings.
Definition tiffimage.cpp:47