summaryrefslogtreecommitdiff
path: root/src/codecs/foxenflac.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/codecs/foxenflac.cpp')
-rw-r--r--src/codecs/foxenflac.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/codecs/foxenflac.cpp b/src/codecs/foxenflac.cpp
index ee21da65..ce18975c 100644
--- a/src/codecs/foxenflac.cpp
+++ b/src/codecs/foxenflac.cpp
@@ -14,6 +14,8 @@
namespace codecs {
+static const char kTag[] = "flac";
+
FoxenFlacDecoder::FoxenFlacDecoder()
: flac_(FX_FLAC_ALLOC(FLAC_MAX_BLOCK_SIZE, 2)) {}
@@ -28,7 +30,11 @@ auto FoxenFlacDecoder::BeginStream(const cpp::span<const std::byte> input)
fx_flac_process(flac_, reinterpret_cast<const uint8_t*>(input.data()),
&bytes_used, NULL, NULL);
if (state != FLAC_END_OF_METADATA) {
- return {bytes_used, cpp::fail(Error::kMalformedData)};
+ if (state == FLAC_ERR) {
+ return {bytes_used, cpp::fail(Error::kMalformedData)};
+ } else {
+ return {bytes_used, cpp::fail(Error::kOutOfInput)};
+ }
}
int64_t channels = fx_flac_get_streaminfo(flac_, FLAC_KEY_N_CHANNELS);