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

Side by Side Diff: webrtc/media/engine/webrtcvideoengine2.h

Issue 2487633002: Reland of Delete all use of cricket::VideoFrame and cricket::WebRtcVideoFrame. (Closed)
Patch Set: Rebase, and update rtcstatscollector_unittest.cc. Created 4 years, 1 month 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 unified diff | Download patch
« no previous file with comments | « webrtc/media/engine/webrtcvideocapturer.cc ('k') | webrtc/media/engine/webrtcvideoengine2.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 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 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 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #ifndef WEBRTC_MEDIA_ENGINE_WEBRTCVIDEOENGINE2_H_ 11 #ifndef WEBRTC_MEDIA_ENGINE_WEBRTCVIDEOENGINE2_H_
12 #define WEBRTC_MEDIA_ENGINE_WEBRTCVIDEOENGINE2_H_ 12 #define WEBRTC_MEDIA_ENGINE_WEBRTCVIDEOENGINE2_H_
13 13
14 #include <map> 14 #include <map>
15 #include <memory> 15 #include <memory>
16 #include <set> 16 #include <set>
17 #include <string> 17 #include <string>
18 #include <vector> 18 #include <vector>
19 19
20 #include "webrtc/base/asyncinvoker.h" 20 #include "webrtc/base/asyncinvoker.h"
21 #include "webrtc/base/criticalsection.h" 21 #include "webrtc/base/criticalsection.h"
22 #include "webrtc/base/networkroute.h" 22 #include "webrtc/base/networkroute.h"
23 #include "webrtc/base/thread_annotations.h" 23 #include "webrtc/base/thread_annotations.h"
24 #include "webrtc/base/thread_checker.h" 24 #include "webrtc/base/thread_checker.h"
25 #include "webrtc/media/base/videosinkinterface.h" 25 #include "webrtc/media/base/videosinkinterface.h"
26 #include "webrtc/media/base/videosourceinterface.h" 26 #include "webrtc/media/base/videosourceinterface.h"
27 #include "webrtc/call.h" 27 #include "webrtc/call.h"
28 #include "webrtc/media/base/mediaengine.h" 28 #include "webrtc/media/base/mediaengine.h"
29 #include "webrtc/media/base/videoframe.h"
30 #include "webrtc/media/engine/webrtcvideodecoderfactory.h" 29 #include "webrtc/media/engine/webrtcvideodecoderfactory.h"
31 #include "webrtc/media/engine/webrtcvideoencoderfactory.h" 30 #include "webrtc/media/engine/webrtcvideoencoderfactory.h"
32 #include "webrtc/transport.h" 31 #include "webrtc/transport.h"
32 #include "webrtc/video_frame.h"
33 #include "webrtc/video_receive_stream.h" 33 #include "webrtc/video_receive_stream.h"
34 #include "webrtc/video_send_stream.h" 34 #include "webrtc/video_send_stream.h"
35 35
36 namespace webrtc { 36 namespace webrtc {
37 class VideoDecoder; 37 class VideoDecoder;
38 class VideoEncoder; 38 class VideoEncoder;
39 struct MediaConfig; 39 struct MediaConfig;
40 } 40 }
41 41
42 namespace rtc { 42 namespace rtc {
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 virtual ~UnsignalledSsrcHandler() = default; 75 virtual ~UnsignalledSsrcHandler() = default;
76 }; 76 };
77 77
78 // TODO(pbos): Remove, use external handlers only. 78 // TODO(pbos): Remove, use external handlers only.
79 class DefaultUnsignalledSsrcHandler : public UnsignalledSsrcHandler { 79 class DefaultUnsignalledSsrcHandler : public UnsignalledSsrcHandler {
80 public: 80 public:
81 DefaultUnsignalledSsrcHandler(); 81 DefaultUnsignalledSsrcHandler();
82 Action OnUnsignalledSsrc(WebRtcVideoChannel2* channel, 82 Action OnUnsignalledSsrc(WebRtcVideoChannel2* channel,
83 uint32_t ssrc) override; 83 uint32_t ssrc) override;
84 84
85 rtc::VideoSinkInterface<VideoFrame>* GetDefaultSink() const; 85 rtc::VideoSinkInterface<webrtc::VideoFrame>* GetDefaultSink() const;
86 void SetDefaultSink(VideoMediaChannel* channel, 86 void SetDefaultSink(VideoMediaChannel* channel,
87 rtc::VideoSinkInterface<VideoFrame>* sink); 87 rtc::VideoSinkInterface<webrtc::VideoFrame>* sink);
88 virtual ~DefaultUnsignalledSsrcHandler() = default; 88 virtual ~DefaultUnsignalledSsrcHandler() = default;
89 89
90 private: 90 private:
91 uint32_t default_recv_ssrc_; 91 uint32_t default_recv_ssrc_;
92 rtc::VideoSinkInterface<VideoFrame>* default_sink_; 92 rtc::VideoSinkInterface<webrtc::VideoFrame>* default_sink_;
93 }; 93 };
94 94
95 // WebRtcVideoEngine2 is used for the new native WebRTC Video API (webrtc:1667). 95 // WebRtcVideoEngine2 is used for the new native WebRTC Video API (webrtc:1667).
96 class WebRtcVideoEngine2 { 96 class WebRtcVideoEngine2 {
97 public: 97 public:
98 WebRtcVideoEngine2(); 98 WebRtcVideoEngine2();
99 virtual ~WebRtcVideoEngine2(); 99 virtual ~WebRtcVideoEngine2();
100 100
101 // Basic video engine implementation. 101 // Basic video engine implementation.
102 void Init(); 102 void Init();
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 webrtc::RtpParameters GetRtpReceiveParameters(uint32_t ssrc) const override; 148 webrtc::RtpParameters GetRtpReceiveParameters(uint32_t ssrc) const override;
149 bool SetRtpReceiveParameters( 149 bool SetRtpReceiveParameters(
150 uint32_t ssrc, 150 uint32_t ssrc,
151 const webrtc::RtpParameters& parameters) override; 151 const webrtc::RtpParameters& parameters) override;
152 bool GetSendCodec(VideoCodec* send_codec) override; 152 bool GetSendCodec(VideoCodec* send_codec) override;
153 bool SetSend(bool send) override; 153 bool SetSend(bool send) override;
154 bool SetVideoSend( 154 bool SetVideoSend(
155 uint32_t ssrc, 155 uint32_t ssrc,
156 bool enable, 156 bool enable,
157 const VideoOptions* options, 157 const VideoOptions* options,
158 rtc::VideoSourceInterface<cricket::VideoFrame>* source) override; 158 rtc::VideoSourceInterface<webrtc::VideoFrame>* source) override;
159 bool AddSendStream(const StreamParams& sp) override; 159 bool AddSendStream(const StreamParams& sp) override;
160 bool RemoveSendStream(uint32_t ssrc) override; 160 bool RemoveSendStream(uint32_t ssrc) override;
161 bool AddRecvStream(const StreamParams& sp) override; 161 bool AddRecvStream(const StreamParams& sp) override;
162 bool AddRecvStream(const StreamParams& sp, bool default_stream); 162 bool AddRecvStream(const StreamParams& sp, bool default_stream);
163 bool RemoveRecvStream(uint32_t ssrc) override; 163 bool RemoveRecvStream(uint32_t ssrc) override;
164 bool SetSink(uint32_t ssrc, 164 bool SetSink(uint32_t ssrc,
165 rtc::VideoSinkInterface<VideoFrame>* sink) override; 165 rtc::VideoSinkInterface<webrtc::VideoFrame>* sink) override;
166 bool GetStats(VideoMediaInfo* info) override; 166 bool GetStats(VideoMediaInfo* info) override;
167 167
168 void OnPacketReceived(rtc::CopyOnWriteBuffer* packet, 168 void OnPacketReceived(rtc::CopyOnWriteBuffer* packet,
169 const rtc::PacketTime& packet_time) override; 169 const rtc::PacketTime& packet_time) override;
170 void OnRtcpReceived(rtc::CopyOnWriteBuffer* packet, 170 void OnRtcpReceived(rtc::CopyOnWriteBuffer* packet,
171 const rtc::PacketTime& packet_time) override; 171 const rtc::PacketTime& packet_time) override;
172 void OnReadyToSend(bool ready) override; 172 void OnReadyToSend(bool ready) override;
173 void OnNetworkRouteChanged(const std::string& transport_name, 173 void OnNetworkRouteChanged(const std::string& transport_name,
174 const rtc::NetworkRoute& network_route) override; 174 const rtc::NetworkRoute& network_route) override;
175 void OnTransportOverheadChanged(int transport_overhead_per_packet) override; 175 void OnTransportOverheadChanged(int transport_overhead_per_packet) override;
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 EXCLUSIVE_LOCKS_REQUIRED(stream_crit_); 230 EXCLUSIVE_LOCKS_REQUIRED(stream_crit_);
231 void DeleteReceiveStream(WebRtcVideoReceiveStream* stream) 231 void DeleteReceiveStream(WebRtcVideoReceiveStream* stream)
232 EXCLUSIVE_LOCKS_REQUIRED(stream_crit_); 232 EXCLUSIVE_LOCKS_REQUIRED(stream_crit_);
233 233
234 static std::string CodecSettingsVectorToString( 234 static std::string CodecSettingsVectorToString(
235 const std::vector<VideoCodecSettings>& codecs); 235 const std::vector<VideoCodecSettings>& codecs);
236 236
237 // Wrapper for the sender part, this is where the source is connected and 237 // Wrapper for the sender part, this is where the source is connected and
238 // frames are then converted from cricket frames to webrtc frames. 238 // frames are then converted from cricket frames to webrtc frames.
239 class WebRtcVideoSendStream 239 class WebRtcVideoSendStream
240 : public rtc::VideoSinkInterface<cricket::VideoFrame>, 240 : public rtc::VideoSinkInterface<webrtc::VideoFrame>,
241 public rtc::VideoSourceInterface<webrtc::VideoFrame> { 241 public rtc::VideoSourceInterface<webrtc::VideoFrame> {
242 public: 242 public:
243 WebRtcVideoSendStream( 243 WebRtcVideoSendStream(
244 webrtc::Call* call, 244 webrtc::Call* call,
245 const StreamParams& sp, 245 const StreamParams& sp,
246 webrtc::VideoSendStream::Config config, 246 webrtc::VideoSendStream::Config config,
247 const VideoOptions& options, 247 const VideoOptions& options,
248 WebRtcVideoEncoderFactory* external_encoder_factory, 248 WebRtcVideoEncoderFactory* external_encoder_factory,
249 bool enable_cpu_overuse_detection, 249 bool enable_cpu_overuse_detection,
250 int max_bitrate_bps, 250 int max_bitrate_bps,
251 const rtc::Optional<VideoCodecSettings>& codec_settings, 251 const rtc::Optional<VideoCodecSettings>& codec_settings,
252 const rtc::Optional<std::vector<webrtc::RtpExtension>>& rtp_extensions, 252 const rtc::Optional<std::vector<webrtc::RtpExtension>>& rtp_extensions,
253 const VideoSendParameters& send_params); 253 const VideoSendParameters& send_params);
254 virtual ~WebRtcVideoSendStream(); 254 virtual ~WebRtcVideoSendStream();
255 255
256 void SetSendParameters(const ChangedSendParameters& send_params); 256 void SetSendParameters(const ChangedSendParameters& send_params);
257 bool SetRtpParameters(const webrtc::RtpParameters& parameters); 257 bool SetRtpParameters(const webrtc::RtpParameters& parameters);
258 webrtc::RtpParameters GetRtpParameters() const; 258 webrtc::RtpParameters GetRtpParameters() const;
259 259
260 // Implements rtc::VideoSourceInterface<webrtc::VideoFrame>. 260 // Implements rtc::VideoSourceInterface<webrtc::VideoFrame>.
261 // WebRtcVideoSendStream acts as a source to the webrtc::VideoSendStream 261 // WebRtcVideoSendStream acts as a source to the webrtc::VideoSendStream
262 // in |stream_|. The reason is that WebRtcVideoSendStream receives 262 // in |stream_|.
263 // cricket::VideoFrames and forwards webrtc::VideoFrames to |source_|.
264 // TODO(perkj, nisse): Refactor WebRtcVideoSendStream to directly connect 263 // TODO(perkj, nisse): Refactor WebRtcVideoSendStream to directly connect
265 // the camera input |source_| 264 // the camera input |source_|
266 void AddOrUpdateSink(VideoSinkInterface<webrtc::VideoFrame>* sink, 265 void AddOrUpdateSink(VideoSinkInterface<webrtc::VideoFrame>* sink,
267 const rtc::VideoSinkWants& wants) override; 266 const rtc::VideoSinkWants& wants) override;
268 void RemoveSink(VideoSinkInterface<webrtc::VideoFrame>* sink) override; 267 void RemoveSink(VideoSinkInterface<webrtc::VideoFrame>* sink) override;
269 268
270 void OnFrame(const cricket::VideoFrame& frame) override; 269 void OnFrame(const webrtc::VideoFrame& frame) override;
271 bool SetVideoSend(bool mute, 270 bool SetVideoSend(bool mute,
272 const VideoOptions* options, 271 const VideoOptions* options,
273 rtc::VideoSourceInterface<cricket::VideoFrame>* source); 272 rtc::VideoSourceInterface<webrtc::VideoFrame>* source);
274 273
275 void SetSend(bool send); 274 void SetSend(bool send);
276 275
277 const std::vector<uint32_t>& GetSsrcs() const; 276 const std::vector<uint32_t>& GetSsrcs() const;
278 VideoSenderInfo GetVideoSenderInfo(bool log_stats); 277 VideoSenderInfo GetVideoSenderInfo(bool log_stats);
279 void FillBandwidthEstimationInfo(BandwidthEstimationInfo* bwe_info); 278 void FillBandwidthEstimationInfo(BandwidthEstimationInfo* bwe_info);
280 279
281 private: 280 private:
282 // Parameters needed to reconstruct the underlying stream. 281 // Parameters needed to reconstruct the underlying stream.
283 // webrtc::VideoSendStream doesn't support setting a lot of options on the 282 // webrtc::VideoSendStream doesn't support setting a lot of options on the
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 // and whether or not the encoding in |rtp_parameters_| is active. 339 // and whether or not the encoding in |rtp_parameters_| is active.
341 void UpdateSendState(); 340 void UpdateSendState();
342 341
343 rtc::ThreadChecker thread_checker_; 342 rtc::ThreadChecker thread_checker_;
344 rtc::AsyncInvoker invoker_; 343 rtc::AsyncInvoker invoker_;
345 rtc::Thread* worker_thread_; 344 rtc::Thread* worker_thread_;
346 const std::vector<uint32_t> ssrcs_ ACCESS_ON(&thread_checker_); 345 const std::vector<uint32_t> ssrcs_ ACCESS_ON(&thread_checker_);
347 const std::vector<SsrcGroup> ssrc_groups_ ACCESS_ON(&thread_checker_); 346 const std::vector<SsrcGroup> ssrc_groups_ ACCESS_ON(&thread_checker_);
348 webrtc::Call* const call_; 347 webrtc::Call* const call_;
349 const bool enable_cpu_overuse_detection_; 348 const bool enable_cpu_overuse_detection_;
350 rtc::VideoSourceInterface<cricket::VideoFrame>* source_ 349 rtc::VideoSourceInterface<webrtc::VideoFrame>* source_
351 ACCESS_ON(&thread_checker_); 350 ACCESS_ON(&thread_checker_);
352 WebRtcVideoEncoderFactory* const external_encoder_factory_ 351 WebRtcVideoEncoderFactory* const external_encoder_factory_
353 ACCESS_ON(&thread_checker_); 352 ACCESS_ON(&thread_checker_);
354 353
355 rtc::CriticalSection lock_; 354 rtc::CriticalSection lock_;
356 webrtc::VideoSendStream* stream_ ACCESS_ON(&thread_checker_); 355 webrtc::VideoSendStream* stream_ ACCESS_ON(&thread_checker_);
357 rtc::VideoSinkInterface<webrtc::VideoFrame>* encoder_sink_ 356 rtc::VideoSinkInterface<webrtc::VideoFrame>* encoder_sink_
358 GUARDED_BY(lock_); 357 GUARDED_BY(lock_);
359 // Contains settings that are the same for all streams in the MediaChannel, 358 // Contains settings that are the same for all streams in the MediaChannel,
360 // such as codecs, header extensions, and the global bitrate limit for the 359 // such as codecs, header extensions, and the global bitrate limit for the
361 // entire channel. 360 // entire channel.
362 VideoSendStreamParameters parameters_ ACCESS_ON(&thread_checker_); 361 VideoSendStreamParameters parameters_ ACCESS_ON(&thread_checker_);
363 // Contains settings that are unique for each stream, such as max_bitrate. 362 // Contains settings that are unique for each stream, such as max_bitrate.
364 // Does *not* contain codecs, however. 363 // Does *not* contain codecs, however.
365 // TODO(skvlad): Move ssrcs_ and ssrc_groups_ into rtp_parameters_. 364 // TODO(skvlad): Move ssrcs_ and ssrc_groups_ into rtp_parameters_.
366 // TODO(skvlad): Combine parameters_ and rtp_parameters_ once we have only 365 // TODO(skvlad): Combine parameters_ and rtp_parameters_ once we have only
367 // one stream per MediaChannel. 366 // one stream per MediaChannel.
368 webrtc::RtpParameters rtp_parameters_ ACCESS_ON(&thread_checker_); 367 webrtc::RtpParameters rtp_parameters_ ACCESS_ON(&thread_checker_);
369 AllocatedEncoder allocated_encoder_ ACCESS_ON(&thread_checker_); 368 AllocatedEncoder allocated_encoder_ ACCESS_ON(&thread_checker_);
370 VideoFrameInfo last_frame_info_ GUARDED_BY(lock_); 369 VideoFrameInfo last_frame_info_ GUARDED_BY(lock_);
371 370
372 bool sending_ ACCESS_ON(&thread_checker_); 371 bool sending_ ACCESS_ON(&thread_checker_);
373 372
374 // The timestamp of the last frame received 373 // The timestamp of the last frame received
375 // Used to generate timestamp for the black frame when source is removed 374 // Used to generate timestamp for the black frame when source is removed
376 int64_t last_frame_timestamp_us_ GUARDED_BY(lock_); 375 int64_t last_frame_timestamp_us_ GUARDED_BY(lock_);
377 }; 376 };
378 377
379 // Wrapper for the receiver part, contains configs etc. that are needed to 378 // Wrapper for the receiver part, contains configs etc. that are needed to
380 // reconstruct the underlying VideoReceiveStream. Also serves as a wrapper 379 // reconstruct the underlying VideoReceiveStream.
381 // between rtc::VideoSinkInterface<webrtc::VideoFrame> and
382 // rtc::VideoSinkInterface<cricket::VideoFrame>.
383 class WebRtcVideoReceiveStream 380 class WebRtcVideoReceiveStream
384 : public rtc::VideoSinkInterface<webrtc::VideoFrame> { 381 : public rtc::VideoSinkInterface<webrtc::VideoFrame> {
385 public: 382 public:
386 WebRtcVideoReceiveStream( 383 WebRtcVideoReceiveStream(
387 webrtc::Call* call, 384 webrtc::Call* call,
388 const StreamParams& sp, 385 const StreamParams& sp,
389 webrtc::VideoReceiveStream::Config config, 386 webrtc::VideoReceiveStream::Config config,
390 WebRtcVideoDecoderFactory* external_decoder_factory, 387 WebRtcVideoDecoderFactory* external_decoder_factory,
391 bool default_stream, 388 bool default_stream,
392 const std::vector<VideoCodecSettings>& recv_codecs, 389 const std::vector<VideoCodecSettings>& recv_codecs,
393 bool red_disabled_by_remote_side); 390 bool red_disabled_by_remote_side);
394 ~WebRtcVideoReceiveStream(); 391 ~WebRtcVideoReceiveStream();
395 392
396 const std::vector<uint32_t>& GetSsrcs() const; 393 const std::vector<uint32_t>& GetSsrcs() const;
397 rtc::Optional<uint32_t> GetFirstPrimarySsrc() const; 394 rtc::Optional<uint32_t> GetFirstPrimarySsrc() const;
398 395
399 void SetLocalSsrc(uint32_t local_ssrc); 396 void SetLocalSsrc(uint32_t local_ssrc);
400 // TODO(deadbeef): Move these feedback parameters into the recv parameters. 397 // TODO(deadbeef): Move these feedback parameters into the recv parameters.
401 void SetFeedbackParameters(bool nack_enabled, 398 void SetFeedbackParameters(bool nack_enabled,
402 bool remb_enabled, 399 bool remb_enabled,
403 bool transport_cc_enabled, 400 bool transport_cc_enabled,
404 webrtc::RtcpMode rtcp_mode); 401 webrtc::RtcpMode rtcp_mode);
405 void SetRecvParameters(const ChangedRecvParameters& recv_params); 402 void SetRecvParameters(const ChangedRecvParameters& recv_params);
406 403
407 void OnFrame(const webrtc::VideoFrame& frame) override; 404 void OnFrame(const webrtc::VideoFrame& frame) override;
408 bool IsDefaultStream() const; 405 bool IsDefaultStream() const;
409 406
410 void SetSink(rtc::VideoSinkInterface<cricket::VideoFrame>* sink); 407 void SetSink(rtc::VideoSinkInterface<webrtc::VideoFrame>* sink);
411 408
412 VideoReceiverInfo GetVideoReceiverInfo(bool log_stats); 409 VideoReceiverInfo GetVideoReceiverInfo(bool log_stats);
413 410
414 // Used to disable RED/FEC when the remote description doesn't contain those 411 // Used to disable RED/FEC when the remote description doesn't contain those
415 // codecs. This is needed to be able to work around an RTX bug which is only 412 // codecs. This is needed to be able to work around an RTX bug which is only
416 // happening if the remote side doesn't send RED, but the local side is 413 // happening if the remote side doesn't send RED, but the local side is
417 // configured to receive RED. 414 // configured to receive RED.
418 // TODO(holmer): Remove this after a couple of Chrome versions, M53-54 415 // TODO(holmer): Remove this after a couple of Chrome versions, M53-54
419 // time frame. 416 // time frame.
420 void SetUlpfecDisabledRemotely(bool disable); 417 void SetUlpfecDisabledRemotely(bool disable);
(...skipping 26 matching lines...) Expand all
447 444
448 webrtc::VideoReceiveStream* stream_; 445 webrtc::VideoReceiveStream* stream_;
449 const bool default_stream_; 446 const bool default_stream_;
450 webrtc::VideoReceiveStream::Config config_; 447 webrtc::VideoReceiveStream::Config config_;
451 bool red_disabled_by_remote_side_; 448 bool red_disabled_by_remote_side_;
452 449
453 WebRtcVideoDecoderFactory* const external_decoder_factory_; 450 WebRtcVideoDecoderFactory* const external_decoder_factory_;
454 std::vector<AllocatedDecoder> allocated_decoders_; 451 std::vector<AllocatedDecoder> allocated_decoders_;
455 452
456 rtc::CriticalSection sink_lock_; 453 rtc::CriticalSection sink_lock_;
457 rtc::VideoSinkInterface<cricket::VideoFrame>* sink_ GUARDED_BY(sink_lock_); 454 rtc::VideoSinkInterface<webrtc::VideoFrame>* sink_ GUARDED_BY(sink_lock_);
458 // Expands remote RTP timestamps to int64_t to be able to estimate how long 455 // Expands remote RTP timestamps to int64_t to be able to estimate how long
459 // the stream has been running. 456 // the stream has been running.
460 rtc::TimestampWrapAroundHandler timestamp_wraparound_handler_ 457 rtc::TimestampWrapAroundHandler timestamp_wraparound_handler_
461 GUARDED_BY(sink_lock_); 458 GUARDED_BY(sink_lock_);
462 int64_t first_frame_timestamp_ GUARDED_BY(sink_lock_); 459 int64_t first_frame_timestamp_ GUARDED_BY(sink_lock_);
463 // Start NTP time is estimated as current remote NTP time (estimated from 460 // Start NTP time is estimated as current remote NTP time (estimated from
464 // RTCP) minus the elapsed time, as soon as remote NTP time is available. 461 // RTCP) minus the elapsed time, as soon as remote NTP time is available.
465 int64_t estimated_remote_start_ntp_time_ms_ GUARDED_BY(sink_lock_); 462 int64_t estimated_remote_start_ntp_time_ms_ GUARDED_BY(sink_lock_);
466 }; 463 };
467 464
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
521 VideoSendParameters send_params_; 518 VideoSendParameters send_params_;
522 VideoOptions default_send_options_; 519 VideoOptions default_send_options_;
523 VideoRecvParameters recv_params_; 520 VideoRecvParameters recv_params_;
524 bool red_disabled_by_remote_side_; 521 bool red_disabled_by_remote_side_;
525 int64_t last_stats_log_ms_; 522 int64_t last_stats_log_ms_;
526 }; 523 };
527 524
528 } // namespace cricket 525 } // namespace cricket
529 526
530 #endif // WEBRTC_MEDIA_ENGINE_WEBRTCVIDEOENGINE2_H_ 527 #endif // WEBRTC_MEDIA_ENGINE_WEBRTCVIDEOENGINE2_H_
OLDNEW
« no previous file with comments | « webrtc/media/engine/webrtcvideocapturer.cc ('k') | webrtc/media/engine/webrtcvideoengine2.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698