OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2013 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 #include <string> | 10 #include <string> |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 int OpusTest::EncodeDecode(WebRtcOpusEncInst* encoder, | 98 int OpusTest::EncodeDecode(WebRtcOpusEncInst* encoder, |
99 const int16_t* input_audio, | 99 const int16_t* input_audio, |
100 const int input_samples, | 100 const int input_samples, |
101 WebRtcOpusDecInst* decoder, | 101 WebRtcOpusDecInst* decoder, |
102 int16_t* output_audio, | 102 int16_t* output_audio, |
103 int16_t* audio_type) { | 103 int16_t* audio_type) { |
104 encoded_bytes_ = WebRtcOpus_Encode(encoder, | 104 encoded_bytes_ = WebRtcOpus_Encode(encoder, |
105 input_audio, | 105 input_audio, |
106 input_samples, kMaxBytes, | 106 input_samples, kMaxBytes, |
107 bitstream_); | 107 bitstream_); |
| 108 EXPECT_GE(encoded_bytes_, 0); |
108 return WebRtcOpus_Decode(decoder, bitstream_, | 109 return WebRtcOpus_Decode(decoder, bitstream_, |
109 encoded_bytes_, output_audio, | 110 encoded_bytes_, output_audio, |
110 audio_type); | 111 audio_type); |
111 } | 112 } |
112 | 113 |
113 // Test if encoder/decoder can enter DTX mode properly and do not enter DTX when | 114 // Test if encoder/decoder can enter DTX mode properly and do not enter DTX when |
114 // they should not. This test is signal dependent. | 115 // they should not. This test is signal dependent. |
115 void OpusTest::TestDtxEffect(bool dtx) { | 116 void OpusTest::TestDtxEffect(bool dtx) { |
116 PrepareSpeechData(channels_, 20, 2000); | 117 PrepareSpeechData(channels_, 20, 2000); |
117 | 118 |
(...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
531 EXPECT_EQ(0, WebRtcOpus_EncoderCreate(&opus_encoder_, | 532 EXPECT_EQ(0, WebRtcOpus_EncoderCreate(&opus_encoder_, |
532 channels_, | 533 channels_, |
533 application_)); | 534 application_)); |
534 EXPECT_EQ(0, WebRtcOpus_DecoderCreate(&opus_decoder_, channels_)); | 535 EXPECT_EQ(0, WebRtcOpus_DecoderCreate(&opus_decoder_, channels_)); |
535 | 536 |
536 // 10 ms. We use only first 10 ms of a 20 ms block. | 537 // 10 ms. We use only first 10 ms of a 20 ms block. |
537 encoded_bytes_ = WebRtcOpus_Encode(opus_encoder_, | 538 encoded_bytes_ = WebRtcOpus_Encode(opus_encoder_, |
538 speech_data_.GetNextBlock(), | 539 speech_data_.GetNextBlock(), |
539 kOpus10msFrameSamples, kMaxBytes, | 540 kOpus10msFrameSamples, kMaxBytes, |
540 bitstream_); | 541 bitstream_); |
| 542 EXPECT_GE(encoded_bytes_, 0); |
541 EXPECT_EQ(kOpus10msFrameSamples, | 543 EXPECT_EQ(kOpus10msFrameSamples, |
542 WebRtcOpus_DurationEst(opus_decoder_, bitstream_, | 544 WebRtcOpus_DurationEst(opus_decoder_, bitstream_, |
543 encoded_bytes_)); | 545 encoded_bytes_)); |
544 | 546 |
545 // 20 ms | 547 // 20 ms |
546 encoded_bytes_ = WebRtcOpus_Encode(opus_encoder_, | 548 encoded_bytes_ = WebRtcOpus_Encode(opus_encoder_, |
547 speech_data_.GetNextBlock(), | 549 speech_data_.GetNextBlock(), |
548 kOpus20msFrameSamples, kMaxBytes, | 550 kOpus20msFrameSamples, kMaxBytes, |
549 bitstream_); | 551 bitstream_); |
| 552 EXPECT_GE(encoded_bytes_, 0); |
550 EXPECT_EQ(kOpus20msFrameSamples, | 553 EXPECT_EQ(kOpus20msFrameSamples, |
551 WebRtcOpus_DurationEst(opus_decoder_, bitstream_, | 554 WebRtcOpus_DurationEst(opus_decoder_, bitstream_, |
552 encoded_bytes_)); | 555 encoded_bytes_)); |
553 | 556 |
554 // Free memory. | 557 // Free memory. |
555 EXPECT_EQ(0, WebRtcOpus_EncoderFree(opus_encoder_)); | 558 EXPECT_EQ(0, WebRtcOpus_EncoderFree(opus_encoder_)); |
556 EXPECT_EQ(0, WebRtcOpus_DecoderFree(opus_decoder_)); | 559 EXPECT_EQ(0, WebRtcOpus_DecoderFree(opus_decoder_)); |
557 } | 560 } |
558 | 561 |
559 TEST_P(OpusTest, OpusDecodeRepacketized) { | 562 TEST_P(OpusTest, OpusDecodeRepacketized) { |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
603 EXPECT_EQ(0, WebRtcOpus_EncoderFree(opus_encoder_)); | 606 EXPECT_EQ(0, WebRtcOpus_EncoderFree(opus_encoder_)); |
604 EXPECT_EQ(0, WebRtcOpus_DecoderFree(opus_decoder_)); | 607 EXPECT_EQ(0, WebRtcOpus_DecoderFree(opus_decoder_)); |
605 } | 608 } |
606 | 609 |
607 INSTANTIATE_TEST_CASE_P(VariousMode, | 610 INSTANTIATE_TEST_CASE_P(VariousMode, |
608 OpusTest, | 611 OpusTest, |
609 Combine(Values(1, 2), Values(0, 1))); | 612 Combine(Values(1, 2), Values(0, 1))); |
610 | 613 |
611 | 614 |
612 } // namespace webrtc | 615 } // namespace webrtc |
OLD | NEW |