LibMedia: Add WAV PCM codecs to CodecID
This is a subset of FFmpeg's PCM codec IDs, limited to only the ones that are supported by its WAV encoder.
This commit is contained in:
parent
fa3cda8e4a
commit
7c101ab910
2 changed files with 73 additions and 0 deletions
|
|
@ -32,6 +32,16 @@ enum class CodecID : u8 {
|
|||
Vorbis,
|
||||
Opus,
|
||||
FLAC,
|
||||
// PCM
|
||||
U8,
|
||||
S16LE,
|
||||
S24LE,
|
||||
S32LE,
|
||||
S64LE,
|
||||
F32LE,
|
||||
F64LE,
|
||||
ALaw,
|
||||
MuLaw,
|
||||
};
|
||||
|
||||
inline TrackType track_type_from_codec_id(CodecID codec)
|
||||
|
|
@ -53,6 +63,15 @@ inline TrackType track_type_from_codec_id(CodecID codec)
|
|||
case CodecID::Vorbis:
|
||||
case CodecID::Opus:
|
||||
case CodecID::FLAC:
|
||||
case CodecID::U8:
|
||||
case CodecID::S16LE:
|
||||
case CodecID::S24LE:
|
||||
case CodecID::S32LE:
|
||||
case CodecID::S64LE:
|
||||
case CodecID::F32LE:
|
||||
case CodecID::F64LE:
|
||||
case CodecID::ALaw:
|
||||
case CodecID::MuLaw:
|
||||
return TrackType::Audio;
|
||||
case CodecID::Unknown:
|
||||
break;
|
||||
|
|
@ -95,6 +114,24 @@ constexpr StringView codec_id_to_string(CodecID codec)
|
|||
return "Opus"sv;
|
||||
case Media::CodecID::FLAC:
|
||||
return "FLAC"sv;
|
||||
case CodecID::U8:
|
||||
return "unsigned 8-bit PCM"sv;
|
||||
case CodecID::S16LE:
|
||||
return "signed 16-bit PCM"sv;
|
||||
case CodecID::S24LE:
|
||||
return "signed 24-bit PCM"sv;
|
||||
case CodecID::S32LE:
|
||||
return "signed 32-bit PCM"sv;
|
||||
case CodecID::S64LE:
|
||||
return "signed 64-bit PCM"sv;
|
||||
case CodecID::F32LE:
|
||||
return "32-bit float PCM"sv;
|
||||
case CodecID::F64LE:
|
||||
return "64-bit float PCM"sv;
|
||||
case CodecID::ALaw:
|
||||
return "A-law PCM"sv;
|
||||
case CodecID::MuLaw:
|
||||
return "μ-law PCM"sv;
|
||||
}
|
||||
return "Unknown"sv;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,6 +48,24 @@ static inline AVCodecID ffmpeg_codec_id_from_media_codec_id(CodecID codec)
|
|||
return AV_CODEC_ID_OPUS;
|
||||
case CodecID::FLAC:
|
||||
return AV_CODEC_ID_FLAC;
|
||||
case CodecID::U8:
|
||||
return AV_CODEC_ID_PCM_U8;
|
||||
case CodecID::S16LE:
|
||||
return AV_CODEC_ID_PCM_S16LE;
|
||||
case CodecID::S24LE:
|
||||
return AV_CODEC_ID_PCM_S24LE;
|
||||
case CodecID::S32LE:
|
||||
return AV_CODEC_ID_PCM_S32LE;
|
||||
case CodecID::S64LE:
|
||||
return AV_CODEC_ID_PCM_S64LE;
|
||||
case CodecID::F32LE:
|
||||
return AV_CODEC_ID_PCM_F32LE;
|
||||
case CodecID::F64LE:
|
||||
return AV_CODEC_ID_PCM_F64LE;
|
||||
case CodecID::ALaw:
|
||||
return AV_CODEC_ID_PCM_ALAW;
|
||||
case CodecID::MuLaw:
|
||||
return AV_CODEC_ID_PCM_MULAW;
|
||||
case CodecID::Unknown:
|
||||
return AV_CODEC_ID_NONE;
|
||||
}
|
||||
|
|
@ -86,6 +104,24 @@ static inline CodecID media_codec_id_from_ffmpeg_codec_id(AVCodecID codec)
|
|||
return CodecID::Opus;
|
||||
case AV_CODEC_ID_FLAC:
|
||||
return CodecID::FLAC;
|
||||
case AV_CODEC_ID_PCM_U8:
|
||||
return CodecID::U8;
|
||||
case AV_CODEC_ID_PCM_S16LE:
|
||||
return CodecID::S16LE;
|
||||
case AV_CODEC_ID_PCM_S24LE:
|
||||
return CodecID::S24LE;
|
||||
case AV_CODEC_ID_PCM_S32LE:
|
||||
return CodecID::S32LE;
|
||||
case AV_CODEC_ID_PCM_S64LE:
|
||||
return CodecID::S64LE;
|
||||
case AV_CODEC_ID_PCM_F32LE:
|
||||
return CodecID::F32LE;
|
||||
case AV_CODEC_ID_PCM_F64LE:
|
||||
return CodecID::F64LE;
|
||||
case AV_CODEC_ID_PCM_ALAW:
|
||||
return CodecID::ALaw;
|
||||
case AV_CODEC_ID_PCM_MULAW:
|
||||
return CodecID::MuLaw;
|
||||
default:
|
||||
return CodecID::Unknown;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue