Exemplo n.º 1
0
 internal PcmDownmixingTranscoder(PipeReader input,
                                  PcmAudioCodec codec)
 {
     _input = input;
     _codec = codec;
     _pipe  = new Pipe();
 }
Exemplo n.º 2
0
 internal PcmFormatTranscoder(PipeReader input,
                              PcmAudioCodec codec)
 {
     _input = input;
     _codec = codec;
     _pipe  = new Pipe();
 }
Exemplo n.º 3
0
        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();
 }
Exemplo n.º 5
0
        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();
        }