Line data Source code
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 WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_SOURCE_ISAC_FLOAT_TYPE_H_
12 : #define WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_SOURCE_ISAC_FLOAT_TYPE_H_
13 :
14 : #include "webrtc/modules/audio_coding/codecs/isac/main/include/isac.h"
15 :
16 : namespace webrtc {
17 :
18 : struct IsacFloat {
19 : using instance_type = ISACStruct;
20 : static const bool has_swb = true;
21 0 : static inline int16_t Control(instance_type* inst,
22 : int32_t rate,
23 : int framesize) {
24 0 : return WebRtcIsac_Control(inst, rate, framesize);
25 : }
26 0 : static inline int16_t ControlBwe(instance_type* inst,
27 : int32_t rate_bps,
28 : int frame_size_ms,
29 : int16_t enforce_frame_size) {
30 0 : return WebRtcIsac_ControlBwe(inst, rate_bps, frame_size_ms,
31 0 : enforce_frame_size);
32 : }
33 0 : static inline int16_t Create(instance_type** inst) {
34 0 : return WebRtcIsac_Create(inst);
35 : }
36 0 : static inline int DecodeInternal(instance_type* inst,
37 : const uint8_t* encoded,
38 : size_t len,
39 : int16_t* decoded,
40 : int16_t* speech_type) {
41 0 : return WebRtcIsac_Decode(inst, encoded, len, decoded, speech_type);
42 : }
43 0 : static inline size_t DecodePlc(instance_type* inst,
44 : int16_t* decoded,
45 : size_t num_lost_frames) {
46 0 : return WebRtcIsac_DecodePlc(inst, decoded, num_lost_frames);
47 : }
48 :
49 0 : static inline void DecoderInit(instance_type* inst) {
50 0 : WebRtcIsac_DecoderInit(inst);
51 0 : }
52 0 : static inline int Encode(instance_type* inst,
53 : const int16_t* speech_in,
54 : uint8_t* encoded) {
55 0 : return WebRtcIsac_Encode(inst, speech_in, encoded);
56 : }
57 0 : static inline int16_t EncoderInit(instance_type* inst, int16_t coding_mode) {
58 0 : return WebRtcIsac_EncoderInit(inst, coding_mode);
59 : }
60 0 : static inline uint16_t EncSampRate(instance_type* inst) {
61 0 : return WebRtcIsac_EncSampRate(inst);
62 : }
63 :
64 0 : static inline int16_t Free(instance_type* inst) {
65 0 : return WebRtcIsac_Free(inst);
66 : }
67 0 : static inline void GetBandwidthInfo(instance_type* inst,
68 : IsacBandwidthInfo* bwinfo) {
69 0 : WebRtcIsac_GetBandwidthInfo(inst, bwinfo);
70 0 : }
71 0 : static inline int16_t GetErrorCode(instance_type* inst) {
72 0 : return WebRtcIsac_GetErrorCode(inst);
73 : }
74 :
75 0 : static inline int16_t GetNewFrameLen(instance_type* inst) {
76 0 : return WebRtcIsac_GetNewFrameLen(inst);
77 : }
78 0 : static inline void SetBandwidthInfo(instance_type* inst,
79 : const IsacBandwidthInfo* bwinfo) {
80 0 : WebRtcIsac_SetBandwidthInfo(inst, bwinfo);
81 0 : }
82 0 : static inline int16_t SetDecSampRate(instance_type* inst,
83 : uint16_t sample_rate_hz) {
84 0 : return WebRtcIsac_SetDecSampRate(inst, sample_rate_hz);
85 : }
86 0 : static inline int16_t SetEncSampRate(instance_type* inst,
87 : uint16_t sample_rate_hz) {
88 0 : return WebRtcIsac_SetEncSampRate(inst, sample_rate_hz);
89 : }
90 : static inline void SetEncSampRateInDecoder(instance_type* inst,
91 : uint16_t sample_rate_hz) {
92 : WebRtcIsac_SetEncSampRateInDecoder(inst, sample_rate_hz);
93 : }
94 : static inline void SetInitialBweBottleneck(instance_type* inst,
95 : int bottleneck_bits_per_second) {
96 : WebRtcIsac_SetInitialBweBottleneck(inst, bottleneck_bits_per_second);
97 : }
98 0 : static inline int16_t UpdateBwEstimate(instance_type* inst,
99 : const uint8_t* encoded,
100 : size_t packet_size,
101 : uint16_t rtp_seq_number,
102 : uint32_t send_ts,
103 : uint32_t arr_ts) {
104 0 : return WebRtcIsac_UpdateBwEstimate(inst, encoded, packet_size,
105 0 : rtp_seq_number, send_ts, arr_ts);
106 : }
107 0 : static inline int16_t SetMaxPayloadSize(instance_type* inst,
108 : int16_t max_payload_size_bytes) {
109 0 : return WebRtcIsac_SetMaxPayloadSize(inst, max_payload_size_bytes);
110 : }
111 0 : static inline int16_t SetMaxRate(instance_type* inst, int32_t max_bit_rate) {
112 0 : return WebRtcIsac_SetMaxRate(inst, max_bit_rate);
113 : }
114 : };
115 :
116 : } // namespace webrtc
117 : #endif // WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_SOURCE_ISAC_FLOAT_TYPE_H_
|