| OLD | NEW |
| 1 /* | 1 /* |
| 2 * libjingle | 2 * libjingle |
| 3 * Copyright 2012 Google Inc. | 3 * Copyright 2012 Google Inc. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are met: | 6 * modification, are permitted provided that the following conditions are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright notice, | 8 * 1. Redistributions of source code must retain the above copyright notice, |
| 9 * this list of conditions and the following disclaimer. | 9 * this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright notice, | 10 * 2. Redistributions in binary form must reproduce the above copyright notice, |
| (...skipping 22 matching lines...) Expand all Loading... |
| 33 #include "webrtc/base/timeutils.h" | 33 #include "webrtc/base/timeutils.h" |
| 34 | 34 |
| 35 // Audio sample value that is high enough that it doesn't occur naturally when | 35 // Audio sample value that is high enough that it doesn't occur naturally when |
| 36 // frames are being faked. E.g. NetEq will not generate this large sample value | 36 // frames are being faked. E.g. NetEq will not generate this large sample value |
| 37 // unless it has received an audio frame containing a sample of this value. | 37 // unless it has received an audio frame containing a sample of this value. |
| 38 // Even simpler buffers would likely just contain audio sample values of 0. | 38 // Even simpler buffers would likely just contain audio sample values of 0. |
| 39 static const int kHighSampleValue = 10000; | 39 static const int kHighSampleValue = 10000; |
| 40 | 40 |
| 41 // Same value as src/modules/audio_device/main/source/audio_device_config.h in | 41 // Same value as src/modules/audio_device/main/source/audio_device_config.h in |
| 42 // https://code.google.com/p/webrtc/ | 42 // https://code.google.com/p/webrtc/ |
| 43 static const uint32 kAdmMaxIdleTimeProcess = 1000; | 43 static const uint32_t kAdmMaxIdleTimeProcess = 1000; |
| 44 | 44 |
| 45 // Constants here are derived by running VoE using a real ADM. | 45 // Constants here are derived by running VoE using a real ADM. |
| 46 // The constants correspond to 10ms of mono audio at 44kHz. | 46 // The constants correspond to 10ms of mono audio at 44kHz. |
| 47 static const int kTimePerFrameMs = 10; | 47 static const int kTimePerFrameMs = 10; |
| 48 static const uint8_t kNumberOfChannels = 1; | 48 static const uint8_t kNumberOfChannels = 1; |
| 49 static const int kSamplesPerSecond = 44000; | 49 static const int kSamplesPerSecond = 44000; |
| 50 static const int kTotalDelayMs = 0; | 50 static const int kTotalDelayMs = 0; |
| 51 static const int kClockDriftMs = 0; | 51 static const int kClockDriftMs = 0; |
| 52 static const uint32_t kMaxVolume = 14392; | 52 static const uint32_t kMaxVolume = 14392; |
| 53 | 53 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 83 } | 83 } |
| 84 return capture_module; | 84 return capture_module; |
| 85 } | 85 } |
| 86 | 86 |
| 87 int FakeAudioCaptureModule::frames_received() const { | 87 int FakeAudioCaptureModule::frames_received() const { |
| 88 rtc::CritScope cs(&crit_); | 88 rtc::CritScope cs(&crit_); |
| 89 return frames_received_; | 89 return frames_received_; |
| 90 } | 90 } |
| 91 | 91 |
| 92 int64_t FakeAudioCaptureModule::TimeUntilNextProcess() { | 92 int64_t FakeAudioCaptureModule::TimeUntilNextProcess() { |
| 93 const uint32 current_time = rtc::Time(); | 93 const uint32_t current_time = rtc::Time(); |
| 94 if (current_time < last_process_time_ms_) { | 94 if (current_time < last_process_time_ms_) { |
| 95 // TODO: wraparound could be handled more gracefully. | 95 // TODO: wraparound could be handled more gracefully. |
| 96 return 0; | 96 return 0; |
| 97 } | 97 } |
| 98 const uint32 elapsed_time = current_time - last_process_time_ms_; | 98 const uint32_t elapsed_time = current_time - last_process_time_ms_; |
| 99 if (kAdmMaxIdleTimeProcess < elapsed_time) { | 99 if (kAdmMaxIdleTimeProcess < elapsed_time) { |
| 100 return 0; | 100 return 0; |
| 101 } | 101 } |
| 102 return kAdmMaxIdleTimeProcess - elapsed_time; | 102 return kAdmMaxIdleTimeProcess - elapsed_time; |
| 103 } | 103 } |
| 104 | 104 |
| 105 int32_t FakeAudioCaptureModule::Process() { | 105 int32_t FakeAudioCaptureModule::Process() { |
| 106 last_process_time_ms_ = rtc::Time(); | 106 last_process_time_ms_ = rtc::Time(); |
| 107 return 0; | 107 return 0; |
| 108 } | 108 } |
| (...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 677 // Receive and send frames every kTimePerFrameMs. | 677 // Receive and send frames every kTimePerFrameMs. |
| 678 if (playing_) { | 678 if (playing_) { |
| 679 ReceiveFrameP(); | 679 ReceiveFrameP(); |
| 680 } | 680 } |
| 681 if (recording_) { | 681 if (recording_) { |
| 682 SendFrameP(); | 682 SendFrameP(); |
| 683 } | 683 } |
| 684 } | 684 } |
| 685 | 685 |
| 686 next_frame_time_ += kTimePerFrameMs; | 686 next_frame_time_ += kTimePerFrameMs; |
| 687 const uint32 current_time = rtc::Time(); | 687 const uint32_t current_time = rtc::Time(); |
| 688 const uint32 wait_time = (next_frame_time_ > current_time) ? | 688 const uint32_t wait_time = |
| 689 next_frame_time_ - current_time : 0; | 689 (next_frame_time_ > current_time) ? next_frame_time_ - current_time : 0; |
| 690 process_thread_->PostDelayed(wait_time, this, MSG_RUN_PROCESS); | 690 process_thread_->PostDelayed(wait_time, this, MSG_RUN_PROCESS); |
| 691 } | 691 } |
| 692 | 692 |
| 693 void FakeAudioCaptureModule::ReceiveFrameP() { | 693 void FakeAudioCaptureModule::ReceiveFrameP() { |
| 694 ASSERT(process_thread_->IsCurrent()); | 694 ASSERT(process_thread_->IsCurrent()); |
| 695 { | 695 { |
| 696 rtc::CritScope cs(&crit_callback_); | 696 rtc::CritScope cs(&crit_callback_); |
| 697 if (!audio_callback_) { | 697 if (!audio_callback_) { |
| 698 return; | 698 return; |
| 699 } | 699 } |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 735 kNumberOfChannels, | 735 kNumberOfChannels, |
| 736 kSamplesPerSecond, kTotalDelayMs, | 736 kSamplesPerSecond, kTotalDelayMs, |
| 737 kClockDriftMs, current_mic_level, | 737 kClockDriftMs, current_mic_level, |
| 738 key_pressed, | 738 key_pressed, |
| 739 current_mic_level) != 0) { | 739 current_mic_level) != 0) { |
| 740 ASSERT(false); | 740 ASSERT(false); |
| 741 } | 741 } |
| 742 SetMicrophoneVolume(current_mic_level); | 742 SetMicrophoneVolume(current_mic_level); |
| 743 } | 743 } |
| 744 | 744 |
| OLD | NEW |