| Index: media/cast/video_sender/video_sender.h
|
| diff --git a/media/cast/video_sender/video_sender.h b/media/cast/video_sender/video_sender.h
|
| index 59792f7693088e94f74de3072de5810d4354efe8..59e9c67cbd42655d74e0f323fabc89c8cd3859b6 100644
|
| --- a/media/cast/video_sender/video_sender.h
|
| +++ b/media/cast/video_sender/video_sender.h
|
| @@ -18,6 +18,7 @@
|
| #include "media/cast/logging/logging_defines.h"
|
| #include "media/cast/rtcp/rtcp.h"
|
| #include "media/cast/rtp_timestamp_helper.h"
|
| +#include "media/cast/transport/utility/transport_encryption_handler.h"
|
|
|
| namespace media {
|
| class VideoFrame;
|
| @@ -44,15 +45,21 @@ class VideoSender : public RtcpSenderFeedback,
|
| const VideoSenderConfig& video_config,
|
| const CreateVideoEncodeAcceleratorCallback& create_vea_cb,
|
| const CreateVideoEncodeMemoryCallback& create_video_encode_mem_cb,
|
| - const CastInitializationCallback& cast_initialization_cb,
|
| transport::CastTransportSender* const transport_sender);
|
|
|
| virtual ~VideoSender();
|
|
|
| + CastInitializationStatus InitializationResult() const {
|
| + return cast_initialization_status_;
|
| + }
|
| +
|
| // The video_frame must be valid until the closure callback is called.
|
| // The closure callback is called from the video encoder thread as soon as
|
| // the encoder is done with the frame; it does not mean that the encoded frame
|
| // has been sent out.
|
| + //
|
| + // Note: It is invalid to call this method if InitializationResult() returns
|
| + // anything but STATUS_VIDEO_INITIALIZED.
|
| void InsertRawVideoFrame(const scoped_refptr<media::VideoFrame>& video_frame,
|
| const base::TimeTicks& capture_time);
|
|
|
| @@ -90,9 +97,11 @@ class VideoSender : public RtcpSenderFeedback,
|
| void ReceivedAck(uint32 acked_frame_id);
|
| void UpdateFramesInFlight();
|
|
|
| - void SendEncodedVideoFrameMainThread(
|
| - int requested_bitrate_before_encode,
|
| - scoped_ptr<transport::EncodedFrame> encoded_frame);
|
| + // Called by the |video_encoder_| with the next EncodeFrame to send. If
|
| + // encryption is enabled, |encoded_frame->data| is encrypted before sending
|
| + // using |transport_sender_|.
|
| + void SendEncodedVideoFrame(int requested_bitrate_before_encode,
|
| + scoped_ptr<transport::EncodedFrame> encoded_frame);
|
|
|
| void InitializeTimers();
|
|
|
| @@ -122,6 +131,12 @@ class VideoSender : public RtcpSenderFeedback,
|
| // risk getting stuck in a catch-up state forever.
|
| CongestionControl congestion_control_;
|
|
|
| + // Encrypts data in EncodedFrames before they are sent.
|
| + transport::TransportEncryptionHandler encryptor_;
|
| +
|
| + // If this sender is ready for use, this is STATUS_VIDEO_INITIALIZED.
|
| + CastInitializationStatus cast_initialization_status_;
|
| +
|
| // This is a "good enough" mapping for finding the RTP timestamp associated
|
| // with a video frame. The key is the lowest 8 bits of frame id (which is
|
| // what is sent via RTCP). This map is used for logging purposes. The only
|
|
|