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

Side by Side Diff: remoting/protocol/webrtc_video_encoder_factory.h

Issue 2200273003: Enable video stats reporting when using WebRTC (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address feedback 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef REMOTING_PROTOCOL_WEBRTC_VIDEO_ENCODER_FACTORY_H_ 5 #ifndef REMOTING_PROTOCOL_WEBRTC_VIDEO_ENCODER_FACTORY_H_
6 #define REMOTING_PROTOCOL_WEBRTC_VIDEO_ENCODER_FACTORY_H_ 6 #define REMOTING_PROTOCOL_WEBRTC_VIDEO_ENCODER_FACTORY_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 23 matching lines...) Expand all
34 size_t max_payload_size) override; 34 size_t max_payload_size) override;
35 int32_t RegisterEncodeCompleteCallback( 35 int32_t RegisterEncodeCompleteCallback(
36 webrtc::EncodedImageCallback* callback) override; 36 webrtc::EncodedImageCallback* callback) override;
37 int32_t Release() override; 37 int32_t Release() override;
38 int32_t Encode(const webrtc::VideoFrame& frame, 38 int32_t Encode(const webrtc::VideoFrame& frame,
39 const webrtc::CodecSpecificInfo* codec_specific_info, 39 const webrtc::CodecSpecificInfo* codec_specific_info,
40 const std::vector<webrtc::FrameType>* frame_types) override; 40 const std::vector<webrtc::FrameType>* frame_types) override;
41 int32_t SetChannelParameters(uint32_t packet_loss, int64_t rtt) override; 41 int32_t SetChannelParameters(uint32_t packet_loss, int64_t rtt) override;
42 int32_t SetRates(uint32_t bitrate, uint32_t framerate) override; 42 int32_t SetRates(uint32_t bitrate, uint32_t framerate) override;
43 43
44 int SendEncodedFrame(std::unique_ptr<VideoPacket> pkt); 44 webrtc::EncodedImageCallback::Result SendEncodedFrame(
45 std::unique_ptr<VideoPacket> packet,
46 base::TimeTicks capture_time);
45 void SetKeyFrameRequestCallback(const base::Closure& key_frame_request); 47 void SetKeyFrameRequestCallback(const base::Closure& key_frame_request);
46 void SetTargetBitrateCallback(const TargetBitrateCallback& target_bitrate_cb); 48 void SetTargetBitrateCallback(const TargetBitrateCallback& target_bitrate_cb);
47 49
48 private: 50 private:
49 // Protects |encoded_callback_|, |key_frame_request_|, 51 // Protects |encoded_callback_|, |key_frame_request_|,
50 // |target_bitrate_cb_| and |state_|. 52 // |target_bitrate_cb_| and |state_|.
51 base::Lock lock_; 53 base::Lock lock_;
52 State state_; 54 State state_;
53 webrtc::EncodedImageCallback* encoded_callback_; 55 webrtc::EncodedImageCallback* encoded_callback_;
54 56
(...skipping 12 matching lines...) Expand all
67 69
68 webrtc::VideoEncoder* CreateVideoEncoder( 70 webrtc::VideoEncoder* CreateVideoEncoder(
69 webrtc::VideoCodecType type) override; 71 webrtc::VideoCodecType type) override;
70 const std::vector<cricket::WebRtcVideoEncoderFactory::VideoCodec>& codecs() 72 const std::vector<cricket::WebRtcVideoEncoderFactory::VideoCodec>& codecs()
71 const override; 73 const override;
72 74
73 // Returns true to directly provide encoded frames to webrtc 75 // Returns true to directly provide encoded frames to webrtc
74 bool EncoderTypeHasInternalSource(webrtc::VideoCodecType type) const override; 76 bool EncoderTypeHasInternalSource(webrtc::VideoCodecType type) const override;
75 void DestroyVideoEncoder(webrtc::VideoEncoder* encoder) override; 77 void DestroyVideoEncoder(webrtc::VideoEncoder* encoder) override;
76 78
77 int SendEncodedFrame(std::unique_ptr<VideoPacket> pkt); 79 webrtc::EncodedImageCallback::Result SendEncodedFrame(
80 std::unique_ptr<VideoPacket> packet,
81 base::TimeTicks capture_time);
78 82
79 void SetKeyFrameRequestCallback(const base::Closure& key_frame_request); 83 void SetKeyFrameRequestCallback(const base::Closure& key_frame_request);
80 void SetTargetBitrateCallback(const TargetBitrateCallback& target_bitrate_cb); 84 void SetTargetBitrateCallback(const TargetBitrateCallback& target_bitrate_cb);
81 85
82 private: 86 private:
83 // Protects |key_frame_request_| and |target_bitrate_cb_|. 87 // Protects |key_frame_request_| and |target_bitrate_cb_|.
84 base::Lock lock_; 88 base::Lock lock_;
85 base::Closure key_frame_request_; 89 base::Closure key_frame_request_;
86 TargetBitrateCallback target_bitrate_cb_; 90 TargetBitrateCallback target_bitrate_cb_;
87 std::vector<cricket::WebRtcVideoEncoderFactory::VideoCodec> codecs_; 91 std::vector<cricket::WebRtcVideoEncoderFactory::VideoCodec> codecs_;
88 std::vector<std::unique_ptr<WebrtcVideoEncoder>> encoders_; 92 std::vector<std::unique_ptr<WebrtcVideoEncoder>> encoders_;
89 }; 93 };
90 94
91 } // namespace remoting 95 } // namespace remoting
92 96
93 #endif // REMOTING_PROTOCOL_WEBRTC_VIDEO_ENCODER_FACTORY_H_ 97 #endif // REMOTING_PROTOCOL_WEBRTC_VIDEO_ENCODER_FACTORY_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698