(codecString: string)
| 95 | } |
| 96 | |
| 97 | export const inferCodecFromCodecString = (codecString: string) => { |
| 98 | // Video codecs |
| 99 | if (codecString.startsWith('avc1') || codecString.startsWith('avc3')) { |
| 100 | return AV_CODEC_ID_H264; |
| 101 | } else if (codecString.startsWith('hev1') || codecString.startsWith('hvc1')) { |
| 102 | return AV_CODEC_ID_HEVC; |
| 103 | } else if (codecString === 'vp8') { |
| 104 | return AV_CODEC_ID_VP8; |
| 105 | } else if (codecString.startsWith('vp09')) { |
| 106 | return AV_CODEC_ID_VP9; |
| 107 | } else if (codecString.startsWith('av01')) { |
| 108 | return AV_CODEC_ID_AV1; |
| 109 | } |
| 110 | |
| 111 | // Audio codecs |
| 112 | if (codecString.startsWith('mp4a.40') || codecString === 'mp4a.67') { |
| 113 | return AV_CODEC_ID_AAC; |
| 114 | } else if ( |
| 115 | codecString === 'mp3' |
| 116 | || codecString === 'mp4a.69' |
| 117 | || codecString === 'mp4a.6B' |
| 118 | || codecString === 'mp4a.6b' |
| 119 | ) { |
| 120 | return AV_CODEC_ID_MP3; |
| 121 | } else if (codecString === 'opus') { |
| 122 | return AV_CODEC_ID_OPUS; |
| 123 | } else if (codecString === 'vorbis') { |
| 124 | return AV_CODEC_ID_VORBIS; |
| 125 | } else if (codecString === 'flac') { |
| 126 | return AV_CODEC_ID_FLAC; |
| 127 | } else if (codecString === 'ulaw') { |
| 128 | return AV_CODEC_ID_PCM_MULAW; |
| 129 | } else if (codecString === 'alaw') { |
| 130 | return AV_CODEC_ID_PCM_ALAW; |
| 131 | } else if (codecString === 'pcm-u8') { |
| 132 | return AV_CODEC_ID_PCM_U8; |
| 133 | } else if (codecString === 'pcm-s16') { |
| 134 | return AV_CODEC_ID_PCM_S16LE; |
| 135 | } else if (codecString === 'pcm-s24') { |
| 136 | return AV_CODEC_ID_PCM_S24LE; |
| 137 | } else if (codecString === 'pcm-s32') { |
| 138 | return AV_CODEC_ID_PCM_S32LE; |
| 139 | } else if (codecString === 'pcm-f32') { |
| 140 | return AV_CODEC_ID_PCM_F32LE; |
| 141 | } |
| 142 | |
| 143 | return null; |
| 144 | }; |
| 145 | |
| 146 | export const getChannelLayout = (numChannels: number) => { |
| 147 | switch (numChannels) { |
no outgoing calls
no test coverage detected