Home | History | Annotate | Download | only in test
      1 /*
      2  *  Copyright (c) 2015 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 #ifndef WEBRTC_TEST_LAYER_FILTERING_TRANSPORT_H_
     11 #define WEBRTC_TEST_LAYER_FILTERING_TRANSPORT_H_
     12 
     13 #include "webrtc/call.h"
     14 #include "webrtc/test/direct_transport.h"
     15 #include "webrtc/test/fake_network_pipe.h"
     16 
     17 #include <map>
     18 
     19 namespace webrtc {
     20 
     21 namespace test {
     22 
     23 class LayerFilteringTransport : public test::DirectTransport {
     24  public:
     25   LayerFilteringTransport(const FakeNetworkPipe::Config& config,
     26                           Call* send_call,
     27                           uint8_t vp8_video_payload_type,
     28                           uint8_t vp9_video_payload_type,
     29                           int selected_tl,
     30                           int selected_sl);
     31   bool DiscardedLastPacket() const;
     32   bool SendRtp(const uint8_t* data,
     33                size_t length,
     34                const PacketOptions& options) override;
     35 
     36  private:
     37   // Used to distinguish between VP8 and VP9.
     38   const uint8_t vp8_video_payload_type_;
     39   const uint8_t vp9_video_payload_type_;
     40   // Discard or invalidate all temporal/spatial layers with id greater than the
     41   // selected one. -1 to disable filtering.
     42   const int selected_tl_;
     43   const int selected_sl_;
     44   bool discarded_last_packet_;
     45 };
     46 
     47 }  // namespace test
     48 }  // namespace webrtc
     49 
     50 #endif  // WEBRTC_TEST_LAYER_FILTERING_TRANSPORT_H_
     51