initial commit

This commit is contained in:
i2p
2026-08-27 11:21:58 -06:00
commit c21fb61050
336 changed files with 74161 additions and 0 deletions
+61
View File
@@ -0,0 +1,61 @@
using System;
using NAudio.Codecs;
using NAudio.Wave;
namespace Server.Helper;
public class G722ChatCodec
{
private readonly int bitrate;
private readonly G722CodecState encoderState;
private readonly G722CodecState decoderState;
private readonly G722Codec codec;
public string Name => "G.722 16kHz";
public int BitsPerSecond => bitrate;
public WaveFormat RecordFormat { get; }
public bool IsAvailable => true;
public G722ChatCodec()
{
bitrate = 64000;
encoderState = new G722CodecState(bitrate, G722Flags.None);
decoderState = new G722CodecState(bitrate, G722Flags.None);
codec = new G722Codec();
RecordFormat = new WaveFormat(16000, 1);
}
public byte[] Encode(byte[] data, int offset, int length)
{
if (offset != 0)
{
throw new ArgumentException("G722 does not yet support non-zero offsets");
}
WaveBuffer waveBuffer = new WaveBuffer(data);
byte[] array = new byte[length / 4];
codec.Encode(encoderState, array, waveBuffer.ShortBuffer, length / 2);
return array;
}
public byte[] Decode(byte[] data, int offset, int length)
{
if (offset != 0)
{
throw new ArgumentException("G722 does not yet support non-zero offsets");
}
byte[] array = new byte[length * 4];
WaveBuffer waveBuffer = new WaveBuffer(array);
codec.Decode(decoderState, waveBuffer.ShortBuffer, data, length);
return array;
}
public void Dispose()
{
}
}