NSMBW-Decomp
A decompilation of New Super Mario Bros. Wii
Loading...
Searching...
No Matches
bta_av_sbc.h
1/******************************************************************************
2 *
3 * Copyright (C) 2004-2012 Broadcom Corporation
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at:
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 ******************************************************************************/
18
19/******************************************************************************
20 *
21 * This is the interface to utility functions for dealing with SBC data
22 * frames and codec capabilities.
23 *
24 ******************************************************************************/
25#ifndef BTA_AV_SBC_H
26#define BTA_AV_SBC_H
27
28/*****************************************************************************
29** constants
30*****************************************************************************/
31
32/* SBC packet header size */
33#define BTA_AV_SBC_HDR_SIZE A2D_SBC_MPL_HDR_LEN
34
35/*******************************************************************************
36**
37** Function bta_av_sbc_init_up_sample
38**
39** Description initialize the up sample
40**
41** src_sps: samples per second (source audio data)
42** dst_sps: samples per second (converted audio data)
43** bits: number of bits per pcm sample
44** n_channels: number of channels (i.e. mono(1), stereo(2)...)
45**
46** Returns none
47**
48*******************************************************************************/
49extern void bta_av_sbc_init_up_sample (UINT32 src_sps, UINT32 dst_sps,
50 UINT16 bits, UINT16 n_channels);
51
52/*******************************************************************************
53**
54** Function bta_av_sbc_up_sample
55**
56** Description Given the source (p_src) audio data and
57** source speed (src_sps, samples per second),
58** This function converts it to audio data in the desired format
59**
60** p_src: the data buffer that holds the source audio data
61** p_dst: the data buffer to hold the converted audio data
62** src_samples: The number of source samples (number of bytes)
63** dst_samples: The size of p_dst (number of bytes)
64**
65** Note: An AE reported an issue with this function.
66** When called with bta_av_sbc_up_sample(src, uint8_array_dst..)
67** the byte before uint8_array_dst may get overwritten.
68** Using uint16_array_dst avoids the problem.
69** This issue is related to endian-ness and is hard to resolve
70** in a generic manner.
71** **************** Please use uint16 array as dst.
72**
73** Returns The number of bytes used in p_dst
74** The number of bytes used in p_src (in *p_ret)
75**
76*******************************************************************************/
77extern int bta_av_sbc_up_sample (void *p_src, void *p_dst,
78 UINT32 src_samples, UINT32 dst_samples,
79 UINT32 *p_ret);
80
81/*******************************************************************************
82**
83** Function bta_av_sbc_up_sample_16s (16bits-stereo)
84**
85** Description Given the source (p_src) audio data and
86** source speed (src_sps, samples per second),
87** This function converts it to audio data in the desired format
88**
89** p_src: the data buffer that holds the source audio data
90** p_dst: the data buffer to hold the converted audio data
91** src_samples: The number of source samples (in uint of 4 bytes)
92** dst_samples: The size of p_dst (in uint of 4 bytes)
93**
94** Returns The number of bytes used in p_dst
95** The number of bytes used in p_src (in *p_ret)
96**
97*******************************************************************************/
98extern int bta_av_sbc_up_sample_16s (void *p_src, void *p_dst,
99 UINT32 src_samples, UINT32 dst_samples,
100 UINT32 *p_ret);
101
102/*******************************************************************************
103**
104** Function bta_av_sbc_up_sample_16m (16bits-mono)
105**
106** Description Given the source (p_src) audio data and
107** source speed (src_sps, samples per second),
108** This function converts it to audio data in the desired format
109**
110** p_src: the data buffer that holds the source audio data
111** p_dst: the data buffer to hold the converted audio data
112** src_samples: The number of source samples (in uint of 2 bytes)
113** dst_samples: The size of p_dst (in uint of 2 bytes)
114**
115** Returns The number of bytes used in p_dst
116** The number of bytes used in p_src (in *p_ret)
117**
118*******************************************************************************/
119extern int bta_av_sbc_up_sample_16m (void *p_src, void *p_dst,
120 UINT32 src_samples, UINT32 dst_samples,
121 UINT32 *p_ret);
122
123/*******************************************************************************
124**
125** Function bta_av_sbc_up_sample_8s (8bits-stereo)
126**
127** Description Given the source (p_src) audio data and
128** source speed (src_sps, samples per second),
129** This function converts it to audio data in the desired format
130**
131** p_src: the data buffer that holds the source audio data
132** p_dst: the data buffer to hold the converted audio data
133** src_samples: The number of source samples (in uint of 2 bytes)
134** dst_samples: The size of p_dst (in uint of 2 bytes)
135**
136** Returns The number of bytes used in p_dst
137** The number of bytes used in p_src (in *p_ret)
138**
139*******************************************************************************/
140extern int bta_av_sbc_up_sample_8s (void *p_src, void *p_dst,
141 UINT32 src_samples, UINT32 dst_samples,
142 UINT32 *p_ret);
143
144/*******************************************************************************
145**
146** Function bta_av_sbc_up_sample_8m (8bits-mono)
147**
148** Description Given the source (p_src) audio data and
149** source speed (src_sps, samples per second),
150** This function converts it to audio data in the desired format
151**
152** p_src: the data buffer that holds the source audio data
153** p_dst: the data buffer to hold the converted audio data
154** src_samples: The number of source samples (number of bytes)
155** dst_samples: The size of p_dst (number of bytes)
156**
157** Returns The number of bytes used in p_dst
158** The number of bytes used in p_src (in *p_ret)
159**
160*******************************************************************************/
161extern int bta_av_sbc_up_sample_8m (void *p_src, void *p_dst,
162 UINT32 src_samples, UINT32 dst_samples,
163 UINT32 *p_ret);
164
165/*******************************************************************************
166**
167** Function bta_av_sbc_cfg_for_cap
168**
169** Description Determine the preferred SBC codec configuration for the
170** given codec capabilities. The function is passed the
171** preferred codec configuration and the peer codec
172** capabilities for the stream. The function attempts to
173** match the preferred capabilities with the configuration
174** as best it can. The resulting codec configuration is
175** returned in the same memory used for the capabilities.
176**
177** Returns 0 if ok, nonzero if error.
178** Codec configuration in p_cap.
179**
180*******************************************************************************/
181extern UINT8 bta_av_sbc_cfg_for_cap(UINT8 *p_peer, tA2D_SBC_CIE *p_cap, tA2D_SBC_CIE *p_pref);
182
183/*******************************************************************************
184**
185** Function bta_av_sbc_cfg_in_cap
186**
187** Description This function checks whether an SBC codec configuration
188** is allowable for the given codec capabilities.
189**
190** Returns 0 if ok, nonzero if error.
191**
192*******************************************************************************/
193extern UINT8 bta_av_sbc_cfg_in_cap(UINT8 *p_cfg, tA2D_SBC_CIE *p_cap);
194
195/*******************************************************************************
196**
197** Function bta_av_sbc_bld_hdr
198**
199** Description This function builds the packet header for MPF1.
200**
201** Returns void
202**
203*******************************************************************************/
204extern void bta_av_sbc_bld_hdr(BT_HDR *p_buf, UINT16 fr_per_pkt);
205
206#endif /* BTA_AV_SBC_H */
207