LibMedia: Support playing FLAC

This commit is contained in:
Zaggy1024 2025-10-01 22:48:09 -05:00 committed by Jelle Raaijmakers
parent 6ff7e4bfac
commit d3941cd83d
3 changed files with 10 additions and 0 deletions

View File

@ -30,6 +30,7 @@ enum class CodecID : u32 {
Theora,
Vorbis,
Opus,
FLAC,
};
}
@ -87,6 +88,9 @@ struct Formatter<Media::CodecID> : Formatter<StringView> {
case Media::CodecID::Opus:
codec = "Opus"sv;
break;
case Media::CodecID::FLAC:
codec = "FLAC"sv;
break;
}
return builder.put_string(codec);
}

View File

@ -153,6 +153,8 @@ static CodecID get_codec_id_for_string(String const& codec_id)
return CodecID::Vorbis;
if (codec_id == "A_OPUS")
return CodecID::Opus;
if (codec_id == "A_FLAC")
return CodecID::FLAC;
return CodecID::Unknown;
}

View File

@ -45,6 +45,8 @@ static inline AVCodecID ffmpeg_codec_id_from_media_codec_id(CodecID codec)
return AV_CODEC_ID_VORBIS;
case CodecID::Opus:
return AV_CODEC_ID_OPUS;
case CodecID::FLAC:
return AV_CODEC_ID_FLAC;
case CodecID::Unknown:
return AV_CODEC_ID_NONE;
}
@ -81,6 +83,8 @@ static inline CodecID media_codec_id_from_ffmpeg_codec_id(AVCodecID codec)
return CodecID::Vorbis;
case AV_CODEC_ID_OPUS:
return CodecID::Opus;
case AV_CODEC_ID_FLAC:
return CodecID::FLAC;
default:
return CodecID::Unknown;
}