LCOV - code coverage report
Current view: top level - media/webrtc/trunk/webrtc/video - stream_synchronization.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 3 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 3 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  *  Copyright (c) 2012 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_VIDEO_STREAM_SYNCHRONIZATION_H_
      12             : #define WEBRTC_VIDEO_STREAM_SYNCHRONIZATION_H_
      13             : 
      14             : #include <list>
      15             : 
      16             : #include "webrtc/system_wrappers/include/rtp_to_ntp_estimator.h"
      17             : #include "webrtc/typedefs.h"
      18             : 
      19             : namespace webrtc {
      20             : 
      21             : class StreamSynchronization {
      22             :  public:
      23           0 :   struct Measurements {
      24           0 :     Measurements() : latest_receive_time_ms(0), latest_timestamp(0) {}
      25             :     RtpToNtpEstimator rtp_to_ntp;
      26             :     int64_t latest_receive_time_ms;
      27             :     uint32_t latest_timestamp;
      28             :   };
      29             : 
      30             :   StreamSynchronization(uint32_t video_primary_ssrc, int audio_channel_id);
      31             : 
      32             :   bool ComputeDelays(int relative_delay_ms,
      33             :                      int current_audio_delay_ms,
      34             :                      int* extra_audio_delay_ms,
      35             :                      int* total_video_delay_target_ms);
      36             : 
      37             :   // On success |relative_delay| contains the number of milliseconds later video
      38             :   // is rendered relative audio. If audio is played back later than video a
      39             :   // |relative_delay| will be negative.
      40             :   static bool ComputeRelativeDelay(const Measurements& audio_measurement,
      41             :                                    const Measurements& video_measurement,
      42             :                                    int* relative_delay_ms);
      43             :   // Set target buffering delay - All audio and video will be delayed by at
      44             :   // least target_delay_ms.
      45             :   void SetTargetBufferingDelay(int target_delay_ms);
      46             : 
      47             :  private:
      48           0 :   struct SynchronizationDelays {
      49             :     int extra_video_delay_ms = 0;
      50             :     int last_video_delay_ms = 0;
      51             :     int extra_audio_delay_ms = 0;
      52             :     int last_audio_delay_ms = 0;
      53             :   };
      54             : 
      55             :   SynchronizationDelays channel_delay_;
      56             :   const uint32_t video_primary_ssrc_;
      57             :   const int audio_channel_id_;
      58             :   int base_target_delay_ms_;
      59             :   int avg_diff_ms_;
      60             : };
      61             : }  // namespace webrtc
      62             : 
      63             : #endif  // WEBRTC_VIDEO_STREAM_SYNCHRONIZATION_H_

Generated by: LCOV version 1.13