Index: media/cast/test/utility/udp_proxy.cc |
diff --git a/media/cast/test/utility/udp_proxy.cc b/media/cast/test/utility/udp_proxy.cc |
index e71678c482ed8cfb85f46f870d7c43386ec010bd..4dbac83fa51980c25f4beba5784195dc2bad5d75 100644 |
--- a/media/cast/test/utility/udp_proxy.cc |
+++ b/media/cast/test/utility/udp_proxy.cc |
@@ -186,6 +186,29 @@ scoped_ptr<PacketPipe> NewRandomUnsortedDelay(double random_delay) { |
return scoped_ptr<PacketPipe>(new RandomUnsortedDelay(random_delay)).Pass(); |
} |
+class DuplicateAndDelay : public RandomUnsortedDelay { |
+ public: |
+ DuplicateAndDelay(double delay_min, |
+ double random_delay) : |
+ RandomUnsortedDelay(random_delay), |
+ delay_min_(delay_min) { |
+ } |
+ virtual void Send(scoped_ptr<Packet> packet) OVERRIDE { |
+ pipe_->Send(scoped_ptr<Packet>(new Packet(*packet.get()))); |
+ RandomUnsortedDelay::Send(packet.Pass()); |
+ } |
+ virtual double GetDelay() OVERRIDE { |
+ return RandomUnsortedDelay::GetDelay() + delay_min_; |
+ } |
+ private: |
+ double delay_min_; |
+}; |
+ |
+scoped_ptr<PacketPipe> NewDuplicateAndDelay(double delay_min, |
+ double random_delay) { |
+ return scoped_ptr<PacketPipe>( |
+ new DuplicateAndDelay(delay_min, random_delay)).Pass(); |
+} |
class RandomSortedDelay : public PacketPipe { |
public: |