Implement the new OpenSubsonic API transcoding extension fixes #787

This commit is contained in:
emeric
2025-12-03 20:53:11 +01:00
parent 954b873f2b
commit 7feecb2027
30 changed files with 2855 additions and 163 deletions
+35 -1
View File
@@ -71,4 +71,38 @@ namespace lms::core::media
return "Unknown";
}
} // namespace lms::core::media
bool isCodecLossless(CodecType type)
{
switch (type)
{
case CodecType::ALAC:
case CodecType::APE:
case CodecType::DSD:
case CodecType::FLAC:
case CodecType::MP4ALS:
case CodecType::PCM:
case CodecType::Shorten:
case CodecType::TrueAudio:
case CodecType::WavPack:
case CodecType::WMA9Lossless:
return true;
case CodecType::AAC:
case CodecType::AC3:
case CodecType::EAC3:
case CodecType::MP3:
case CodecType::MPC7:
case CodecType::MPC8:
case CodecType::Opus:
case CodecType::Vorbis:
case CodecType::WMA1:
case CodecType::WMA2:
case CodecType::WMA9Pro:
return false;
}
return false;
}
} // namespace lms::core::media
+13
View File
@@ -19,6 +19,7 @@
#pragma once
#include <functional>
#include <optional>
#include <string>
#include <string_view>
@@ -49,3 +50,15 @@ namespace lms::core::stringUtils
std::optional<UUID>
readAs(std::string_view str);
}
namespace std
{
template<>
struct hash<lms::core::UUID>
{
size_t operator()(const lms::core::UUID& str) const
{
return hash<std::string_view>{}(str.getAsString());
}
};
} // namespace std
@@ -49,4 +49,6 @@ namespace lms::core::media
};
core::LiteralString codecTypeToString(CodecType type);
} // namespace lms::core::media
bool isCodecLossless(CodecType type);
} // namespace lms::core::media