Alchemy 0.0.9999
Alchemy is a C++ library for multimedia file management.
Loading...
Searching...
No Matches
codec.hxx
1#pragma once
2
3#include <Alchemy/visibility.h>
4#include <StormByte/multimedia/media/property/flags.hxx>
5#include <StormByte/multimedia/media/type.hxx>
6
7#include <array>
8
13namespace Alchemy::Media::Flags {
14 using Base = StormByte::Multimedia::Media::Property::Flags;
15
19 class ALCHEMY_PUBLIC Codec final: public Base {
20 public:
25 Codec(const std::string& flags);
26
31 Codec(const Codec& other) = default;
32
37 Codec(Codec&& other) noexcept = default;
38
44 Codec& operator=(const Codec& other) = default;
45
51 Codec& operator=(Codec&& other) noexcept = default;
52
56 ~Codec() noexcept = default;
57
62 bool EncodeSupported() const;
63
68 bool DecodeSupported() const;
69
74 bool LossySupported() const;
75
80 bool LosslessSupported() const;
81
86 StormByte::Multimedia::Media::Type Type() const;
87
92 Base::PointerType Clone() const override;
93
98 Base::PointerType Move() override;
99
100 };
101}
The flags for the codec.
Definition codec.hxx:19
Codec(const std::string &flags)
Constructor.
Codec & operator=(const Codec &other)=default
Copy assignment operator.
Codec & operator=(Codec &&other) noexcept=default
Move assignment operator.
~Codec() noexcept=default
Default destructor.
Codec(Codec &&other) noexcept=default
Move constructor.
Codec(const Codec &other)=default
Copy constructor.
All the media related classes and functions.