
RtpFileSource used to implement it's own RTP dump file reader, but with this change it simply uses RtpFileReader. One benefit is that pcap files are now also supported. All NetEq test tools that use RtpFileSource are updated. BUG=2692 R=kwiberg@webrtc.org Review URL: https://webrtc-codereview.appspot.com/22839004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7367 4adac7df-926f-26a2-2b94-8c16560cd09d
56 lines
1.6 KiB
C++
56 lines
1.6 KiB
C++
/*
|
|
* Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#ifndef WEBRTC_MODULES_AUDIO_CODING_NETEQ_TOOLS_PACKET_SOURCE_H_
|
|
#define WEBRTC_MODULES_AUDIO_CODING_NETEQ_TOOLS_PACKET_SOURCE_H_
|
|
|
|
#include <bitset>
|
|
|
|
#include "webrtc/base/constructormagic.h"
|
|
#include "webrtc/typedefs.h"
|
|
|
|
namespace webrtc {
|
|
namespace test {
|
|
|
|
class Packet;
|
|
|
|
// Interface class for an object delivering RTP packets to test applications.
|
|
class PacketSource {
|
|
public:
|
|
PacketSource() : use_ssrc_filter_(false), ssrc_(0) {}
|
|
virtual ~PacketSource() {}
|
|
|
|
// Returns a pointer to the next packet. Returns NULL if the source is
|
|
// depleted, or if an error occurred.
|
|
virtual Packet* NextPacket() = 0;
|
|
|
|
virtual void FilterOutPayloadType(uint8_t payload_type) {
|
|
filter_.set(payload_type, true);
|
|
}
|
|
|
|
virtual void SelectSsrc(uint32_t ssrc) {
|
|
use_ssrc_filter_ = true;
|
|
ssrc_ = ssrc;
|
|
}
|
|
|
|
protected:
|
|
std::bitset<128> filter_; // Payload type is 7 bits in the RFC.
|
|
// If SSRC filtering discards all packet that do not match the SSRC.
|
|
bool use_ssrc_filter_; // True when SSRC filtering is active.
|
|
uint32_t ssrc_; // The selected SSRC. All other SSRCs will be discarded.
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN(PacketSource);
|
|
};
|
|
|
|
} // namespace test
|
|
} // namespace webrtc
|
|
#endif // WEBRTC_MODULES_AUDIO_CODING_NETEQ_TOOLS_PACKET_SOURCE_H_
|