| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2011 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 |
| 11 /* | 11 /* |
| 12 * encode.c | 12 * encode.c |
| 13 * | 13 * |
| 14 * Encoding function for the iSAC coder. | 14 * Encoding function for the iSAC coder. |
| 15 * | 15 * |
| 16 */ | 16 */ |
| 17 | 17 |
| 18 #include "webrtc/base/checks.h" |
| 18 #include "webrtc/modules/audio_coding/codecs/isac/fix/source/codec.h" | 19 #include "webrtc/modules/audio_coding/codecs/isac/fix/source/codec.h" |
| 19 | 20 |
| 20 #include <assert.h> | |
| 21 #include <stdio.h> | 21 #include <stdio.h> |
| 22 | 22 |
| 23 #include "webrtc/modules/audio_coding/codecs/isac/fix/source/arith_routins.h" | 23 #include "webrtc/modules/audio_coding/codecs/isac/fix/source/arith_routins.h" |
| 24 #include "webrtc/modules/audio_coding/codecs/isac/fix/source/bandwidth_estimator
.h" | 24 #include "webrtc/modules/audio_coding/codecs/isac/fix/source/bandwidth_estimator
.h" |
| 25 #include "webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding.h" | 25 #include "webrtc/modules/audio_coding/codecs/isac/fix/source/entropy_coding.h" |
| 26 #include "webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model.h
" | 26 #include "webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_masking_model.h
" |
| 27 #include "webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_tables.h" | 27 #include "webrtc/modules/audio_coding/codecs/isac/fix/source/lpc_tables.h" |
| 28 #include "webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_estimator.h" | 28 #include "webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_estimator.h" |
| 29 #include "webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_gain_tables.h
" | 29 #include "webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_gain_tables.h
" |
| 30 #include "webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_lag_tables.h" | 30 #include "webrtc/modules/audio_coding/codecs/isac/fix/source/pitch_lag_tables.h" |
| (...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 448 MinBytes = usefulstr_len + 255; | 448 MinBytes = usefulstr_len + 255; |
| 449 } | 449 } |
| 450 | 450 |
| 451 /* Save data for creation of multiple bitstreams */ | 451 /* Save data for creation of multiple bitstreams */ |
| 452 if (ISACenc_obj->SaveEnc_ptr != NULL) { | 452 if (ISACenc_obj->SaveEnc_ptr != NULL) { |
| 453 (ISACenc_obj->SaveEnc_ptr)->minBytes = MinBytes; | 453 (ISACenc_obj->SaveEnc_ptr)->minBytes = MinBytes; |
| 454 } | 454 } |
| 455 | 455 |
| 456 while (stream_length < MinBytes) | 456 while (stream_length < MinBytes) |
| 457 { | 457 { |
| 458 assert(stream_length >= 0); | 458 RTC_DCHECK_GE(stream_length, 0); |
| 459 if (stream_length & 0x0001){ | 459 if (stream_length & 0x0001){ |
| 460 ISACenc_obj->bitstr_seed = WEBRTC_SPL_RAND( ISACenc_obj->bitstr_seed ); | 460 ISACenc_obj->bitstr_seed = WEBRTC_SPL_RAND( ISACenc_obj->bitstr_seed ); |
| 461 ISACenc_obj->bitstr_obj.stream[stream_length / 2] |= | 461 ISACenc_obj->bitstr_obj.stream[stream_length / 2] |= |
| 462 (uint16_t)(ISACenc_obj->bitstr_seed & 0xFF); | 462 (uint16_t)(ISACenc_obj->bitstr_seed & 0xFF); |
| 463 } else { | 463 } else { |
| 464 ISACenc_obj->bitstr_seed = WEBRTC_SPL_RAND( ISACenc_obj->bitstr_seed ); | 464 ISACenc_obj->bitstr_seed = WEBRTC_SPL_RAND( ISACenc_obj->bitstr_seed ); |
| 465 ISACenc_obj->bitstr_obj.stream[stream_length / 2] = | 465 ISACenc_obj->bitstr_obj.stream[stream_length / 2] = |
| 466 ((uint16_t)ISACenc_obj->bitstr_seed << 8); | 466 ((uint16_t)ISACenc_obj->bitstr_seed << 8); |
| 467 } | 467 } |
| 468 stream_length++; | 468 stream_length++; |
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 626 if (status < 0) { | 626 if (status < 0) { |
| 627 return status; | 627 return status; |
| 628 } | 628 } |
| 629 } | 629 } |
| 630 | 630 |
| 631 /* complete arithmetic coding */ | 631 /* complete arithmetic coding */ |
| 632 stream_length = WebRtcIsacfix_EncTerminate(&ISACenc_obj->bitstr_obj); | 632 stream_length = WebRtcIsacfix_EncTerminate(&ISACenc_obj->bitstr_obj); |
| 633 | 633 |
| 634 return stream_length; | 634 return stream_length; |
| 635 } | 635 } |
| OLD | NEW |