internal PcmDownmixingTranscoder(PipeReader input, PcmAudioCodec codec) { _input = input; _codec = codec; _pipe = new Pipe(); }
internal PcmFormatTranscoder(PipeReader input, PcmAudioCodec codec) { _input = input; _codec = codec; _pipe = new Pipe(); }
internal unsafe PcmEncodingTranscoder(PipeReader input, PcmAudioCodec codec) { const int Application = 2049; // OPUS_APPLICATION_AUDIO Debug.Assert( typeof(T) == typeof(short) || typeof(T) == typeof(float)); Debug.Assert(codec.ChannelCount == 2); Debug.Assert(codec.SamplingRate == 48000); _codec = codec; int status; _encoder = opus_encoder_create(codec.SamplingRate, codec.ChannelCount, Application, &status); if (status < 0) { ThrowExternalException("Could not create Opus Encoder", status); } _input = input; _pipe = new Pipe(); }
internal PcmChannelDuplicationTranscoder(PipeReader input, PcmAudioCodec codec) { _input = input; _codec = codec; _pipe = new Pipe(); }
public PcmEndiannessTranscoder(PipeReader input, PcmAudioCodec codec) { Debug.Assert( typeof(T) == typeof(ushort) || typeof(T) == typeof(uint)); Debug.Assert(codec.Endianness == SampleEndianness.BigEndian); if (!Avx2.IsSupported && !Ssse3.IsSupported && !Sse2.IsSupported) { ThrowPlatformNotSupportedException( "Could not find support for AVX2, SSSE3 or SSE2"); } _input = input; _codec = codec; _pipe = new Pipe(); }