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

Side by Side Diff: webrtc/modules/audio_coding/main/acm2/acm_send_test_oldapi.h

Issue 1481493004: audio_coding: remove "main" directory (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebased Created 5 years 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
(Empty)
1 /*
2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
3 *
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
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11 #ifndef WEBRTC_MODULES_AUDIO_CODING_MAIN_ACM2_ACM_SEND_TEST_H_
12 #define WEBRTC_MODULES_AUDIO_CODING_MAIN_ACM2_ACM_SEND_TEST_H_
13
14 #include <vector>
15
16 #include "webrtc/base/constructormagic.h"
17 #include "webrtc/base/scoped_ptr.h"
18 #include "webrtc/modules/audio_coding/main/include/audio_coding_module.h"
19 #include "webrtc/modules/audio_coding/neteq/tools/packet_source.h"
20 #include "webrtc/system_wrappers/include/clock.h"
21
22 namespace webrtc {
23 class AudioEncoder;
24
25 namespace test {
26 class InputAudioFile;
27 class Packet;
28
29 class AcmSendTestOldApi : public AudioPacketizationCallback,
30 public PacketSource {
31 public:
32 AcmSendTestOldApi(InputAudioFile* audio_source,
33 int source_rate_hz,
34 int test_duration_ms);
35 virtual ~AcmSendTestOldApi() {}
36
37 // Registers the send codec. Returns true on success, false otherwise.
38 bool RegisterCodec(const char* payload_name,
39 int sampling_freq_hz,
40 int channels,
41 int payload_type,
42 int frame_size_samples);
43
44 // Registers an external send codec. Returns true on success, false otherwise.
45 bool RegisterExternalCodec(AudioEncoder* external_speech_encoder);
46
47 // Returns the next encoded packet. Returns NULL if the test duration was
48 // exceeded. Ownership of the packet is handed over to the caller.
49 // Inherited from PacketSource.
50 Packet* NextPacket();
51
52 // Inherited from AudioPacketizationCallback.
53 int32_t SendData(FrameType frame_type,
54 uint8_t payload_type,
55 uint32_t timestamp,
56 const uint8_t* payload_data,
57 size_t payload_len_bytes,
58 const RTPFragmentationHeader* fragmentation) override;
59
60 AudioCodingModule* acm() { return acm_.get(); }
61
62 private:
63 static const int kBlockSizeMs = 10;
64
65 // Creates a Packet object from the last packet produced by ACM (and received
66 // through the SendData method as a callback). Ownership of the new Packet
67 // object is transferred to the caller.
68 Packet* CreatePacket();
69
70 SimulatedClock clock_;
71 rtc::scoped_ptr<AudioCodingModule> acm_;
72 InputAudioFile* audio_source_;
73 int source_rate_hz_;
74 const size_t input_block_size_samples_;
75 AudioFrame input_frame_;
76 bool codec_registered_;
77 int test_duration_ms_;
78 // The following member variables are set whenever SendData() is called.
79 FrameType frame_type_;
80 int payload_type_;
81 uint32_t timestamp_;
82 uint16_t sequence_number_;
83 std::vector<uint8_t> last_payload_vec_;
84 bool data_to_send_;
85
86 RTC_DISALLOW_COPY_AND_ASSIGN(AcmSendTestOldApi);
87 };
88
89 } // namespace test
90 } // namespace webrtc
91 #endif // WEBRTC_MODULES_AUDIO_CODING_MAIN_ACM2_ACM_SEND_TEST_H_
OLDNEW
« no previous file with comments | « webrtc/modules/audio_coding/main/acm2/acm_resampler.cc ('k') | webrtc/modules/audio_coding/main/acm2/acm_send_test_oldapi.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698