diff options
| author | jacqueline <me@jacqueline.id.au> | 2022-11-17 17:36:37 +1100 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2022-11-17 17:36:37 +1100 |
| commit | acd6d7890051b9253007941733ea37e4011b1b5e (patch) | |
| tree | 5a542b3c98fe2a37dd9c10d9093a6e46b2267875 /src/codecs/codec.hpp | |
| parent | ddcbcad6d4771e0ec8228dc1848ebd1dfe303a0b (diff) | |
| download | tangara-fw-acd6d7890051b9253007941733ea37e4011b1b5e.tar.gz | |
Progress on own pipeline. Still very WIP
Diffstat (limited to 'src/codecs/codec.hpp')
| -rw-r--r-- | src/codecs/codec.hpp | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/codecs/codec.hpp b/src/codecs/codec.hpp index 24ba9cfe..5e8763a6 100644 --- a/src/codecs/codec.hpp +++ b/src/codecs/codec.hpp @@ -2,16 +2,28 @@ #include <cstddef> #include <cstdint> + +#include "result.hpp" + namespace codecs { - class IAudioDecoder { + enum CreateCodecError {}; + + auto CreateCodecForExtension(std::string extension) -> cpp::result<std::unique_ptr<ICodec>, CreateCodecError>; + + class ICodec { public: - virtual ~IAudioDecoder() {} + virtual ~ICodec() {} + + virtual auto CanHandleExtension(std::string extension) -> bool = 0; + + enum Error {}; - virtual auto ProcessData( + virtual auto Process( uint8_t *input, - size_t input_len, - uint8_t *output) -> size_t = 0; + std::size_t input_len, + uint8_t *output, + std::size_t output_length) -> cpp::result<size_t, Error> = 0; }; } // namespace codecs |
