summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Release 1.31.3Marcel Holtmann2014-10-302-1/+4
|
* AUTHORS: Mention Aurélien's contributionsMarcel Holtmann2014-10-301-0/+1
|
* build: Update library revision numberMarcel Holtmann2014-10-301-1/+1
|
* sbc: use an uint16 to store frame length in internal frame structureAurélien Zanelli2014-10-241-1/+1
| | | | | | Otherwise it could overflow in some cases. For instance in DUAL_CHANNEL mode, with subbands set to SBC_SB_8, blocks set to SBC_BLK_16 and bitpool set to 64 results in a frame length of 268.
* sbc: fix frame length calculation for DUAL_CHANNEL modeAurélien Zanelli2014-10-241-1/+1
| | | | | According to A2DP specification, section 12.9, for DUAL_CHANNEL mode, we shall use the same formula as for MONO mode.
* Release 1.21.2Marcel Holtmann2014-01-232-1/+5
|
* sbc: Add sbc_reinit_a2dp to sbc.symLuiz Augusto von Dentz2014-01-231-0/+1
|
* sbc: Add sbc_reinit_a2dpLuiz Augusto von Dentz2014-01-232-14/+37
| | | | | This adds sbc_reinit_a2dp that can be used to reconfigure a previous initialized sbc_t with new A2DP configuration.
* TODO: Update entries in TODO listMarcel Holtmann2014-01-222-31/+28
|
* sbc: Use bool variable for priv->initMarcel Holtmann2014-01-221-4/+4
|
* sbc: Add Intel copyright to public header fileMarcel Holtmann2014-01-221-0/+1
|
* build: Update library version for new sbc_init_a2dp() functionMarcel Holtmann2014-01-221-2/+2
|
* build: Keep high precision support disabled by defaultMarcel Holtmann2014-01-222-10/+8
|
* sbc: Add sbc_init_a2dp to sbc.symLuiz Augusto von Dentz2014-01-211-0/+4
|
* sbc: Add sbc_init_a2dpLuiz Augusto von Dentz2014-01-212-0/+146
| | | | | This adds sbc_init_a2dp that can be used to convert A2DP configuration to the internal representation since they are not binary compatible.
* build: Add configure option --disable-high-precisionLuiz Augusto von Dentz2013-09-162-2/+8
| | | | | This enables high precision using 64 bits accumulators by default which can be disabled with --disable-high-precision.
* sbc: Fix declaration of sbc_init_msbc symbolMarcel Holtmann2013-08-251-1/+4
|
* Release 1.11.1Marcel Holtmann2013-04-302-1/+4
|
* build: Update library version for new sbc_init_msbc() functionMarcel Holtmann2013-04-301-2/+2
|
* AUTHORS: Mention Frédéric's contributionsMarcel Holtmann2013-04-151-0/+1
|
* TODO: Add TODO listFrédéric Dalleau2013-04-151-0/+49
|
* sbc: Update sbcinfo for msbcFrédéric Dalleau2013-04-151-14/+40
|
* sbc: Update sbcenc for msbcFrédéric Dalleau2013-04-151-43/+65
|
* sbc: Update sbcdec for msbcFrédéric Dalleau2013-04-151-5/+17
|
* sbc: Add support for mSBC frame headerFrédéric Dalleau2013-04-151-90/+138
| | | | | | | | Traditionnal SBC frame header describe encoding parameters for each frame: nr of blocks, subbands, allocation method, and bitpool. In mSBC, only one combination of parameter is defined. That combination cannot be expressed using a traditionnal SBC header. Because of this, a specific header is defined with 0xAD followed by two reserved zero bytes.
* sbc: Declare and implement sbc_init_msbcFrédéric Dalleau2013-04-153-0/+36
|
* sbc: Add a private boolean flag to enable 15 block encodingFrédéric Dalleau2013-04-151-8/+29
| | | | | | This patch introduce a new private member which purpose is to encode 15 blocks. It is private to the library and can't be set from standard API. sbc_init_msbc() function will be defined to set this flag.
* sbc: Fix input reordering for 15 blocks caseFrédéric Dalleau2013-04-151-1/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SBC analysis handles 8 samples at a time. The optimisation requires 8 samples forming an "odd" block, followed by 8 samples, forming an "even" block. Until now SBC was used for encoding 4, 8, 12, or 16 blocks in a frame. Reordering took a frame and for each 16 samples (ie 2 blocks) it produced one "odd" block and one "even" block. A mSBC frame encodes 15 blocks of 8 samples. 14 blocks are processed as before, two at a time. If 8 samples are remaining, it will form the first half of two blocks (a bit of an "odd" block, and a bit of an "even" block). When processing the next frame, we detect eight samples were missing at previous iteration and the two block can be finished. This reordering is possible because only one sample is moved (x[-7]) AND the first coefficient in the coef table is 0. Thus x[0] doesn't need to be set and 0 can be used in calculation instead. Note that x[-7] is not used in analysis for this block. see: analysis_consts_fixed8_simd_odd. To detect that two blocks are not completed, the number of processed samples can be used. This value is stored in position. position starts at SBC_X_BUFFER_SIZE-72 and is decremented by 16 as long as two blocks can be formed. If only 8 samples are remaining in input, then position is decremented by 8 *arbitrarly*, thus indicating that some samples are pending. During next frame reordering, position will be decremented by 8 again, back to a 16 multiple. This logic works for SBC_X_BUFFER_SIZE-72 multiple of 16 and bigger than 8*2*15+72=312 and less than 8*3*15+72=432. The current value of 328 matches this constraint and X buffer is shifted every two frames (30 blocks) in mSBC. This way, we don't need to care about x[-7] when shifting, we also know that it won't be before X.
* sbc: Use plain C primitive if doing msbc on neonFrédéric Dalleau2013-04-151-0/+8
| | | | | | | | neon has it's own optimized input reordering. Until this code gets optimized, the neon assembly code will not work with the mSBC input reordering. However, the plain C version of mSBC can be used in this case. This patch makes use of plain C code if the block increment is 1 which is typical for mSBC.
* sbc: Add plain C primitive for 1b 8s analysisFrédéric Dalleau2013-04-151-1/+21
|
* sbc: Add iwmmxt primitive for 1b 8s encodingFrédéric Dalleau2013-04-151-1/+21
|
* sbc: Add armv6 primitive for 1b 8s analysisFrédéric Dalleau2013-04-151-1/+21
|
* sbc: Add mmx primitive for 1b 8s analysisFrédéric Dalleau2013-04-151-1/+25
|
* sbc: Rename sbc_analyze_4b_xx to sbc_analyze_xxFrédéric Dalleau2013-04-157-14/+14
|
* sbc: Break 4 blocks processing to variable stepsFrédéric Dalleau2013-04-152-10/+15
| | | | | | Until now SBC processed 4 blocks at a time. If we want to process 15 blocks, then we need to break this processing in one block steps. 4 blocks is still default increment.
* sbc: Add encoder_state to analysis functionsFrédéric Dalleau2013-04-157-22/+26
| | | | | | | | | Until now, SIMD analysis used to process 4 blocks of 8 samples at a time. This was implemented using two constant tables: odd and even. This mean we can only process 4, 8, 12, or 16 blocks par SBC packets. mSBC requires 15 blocks, so to be able to analyse 1 block, it will be necessary to know if we are processing an odd or even block. This will be done with a new member to encoder_state.
* build: Do not use deprecated AM_CONFIG_HEADERLucas De Marchi2013-03-011-1/+1
| | | | | The long-obsoleted AM_CONFIG_HEADER macro was removed in automake 1.13. Use AC_CONFIG_HEADERS instead.
* Release 1.01.0Marcel Holtmann2012-07-302-1/+3
|
* sbc: Remove unnecessary whitespace from empty lineJohan Hedberg2012-07-291-1/+1
|
* build: Set initial public library versionMarcel Holtmann2012-07-291-1/+1
|
* sbc: Set symbols for version 1.0Marcel Holtmann2012-07-291-1/+1
|
* build: Add symbol table for libraryMarcel Holtmann2012-07-292-1/+23
|
* sbc: Use SBC_EXPORT instead of LIB_EXPORTMarcel Holtmann2012-07-292-11/+11
|
* sbc: Fix spelling mistakeMarcel Holtmann2012-07-291-1/+1
|
* build: Add library version informationMarcel Holtmann2012-07-291-0/+12
|
* README: Add basic informationMarcel Holtmann2012-07-291-0/+20
|
* AUTHORS: Add missing original contributorMarcel Holtmann2012-07-291-0/+1
|
* sbc: Export public functions as APIMarcel Holtmann2012-07-291-10/+11
|
* build: Add private SBC library headerMarcel Holtmann2012-07-292-1/+26
|
* build: Switch to -fvisibility=hidden by defaultMarcel Holtmann2012-07-291-2/+5
|