• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2023 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 // Stubbed non-standard codec.
18 
19 #include "a2dp_vendor.h"
20 #include "a2dp_vendor_opus.h"
21 
A2DP_IsVendorSourceCodecValidOpus(const uint8_t * p_codec_info)22 bool A2DP_IsVendorSourceCodecValidOpus(const uint8_t* p_codec_info) {
23   return false;
24 }
25 
A2DP_IsVendorSinkCodecValidOpus(const uint8_t * p_codec_info)26 bool A2DP_IsVendorSinkCodecValidOpus(const uint8_t* p_codec_info) {
27   return false;
28 }
29 
A2DP_IsVendorPeerSourceCodecValidOpus(const uint8_t * p_codec_info)30 bool A2DP_IsVendorPeerSourceCodecValidOpus(const uint8_t* p_codec_info) {
31   return false;
32 }
33 
A2DP_IsVendorPeerSinkCodecValidOpus(const uint8_t * p_codec_info)34 bool A2DP_IsVendorPeerSinkCodecValidOpus(const uint8_t* p_codec_info) {
35   return false;
36 }
37 
A2DP_IsVendorSinkCodecSupportedOpus(const uint8_t * p_codec_info)38 bool A2DP_IsVendorSinkCodecSupportedOpus(const uint8_t* p_codec_info) {
39   return false;
40 }
A2DP_IsPeerSourceCodecSupportedOpus(const uint8_t * p_codec_info)41 bool A2DP_IsPeerSourceCodecSupportedOpus(const uint8_t* p_codec_info) {
42   return false;
43 }
44 
A2DP_VendorUsesRtpHeaderOpus(bool content_protection_enabled,const uint8_t * p_codec_info)45 bool A2DP_VendorUsesRtpHeaderOpus(bool content_protection_enabled,
46                                   const uint8_t* p_codec_info) {
47   return false;
48 }
49 
A2DP_VendorCodecNameOpus(const uint8_t * p_codec_info)50 const char* A2DP_VendorCodecNameOpus(const uint8_t* p_codec_info) {
51   return "Opus";
52 }
53 
A2DP_VendorCodecTypeEqualsOpus(const uint8_t * p_codec_info_a,const uint8_t * p_codec_info_b)54 bool A2DP_VendorCodecTypeEqualsOpus(const uint8_t* p_codec_info_a,
55                                     const uint8_t* p_codec_info_b) {
56   return false;
57 }
58 
A2DP_VendorCodecEqualsOpus(const uint8_t * p_codec_info_a,const uint8_t * p_codec_info_b)59 bool A2DP_VendorCodecEqualsOpus(const uint8_t* p_codec_info_a,
60                                 const uint8_t* p_codec_info_b) {
61   return false;
62 }
63 
A2DP_VendorGetBitRateOpus(const uint8_t * p_codec_info)64 int A2DP_VendorGetBitRateOpus(const uint8_t* p_codec_info) { return -1; }
65 
A2DP_VendorGetTrackSampleRateOpus(const uint8_t * p_codec_info)66 int A2DP_VendorGetTrackSampleRateOpus(const uint8_t* p_codec_info) {
67   return -1;
68 }
69 
A2DP_VendorGetTrackBitsPerSampleOpus(const uint8_t * p_codec_info)70 int A2DP_VendorGetTrackBitsPerSampleOpus(const uint8_t* p_codec_info) {
71   return -1;
72 }
73 
A2DP_VendorGetTrackChannelCountOpus(const uint8_t * p_codec_info)74 int A2DP_VendorGetTrackChannelCountOpus(const uint8_t* p_codec_info) {
75   return -1;
76 }
77 
A2DP_VendorGetSinkTrackChannelTypeOpus(const uint8_t * p_codec_info)78 int A2DP_VendorGetSinkTrackChannelTypeOpus(const uint8_t* p_codec_info) {
79   return -1;
80 }
81 
A2DP_VendorGetChannelModeCodeOpus(const uint8_t * p_codec_info)82 int A2DP_VendorGetChannelModeCodeOpus(const uint8_t* p_codec_info) {
83   return -1;
84 }
85 
A2DP_VendorGetFrameSizeOpus(const uint8_t * p_codec_info)86 int A2DP_VendorGetFrameSizeOpus(const uint8_t* p_codec_info) { return -1; }
87 
A2DP_VendorGetPacketTimestampOpus(const uint8_t * p_codec_info,const uint8_t * p_data,uint32_t * p_timestamp)88 bool A2DP_VendorGetPacketTimestampOpus(const uint8_t* p_codec_info,
89                                        const uint8_t* p_data,
90                                        uint32_t* p_timestamp) {
91   return false;
92 }
93 
A2DP_VendorBuildCodecHeaderOpus(const uint8_t * p_codec_info,BT_HDR * p_buf,uint16_t frames_per_packet)94 bool A2DP_VendorBuildCodecHeaderOpus(const uint8_t* p_codec_info, BT_HDR* p_buf,
95                                      uint16_t frames_per_packet) {
96   return false;
97 }
98 
A2DP_VendorCodecInfoStringOpus(const uint8_t * p_codec_info)99 std::string A2DP_VendorCodecInfoStringOpus(const uint8_t* p_codec_info) {
100   return "Unsupported codec: Opus";
101 }
102 
A2DP_VendorGetEncoderInterfaceOpus(const uint8_t * p_codec_info)103 const tA2DP_ENCODER_INTERFACE* A2DP_VendorGetEncoderInterfaceOpus(
104     const uint8_t* p_codec_info) {
105   return nullptr;
106 }
107 
A2DP_VendorGetDecoderInterfaceOpus(const uint8_t * p_codec_info)108 const tA2DP_DECODER_INTERFACE* A2DP_VendorGetDecoderInterfaceOpus(
109     const uint8_t* p_codec_info) {
110   return nullptr;
111 }
112 
A2DP_VendorAdjustCodecOpus(uint8_t * p_codec_info)113 bool A2DP_VendorAdjustCodecOpus(uint8_t* p_codec_info) { return false; }
114 
A2DP_VendorSourceCodecIndexOpus(const uint8_t * p_codec_info)115 btav_a2dp_codec_index_t A2DP_VendorSourceCodecIndexOpus(
116     const uint8_t* p_codec_info) {
117   return BTAV_A2DP_CODEC_INDEX_MAX;
118 }
119 
A2DP_VendorSinkCodecIndexOpus(const uint8_t * p_codec_info)120 btav_a2dp_codec_index_t A2DP_VendorSinkCodecIndexOpus(
121     const uint8_t* p_codec_info) {
122   return BTAV_A2DP_CODEC_INDEX_MAX;
123 }
124 
A2DP_VendorCodecIndexStrOpus(void)125 const char* A2DP_VendorCodecIndexStrOpus(void) { return "Opus"; }
126 
A2DP_VendorCodecIndexStrOpusSink(void)127 const char* A2DP_VendorCodecIndexStrOpusSink(void) { return "Opus SINK"; }
128 
A2DP_VendorInitCodecConfigOpus(AvdtpSepConfig * p_cfg)129 bool A2DP_VendorInitCodecConfigOpus(AvdtpSepConfig* p_cfg) { return false; }
130 
A2DP_VendorInitCodecConfigOpusSink(AvdtpSepConfig * p_cfg)131 bool A2DP_VendorInitCodecConfigOpusSink(AvdtpSepConfig* p_cfg) { return false; }
132 
A2dpCodecConfigOpusSource(btav_a2dp_codec_priority_t codec_priority)133 A2dpCodecConfigOpusSource::A2dpCodecConfigOpusSource(
134     btav_a2dp_codec_priority_t codec_priority)
135     : A2dpCodecConfigOpusBase(BTAV_A2DP_CODEC_INDEX_SOURCE_OPUS,
136                               A2DP_VendorCodecIndexStrOpus(), codec_priority,
137                               true) {}
138 
~A2dpCodecConfigOpusSource()139 A2dpCodecConfigOpusSource::~A2dpCodecConfigOpusSource() {}
140 
init()141 bool A2dpCodecConfigOpusSource::init() { return false; }
142 
useRtpHeaderMarkerBit() const143 bool A2dpCodecConfigOpusSource::useRtpHeaderMarkerBit() const { return false; }
144 
debug_codec_dump(int fd)145 void A2dpCodecConfigOpusSource::debug_codec_dump(int fd) {}
146 
setCodecConfig(const uint8_t * p_peer_codec_info,bool is_capability,uint8_t * p_result_codec_config)147 bool A2dpCodecConfigOpusBase::setCodecConfig(const uint8_t* p_peer_codec_info,
148                                              bool is_capability,
149                                              uint8_t* p_result_codec_config) {
150   return false;
151 }
152 
setPeerCodecCapabilities(const uint8_t * p_peer_codec_capabilities)153 bool A2dpCodecConfigOpusBase::setPeerCodecCapabilities(
154     const uint8_t* p_peer_codec_capabilities) {
155   return false;
156 }
157 
A2dpCodecConfigOpusSink(btav_a2dp_codec_priority_t codec_priority)158 A2dpCodecConfigOpusSink::A2dpCodecConfigOpusSink(
159     btav_a2dp_codec_priority_t codec_priority)
160     : A2dpCodecConfigOpusBase(BTAV_A2DP_CODEC_INDEX_SINK_OPUS,
161                               A2DP_VendorCodecIndexStrOpusSink(),
162                               codec_priority, false) {}
163 
~A2dpCodecConfigOpusSink()164 A2dpCodecConfigOpusSink::~A2dpCodecConfigOpusSink() {}
165 
init()166 bool A2dpCodecConfigOpusSink::init() { return false; }
167 
useRtpHeaderMarkerBit() const168 bool A2dpCodecConfigOpusSink::useRtpHeaderMarkerBit() const { return false; }
169 
updateEncoderUserConfig(const tA2DP_ENCODER_INIT_PEER_PARAMS * p_peer_params,bool * p_restart_input,bool * p_restart_output,bool * p_config_updated)170 bool A2dpCodecConfigOpusSink::updateEncoderUserConfig(
171     const tA2DP_ENCODER_INIT_PEER_PARAMS* p_peer_params, bool* p_restart_input,
172     bool* p_restart_output, bool* p_config_updated) {
173   return false;
174 }
175