From db7e57991657cd8e8c2c4f21fd8957a0704dea0d Mon Sep 17 00:00:00 2001 From: kingecg Date: Thu, 25 Sep 2025 23:25:27 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=E5=AE=8C=E6=95=B4Codec?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extension/frame.go | 74 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/extension/frame.go b/extension/frame.go index dc1bd38..6777a64 100644 --- a/extension/frame.go +++ b/extension/frame.go @@ -55,7 +55,22 @@ const ( CodecG711A CodecG711U CodecOpus - // ... 其他编解码器定义 + CodecL16 + CodecVP8 + CodecVP9 + CodecAV1 + CodecJPEG + CodecH266 + CodecTS + CodecPS + CodecMP3 + CodecADPCM + CodecSVACV + CodecSVACA + CodecG722 + CodecG723 + CodecG728 + CodecG729 ) var codecNames = map[CodecID]string{ @@ -65,6 +80,63 @@ var codecNames = map[CodecID]string{ CodecG711A: "PCMA", CodecG711U: "PCMU", CodecOpus: "opus", + CodecL16: "L16", + CodecVP8: "VP8", + CodecVP9: "VP9", + CodecAV1: "AV1", + CodecJPEG: "JPEG", + CodecH266: "H266", + CodecTS: "TS", + CodecPS: "PS", + CodecMP3: "MP3", + CodecADPCM: "ADPCM", + CodecSVACV: "SVACV", + CodecSVACA: "SVACA", + CodecG722: "G722", + CodecG723: "G723", + CodecG728: "G728", + CodecG729: "G729", +} +var codecTypes = map[CodecID]string{ + CodecH264: "video", + CodecH265: "video", + CodecAAC: "audio", + CodecG711A: "audio", + CodecG711U: "audio", + CodecOpus: "audio", + CodecL16: "audio", + CodecVP8: "video", + CodecVP9: "video", + CodecAV1: "video", + CodecJPEG: "video", + CodecH266: "video", + CodecTS: "video", + CodecPS: "video", + CodecMP3: "audio", + CodecADPCM: "audio", + CodecSVACV: "video", + CodecSVACA: "audio", + CodecG722: "audio", + CodecG723: "audio", + CodecG728: "audio", + CodecG729: "audio", +} + +func (c CodecID) Type() string { + if typ, ok := codecTypes[c]; ok { + return typ + } + return "invalid" +} + +func (c CodecID) TrackType() TrackType { + strType := c.Type() + if strType == "video" { + return TrackVideo + } else if strType == "audio" { + return TrackAudio + } + return TrackInvalid } func (c CodecID) String() string {