diff --git a/src/libs/av/impl/AudioFile.cpp b/src/libs/av/impl/AudioFile.cpp index 5075af50..7a92a65e 100644 --- a/src/libs/av/impl/AudioFile.cpp +++ b/src/libs/av/impl/AudioFile.cpp @@ -72,22 +72,27 @@ namespace lms::av { switch (codec) { - case AV_CODEC_ID_MP3: return DecodingCodec::MP3; - case AV_CODEC_ID_AAC: return DecodingCodec::AAC; - case AV_CODEC_ID_AC3: return DecodingCodec::AC3; - case AV_CODEC_ID_VORBIS: return DecodingCodec::VORBIS; - case AV_CODEC_ID_WMAV1: return DecodingCodec::WMAV1; - case AV_CODEC_ID_WMAV2: return DecodingCodec::WMAV2; - case AV_CODEC_ID_FLAC: return DecodingCodec::FLAC; - case AV_CODEC_ID_ALAC: return DecodingCodec::ALAC; - case AV_CODEC_ID_WAVPACK: return DecodingCodec::WAVPACK; - case AV_CODEC_ID_MUSEPACK7: return DecodingCodec::MUSEPACK7; - case AV_CODEC_ID_MUSEPACK8: return DecodingCodec::MUSEPACK8; - case AV_CODEC_ID_APE: return DecodingCodec::APE; - case AV_CODEC_ID_EAC3: return DecodingCodec::EAC3; - case AV_CODEC_ID_MP4ALS: return DecodingCodec::MP4ALS; - case AV_CODEC_ID_OPUS: return DecodingCodec::OPUS; - case AV_CODEC_ID_SHORTEN: return DecodingCodec::SHORTEN; + case AV_CODEC_ID_MP3: return DecodingCodec::MP3; + case AV_CODEC_ID_AAC: return DecodingCodec::AAC; + case AV_CODEC_ID_AC3: return DecodingCodec::AC3; + case AV_CODEC_ID_VORBIS: return DecodingCodec::VORBIS; + case AV_CODEC_ID_WMAV1: return DecodingCodec::WMAV1; + case AV_CODEC_ID_WMAV2: return DecodingCodec::WMAV2; + case AV_CODEC_ID_FLAC: return DecodingCodec::FLAC; + case AV_CODEC_ID_ALAC: return DecodingCodec::ALAC; + case AV_CODEC_ID_WAVPACK: return DecodingCodec::WAVPACK; + case AV_CODEC_ID_MUSEPACK7: return DecodingCodec::MUSEPACK7; + case AV_CODEC_ID_MUSEPACK8: return DecodingCodec::MUSEPACK8; + case AV_CODEC_ID_APE: return DecodingCodec::APE; + case AV_CODEC_ID_EAC3: return DecodingCodec::EAC3; + case AV_CODEC_ID_MP4ALS: return DecodingCodec::MP4ALS; + case AV_CODEC_ID_OPUS: return DecodingCodec::OPUS; + case AV_CODEC_ID_SHORTEN: return DecodingCodec::SHORTEN; + case AV_CODEC_ID_DSD_LSBF: return DecodingCodec::DSD_LSBF; + case AV_CODEC_ID_DSD_LSBF_PLANAR: return DecodingCodec::DSD_LSBF_PLANAR; + case AV_CODEC_ID_DSD_MSBF: return DecodingCodec::DSD_MSBF; + case AV_CODEC_ID_DSD_MSBF_PLANAR: return DecodingCodec::DSD_MSBF_PLANAR; + default: return DecodingCodec::UNKNOWN; } @@ -300,7 +305,7 @@ namespace lms::av // List should be sync with the demuxers shipped in the lms's docker version // + the _audioFileExtensions in ScanSettings // std::filesystem::path does not seem to have std::hash specialization on freebsd - static const std::unordered_map entries + static const std::unordered_map entries { {".mp3", "audio/mpeg"}, {".ogg", "audio/ogg"}, diff --git a/src/libs/av/include/av/IAudioFile.hpp b/src/libs/av/include/av/IAudioFile.hpp index 6d9915c9..51988d33 100644 --- a/src/libs/av/include/av/IAudioFile.hpp +++ b/src/libs/av/include/av/IAudioFile.hpp @@ -44,16 +44,20 @@ namespace lms::av VORBIS, WMAV1, WMAV2, - FLAC, // Flac - ALAC, // Apple Lossless Audio Codec (ALAC) - WAVPACK, // WavPack - MUSEPACK7, // Musepack + FLAC, // Flac + ALAC, // Apple Lossless Audio Codec (ALAC) + WAVPACK, // WavPack + MUSEPACK7, // Musepack MUSEPACK8, - APE, // // Monkey's Audio - EAC3, // Enhanced AC-3 - MP4ALS, // MPEG-4 Audio Lossless Coding - OPUS, // Opus - SHORTEN, // Shorten (shn) + APE, // Monkey's Audio + EAC3, // Enhanced AC-3 + MP4ALS, // MPEG-4 Audio Lossless Coding + OPUS, // Opus + SHORTEN, // Shorten (shn) + DSD_LSBF, // DSD (Direct Stream Digital), least significant bit first + DSD_LSBF_PLANAR, // DSD (Direct Stream Digital), least significant bit first, planar + DSD_MSBF, // DSD (Direct Stream Digital), most significant bit first + DSD_MSBF_PLANAR, // DSD (Direct Stream Digital), most significant bit first, planar // TODO add PCM codecs };