diff options
| author | jacqueline <me@jacqueline.id.au> | 2022-11-21 08:00:52 +1100 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2022-11-21 08:00:52 +1100 |
| commit | 5f7444d7956a6cc517ada1b8b96c4f9cdd408fd5 (patch) | |
| tree | 3dbdcf42899c7e0689d83d0d340f89c4aa2bab6e /src/codecs | |
| parent | 52e03182926d04fc458df745b46153a02800edac (diff) | |
| download | tangara-fw-5f7444d7956a6cc517ada1b8b96c4f9cdd408fd5.tar.gz | |
WIP
Diffstat (limited to 'src/codecs')
| -rw-r--r-- | src/codecs/include/codec.hpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/codecs/include/codec.hpp b/src/codecs/include/codec.hpp new file mode 100644 index 00000000..5e8763a6 --- /dev/null +++ b/src/codecs/include/codec.hpp @@ -0,0 +1,29 @@ +#pragma once + +#include <cstddef> +#include <cstdint> + +#include "result.hpp" + +namespace codecs { + + enum CreateCodecError {}; + + auto CreateCodecForExtension(std::string extension) -> cpp::result<std::unique_ptr<ICodec>, CreateCodecError>; + + class ICodec { + public: + virtual ~ICodec() {} + + virtual auto CanHandleExtension(std::string extension) -> bool = 0; + + enum Error {}; + + virtual auto Process( + uint8_t *input, + std::size_t input_len, + uint8_t *output, + std::size_t output_length) -> cpp::result<size_t, Error> = 0; + }; + +} // namespace codecs |
