Skip to content

Commit dd05283

Browse files
Zaggy1024gmta
authored andcommitted
LibMedia: Support the MP3 and AAC codecs in our demuxer
1 parent 6b34003 commit dd05283

File tree

3 files changed

+22
-0
lines changed

3 files changed

+22
-0
lines changed

Libraries/LibMedia/CodecID.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ enum class CodecID : u32 {
2222
H263,
2323
H264,
2424
H265,
25+
MP3,
26+
AAC,
2527
// AOMedia
2628
AV1,
2729
// Xiph
@@ -64,6 +66,12 @@ struct Formatter<Media::CodecID> : Formatter<StringView> {
6466
case Media::CodecID::H265:
6567
codec = "H.265"sv;
6668
break;
69+
case Media::CodecID::MP3:
70+
codec = "MP3"sv;
71+
break;
72+
case Media::CodecID::AAC:
73+
codec = "AAC"sv;
74+
break;
6775
case Media::CodecID::MPEG1:
6876
codec = "MPEG1"sv;
6977
break;

Libraries/LibMedia/Containers/Matroska/MatroskaDemuxer.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,12 @@ CodecID MatroskaDemuxer::get_codec_id_for_string(FlyString const& codec_id)
130130
return CodecID::H264;
131131
if (codec_id == "V_MPEGH/ISO/HEVC")
132132
return CodecID::H265;
133+
if (codec_id == "A_MPEG/L3")
134+
return CodecID::MP3;
135+
if (codec_id == "A_AAC" || codec_id == "A_AAC/MPEG4/LC"
136+
|| codec_id == "A_AAC/MPEG4/LC/SBR" || codec_id == "A_AAC/MPEG4/LTP"
137+
|| codec_id == "A_AAC/MPEG4/MAIN" || codec_id == "A_AAC/MPEG4/SSR")
138+
return CodecID::AAC;
133139
if (codec_id == "V_AV1")
134140
return CodecID::AV1;
135141
if (codec_id == "V_THEORA")

Libraries/LibMedia/FFmpeg/FFmpegHelpers.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ static inline AVCodecID ffmpeg_codec_id_from_media_codec_id(CodecID codec)
3333
return AV_CODEC_ID_H264;
3434
case CodecID::H265:
3535
return AV_CODEC_ID_HEVC;
36+
case CodecID::MP3:
37+
return AV_CODEC_ID_MP3;
38+
case CodecID::AAC:
39+
return AV_CODEC_ID_AAC;
3640
case CodecID::AV1:
3741
return AV_CODEC_ID_AV1;
3842
case CodecID::Theora:
@@ -65,6 +69,10 @@ static inline CodecID media_codec_id_from_ffmpeg_codec_id(AVCodecID codec)
6569
return CodecID::H264;
6670
case AV_CODEC_ID_HEVC:
6771
return CodecID::H265;
72+
case AV_CODEC_ID_MP3:
73+
return CodecID::MP3;
74+
case AV_CODEC_ID_AAC:
75+
return CodecID::AAC;
6876
case AV_CODEC_ID_AV1:
6977
return CodecID::AV1;
7078
case AV_CODEC_ID_THEORA:

0 commit comments

Comments
 (0)