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

Unified Diff: webrtc/video/rtp_streams_synchronizer.h

Issue 2216533002: Move RTP for synchroninzation and rename classes, files and variables. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Indentation + rebase. Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/video/rtp_stream_receiver.cc ('k') | webrtc/video/rtp_streams_synchronizer.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/video/rtp_streams_synchronizer.h
diff --git a/webrtc/video/rtp_streams_synchronizer.h b/webrtc/video/rtp_streams_synchronizer.h
new file mode 100644
index 0000000000000000000000000000000000000000..082bec7b6e0f4fd3c5d582a0ebc5ebb170b42bdd
--- /dev/null
+++ b/webrtc/video/rtp_streams_synchronizer.h
@@ -0,0 +1,73 @@
+/*
+ * Copyright (c) 2012 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.
+ */
+
+// RtpStreamsSynchronizer is responsible for synchronization audio and video for
+// a given voice engine channel and video receive stream.
+
+#ifndef WEBRTC_VIDEO_RTP_STREAMS_SYNCHRONIZER_H_
+#define WEBRTC_VIDEO_RTP_STREAMS_SYNCHRONIZER_H_
+
+#include <memory>
+
+#include "webrtc/base/criticalsection.h"
+#include "webrtc/base/thread_checker.h"
+#include "webrtc/modules/include/module.h"
+#include "webrtc/video/rtp_stream_receiver.h"
+#include "webrtc/video/stream_synchronization.h"
+
+namespace webrtc {
+
+class Clock;
+class VideoFrame;
+class VoEVideoSync;
+
+namespace vcm {
+class VideoReceiver;
+} // namespace vcm
+
+class RtpStreamsSynchronizer : public Module {
+ public:
+ RtpStreamsSynchronizer(vcm::VideoReceiver* vcm,
+ RtpStreamReceiver* rtp_stream_receiver);
+
+ void ConfigureSync(int voe_channel_id,
+ VoEVideoSync* voe_sync_interface);
+
+ // Implements Module.
+ int64_t TimeUntilNextProcess() override;
+ void Process() override;
+
+ // Gets the sync offset between the current played out audio frame and the
+ // video |frame|. Returns true on success, false otherwise.
+ bool GetStreamSyncOffsetInMs(const VideoFrame& frame,
+ int64_t* stream_offset_ms) const;
+
+ private:
+ Clock* const clock_;
+ vcm::VideoReceiver* const video_receiver_;
+ RtpReceiver* const video_rtp_receiver_;
+ RtpRtcp* const video_rtp_rtcp_;
+
+ rtc::CriticalSection crit_;
+ int voe_channel_id_ GUARDED_BY(crit_);
+ VoEVideoSync* voe_sync_interface_ GUARDED_BY(crit_);
+ RtpReceiver* audio_rtp_receiver_ GUARDED_BY(crit_);
+ RtpRtcp* audio_rtp_rtcp_ GUARDED_BY(crit_);
+ std::unique_ptr<StreamSynchronization> sync_ GUARDED_BY(crit_);
+ StreamSynchronization::Measurements audio_measurement_ GUARDED_BY(crit_);
+ StreamSynchronization::Measurements video_measurement_ GUARDED_BY(crit_);
+
+ rtc::ThreadChecker process_thread_checker_;
+ int64_t last_sync_time_ ACCESS_ON(&process_thread_checker_);
+};
+
+} // namespace webrtc
+
+#endif // WEBRTC_VIDEO_RTP_STREAMS_SYNCHRONIZER_H_
« no previous file with comments | « webrtc/video/rtp_stream_receiver.cc ('k') | webrtc/video/rtp_streams_synchronizer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698