tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

audio_decoder_pcm16b.h (1789B)


      1 /*
      2 *  Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
      3 *
      4 *  Use of this source code is governed by a BSD-style license
      5 *  that can be found in the LICENSE file in the root of the source
      6 *  tree. An additional intellectual property rights grant can be found
      7 *  in the file PATENTS.  All contributing project authors may
      8 *  be found in the AUTHORS file in the root of the source tree.
      9 */
     10 
     11 #ifndef MODULES_AUDIO_CODING_CODECS_PCM16B_AUDIO_DECODER_PCM16B_H_
     12 #define MODULES_AUDIO_CODING_CODECS_PCM16B_AUDIO_DECODER_PCM16B_H_
     13 
     14 #include <stddef.h>
     15 #include <stdint.h>
     16 
     17 #include <vector>
     18 
     19 #include "api/audio_codecs/audio_decoder.h"
     20 #include "rtc_base/buffer.h"
     21 
     22 namespace webrtc {
     23 
     24 class AudioDecoderPcm16B final : public AudioDecoder {
     25 public:
     26  AudioDecoderPcm16B(int sample_rate_hz, size_t num_channels);
     27 
     28  AudioDecoderPcm16B(const AudioDecoderPcm16B&) = delete;
     29  AudioDecoderPcm16B& operator=(const AudioDecoderPcm16B&) = delete;
     30 
     31  void Reset() override;
     32  std::vector<ParseResult> ParsePayload(Buffer&& payload,
     33                                        uint32_t timestamp) override;
     34  int PacketDuration(const uint8_t* encoded, size_t encoded_len) const override;
     35  int PacketDurationRedundant(const uint8_t* encoded,
     36                              size_t encoded_len) const override;
     37  int SampleRateHz() const override;
     38  size_t Channels() const override;
     39 
     40 protected:
     41  int DecodeInternal(const uint8_t* encoded,
     42                     size_t encoded_len,
     43                     int sample_rate_hz,
     44                     int16_t* decoded,
     45                     SpeechType* speech_type) override;
     46 
     47 private:
     48  const int sample_rate_hz_;
     49  const size_t num_channels_;
     50 };
     51 
     52 }  // namespace webrtc
     53 
     54 #endif  // MODULES_AUDIO_CODING_CODECS_PCM16B_AUDIO_DECODER_PCM16B_H_