summaryrefslogtreecommitdiff
path: root/src/codecs
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-04-01 13:22:21 +1100
committerjacqueline <me@jacqueline.id.au>2023-04-19 10:29:38 +1000
commit7c6fd654f50e6665efa4226c6b927f9762734182 (patch)
tree58ccb69068c550e9c2223c1b510cfa525690b731 /src/codecs
parent3817ec0c77b8d44e54b35ea9f76e7bb4666c6c08 (diff)
downloadtangara-fw-7c6fd654f50e6665efa4226c6b927f9762734182.tar.gz
New pipeline building, still needs proper control
Diffstat (limited to 'src/codecs')
-rw-r--r--src/codecs/codec.cpp2
-rw-r--r--src/codecs/include/mad.hpp4
-rw-r--r--src/codecs/mad.cpp7
3 files changed, 7 insertions, 6 deletions
diff --git a/src/codecs/codec.cpp b/src/codecs/codec.cpp
index 4e9a6a47..bdc8f51e 100644
--- a/src/codecs/codec.cpp
+++ b/src/codecs/codec.cpp
@@ -5,7 +5,7 @@
namespace codecs {
-auto CreateCodecForFile(const std::string& file)
+auto CreateCodecForType(StreamType type)
-> cpp::result<std::unique_ptr<ICodec>, CreateCodecError> {
return std::make_unique<MadMp3Decoder>(); // TODO.
}
diff --git a/src/codecs/include/mad.hpp b/src/codecs/include/mad.hpp
index 1f5791b9..074784fb 100644
--- a/src/codecs/include/mad.hpp
+++ b/src/codecs/include/mad.hpp
@@ -17,10 +17,10 @@ class MadMp3Decoder : public ICodec {
MadMp3Decoder();
~MadMp3Decoder();
- auto CanHandleFile(const std::string& path) -> bool override;
+ auto CanHandleType(StreamType type) -> bool override;
auto GetOutputFormat() -> OutputFormat override;
auto ResetForNewStream() -> void override;
- auto SetInput(cpp::span<std::byte> input) -> void override;
+ auto SetInput(cpp::span<const std::byte> input) -> void override;
auto GetInputPosition() -> std::size_t override;
auto ProcessNextFrame() -> cpp::result<bool, ProcessingError> override;
auto WriteOutputSamples(cpp::span<std::byte> output)
diff --git a/src/codecs/mad.cpp b/src/codecs/mad.cpp
index 1112bd62..eec2d633 100644
--- a/src/codecs/mad.cpp
+++ b/src/codecs/mad.cpp
@@ -5,6 +5,7 @@
#include "mad.h"
#include "codec.hpp"
+#include "types.hpp"
namespace codecs {
@@ -35,8 +36,8 @@ MadMp3Decoder::~MadMp3Decoder() {
mad_header_finish(&header_);
}
-auto MadMp3Decoder::CanHandleFile(const std::string& path) -> bool {
- return true; // TODO.
+auto MadMp3Decoder::CanHandleType(StreamType type) -> bool {
+ return type == STREAM_MP3;
}
auto MadMp3Decoder::GetOutputFormat() -> OutputFormat {
@@ -52,7 +53,7 @@ auto MadMp3Decoder::ResetForNewStream() -> void {
has_decoded_header_ = false;
}
-auto MadMp3Decoder::SetInput(cpp::span<std::byte> input) -> void {
+auto MadMp3Decoder::SetInput(cpp::span<const std::byte> input) -> void {
mad_stream_buffer(&stream_,
reinterpret_cast<const unsigned char*>(input.data()),
input.size());