Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(542)

Side by Side Diff: webrtc/modules/audio_coding/codecs/isac/main/source/structs.h

Issue 1177993003: iSAC: Move global trig tables into the codec instance (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 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 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 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 double loFiltGain[SUBFRAMES]; 421 double loFiltGain[SUBFRAMES];
422 double hiFiltGain[SUBFRAMES]; 422 double hiFiltGain[SUBFRAMES];
423 /* Upper boundary of interval W */ 423 /* Upper boundary of interval W */
424 uint32_t W_upper; 424 uint32_t W_upper;
425 uint32_t streamval; 425 uint32_t streamval;
426 /* Index to the current position in bytestream */ 426 /* Index to the current position in bytestream */
427 uint32_t stream_index; 427 uint32_t stream_index;
428 uint8_t stream[3]; 428 uint8_t stream[3];
429 } transcode_obj; 429 } transcode_obj;
430 430
431 typedef struct {
432 // TODO(kwiberg): The size of these tables could be reduced by storing floats
433 // instead of doubles, and by making use of the identity cos(x) =
434 // sin(x+pi/2). They could also be made global constants that we fill in at
435 // compile time.
436 double costab1[FRAMESAMPLES_HALF];
437 double sintab1[FRAMESAMPLES_HALF];
438 double costab2[FRAMESAMPLES_QUARTER];
439 double sintab2[FRAMESAMPLES_QUARTER];
440 } TransformTables;
431 441
432 typedef struct { 442 typedef struct {
433 // lower-band codec instance 443 // lower-band codec instance
434 ISACLBStruct instLB; 444 ISACLBStruct instLB;
435 // upper-band codec instance 445 // upper-band codec instance
436 ISACUBStruct instUB; 446 ISACUBStruct instUB;
437 447
438 // Bandwidth Estimator and model for the rate. 448 // Bandwidth Estimator and model for the rate.
439 BwEstimatorstr bwestimator_obj; 449 BwEstimatorstr bwestimator_obj;
440 RateModel rate_data_obj; 450 RateModel rate_data_obj;
(...skipping 29 matching lines...) Expand all
470 // Maximum allowed rate, measured in Bytes per 30 ms. 480 // Maximum allowed rate, measured in Bytes per 30 ms.
471 int16_t maxRateBytesPer30Ms; 481 int16_t maxRateBytesPer30Ms;
472 // Maximum allowed payload-size, measured in Bytes. 482 // Maximum allowed payload-size, measured in Bytes.
473 int16_t maxPayloadSizeBytes; 483 int16_t maxPayloadSizeBytes;
474 /* The expected sampling rate of the input signal. Valid values are 16000, 484 /* The expected sampling rate of the input signal. Valid values are 16000,
475 * 32000 and 48000. This is not the operation sampling rate of the codec. 485 * 32000 and 48000. This is not the operation sampling rate of the codec.
476 * Input signals at 48 kHz are resampled to 32 kHz, then encoded. */ 486 * Input signals at 48 kHz are resampled to 32 kHz, then encoded. */
477 uint16_t in_sample_rate_hz; 487 uint16_t in_sample_rate_hz;
478 /* State for the input-resampler. It is only used for 48 kHz input signals. */ 488 /* State for the input-resampler. It is only used for 48 kHz input signals. */
479 int16_t state_in_resampler[SIZE_RESAMPLER_STATE]; 489 int16_t state_in_resampler[SIZE_RESAMPLER_STATE];
490
491 // Trig tables for WebRtcIsac_Time2Spec and WebRtcIsac_Spec2time.
492 TransformTables transform_tables;
480 } ISACMainStruct; 493 } ISACMainStruct;
481 494
482 #endif /* WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_SOURCE_STRUCTS_H_ */ 495 #endif /* WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_SOURCE_STRUCTS_H_ */
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698