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

Side by Side Diff: webrtc/modules/audio_coding/neteq/tools/packet_source.h

Issue 2005873002: Let PacketSource::NextPacket() return an std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: rebase Created 4 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) 2014 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2014 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 #ifndef WEBRTC_MODULES_AUDIO_CODING_NETEQ_TOOLS_PACKET_SOURCE_H_ 11 #ifndef WEBRTC_MODULES_AUDIO_CODING_NETEQ_TOOLS_PACKET_SOURCE_H_
12 #define WEBRTC_MODULES_AUDIO_CODING_NETEQ_TOOLS_PACKET_SOURCE_H_ 12 #define WEBRTC_MODULES_AUDIO_CODING_NETEQ_TOOLS_PACKET_SOURCE_H_
13 13
14 #include <bitset> 14 #include <bitset>
15 #include <memory>
15 16
16 #include "webrtc/base/constructormagic.h" 17 #include "webrtc/base/constructormagic.h"
17 #include "webrtc/modules/audio_coding/neteq/tools/packet.h" 18 #include "webrtc/modules/audio_coding/neteq/tools/packet.h"
18 #include "webrtc/typedefs.h" 19 #include "webrtc/typedefs.h"
19 20
20 namespace webrtc { 21 namespace webrtc {
21 namespace test { 22 namespace test {
22 23
23 // Interface class for an object delivering RTP packets to test applications. 24 // Interface class for an object delivering RTP packets to test applications.
24 class PacketSource { 25 class PacketSource {
25 public: 26 public:
26 PacketSource() : use_ssrc_filter_(false), ssrc_(0) {} 27 PacketSource() : use_ssrc_filter_(false), ssrc_(0) {}
27 virtual ~PacketSource() {} 28 virtual ~PacketSource() {}
28 29
29 // Returns a pointer to the next packet. Returns NULL if the source is 30 // Returns next packet. Returns nullptr if the source is depleted, or if an
30 // depleted, or if an error occurred. 31 // error occurred.
31 virtual Packet* NextPacket() = 0; 32 virtual std::unique_ptr<Packet> NextPacket() = 0;
32 33
33 virtual void FilterOutPayloadType(uint8_t payload_type) { 34 virtual void FilterOutPayloadType(uint8_t payload_type) {
34 filter_.set(payload_type, true); 35 filter_.set(payload_type, true);
35 } 36 }
36 37
37 virtual void SelectSsrc(uint32_t ssrc) { 38 virtual void SelectSsrc(uint32_t ssrc) {
38 use_ssrc_filter_ = true; 39 use_ssrc_filter_ = true;
39 ssrc_ = ssrc; 40 ssrc_ = ssrc;
40 } 41 }
41 42
42 protected: 43 protected:
43 std::bitset<128> filter_; // Payload type is 7 bits in the RFC. 44 std::bitset<128> filter_; // Payload type is 7 bits in the RFC.
44 // If SSRC filtering discards all packet that do not match the SSRC. 45 // If SSRC filtering discards all packet that do not match the SSRC.
45 bool use_ssrc_filter_; // True when SSRC filtering is active. 46 bool use_ssrc_filter_; // True when SSRC filtering is active.
46 uint32_t ssrc_; // The selected SSRC. All other SSRCs will be discarded. 47 uint32_t ssrc_; // The selected SSRC. All other SSRCs will be discarded.
47 48
48 private: 49 private:
49 RTC_DISALLOW_COPY_AND_ASSIGN(PacketSource); 50 RTC_DISALLOW_COPY_AND_ASSIGN(PacketSource);
50 }; 51 };
51 52
52 } // namespace test 53 } // namespace test
53 } // namespace webrtc 54 } // namespace webrtc
54 #endif // WEBRTC_MODULES_AUDIO_CODING_NETEQ_TOOLS_PACKET_SOURCE_H_ 55 #endif // WEBRTC_MODULES_AUDIO_CODING_NETEQ_TOOLS_PACKET_SOURCE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698