| Index: media/cast/cast_sender_impl.cc
|
| diff --git a/media/cast/cast_sender_impl.cc b/media/cast/cast_sender_impl.cc
|
| index b47ae9c30220e13096a290fd600a50a55ee34848..23e8a2310954764a4d10d19c82482edaf16d37c0 100644
|
| --- a/media/cast/cast_sender_impl.cc
|
| +++ b/media/cast/cast_sender_impl.cc
|
| @@ -19,11 +19,12 @@ namespace cast {
|
| class LocalVideoFrameInput : public VideoFrameInput {
|
| public:
|
| LocalVideoFrameInput(scoped_refptr<CastEnvironment> cast_environment,
|
| - base::WeakPtr<VideoSender> video_sender,
|
| - scoped_ptr<VideoFrameFactory> video_frame_factory)
|
| + base::WeakPtr<VideoSender> video_sender)
|
| : cast_environment_(cast_environment),
|
| video_sender_(video_sender),
|
| - video_frame_factory_(video_frame_factory.Pass()) {}
|
| + video_frame_factory_(
|
| + video_sender.get() ?
|
| + video_sender->CreateVideoFrameFactory().release() : nullptr) {}
|
|
|
| void InsertRawVideoFrame(const scoped_refptr<media::VideoFrame>& video_frame,
|
| const base::TimeTicks& capture_time) override {
|
| @@ -35,13 +36,14 @@ class LocalVideoFrameInput : public VideoFrameInput {
|
| capture_time));
|
| }
|
|
|
| - scoped_refptr<VideoFrame> CreateOptimizedFrame(
|
| + scoped_refptr<VideoFrame> MaybeCreateOptimizedFrame(
|
| + const gfx::Size& frame_size,
|
| base::TimeDelta timestamp) override {
|
| - DCHECK(video_frame_factory_.get());
|
| - return video_frame_factory_->CreateFrame(timestamp);
|
| + return video_frame_factory_ ?
|
| + video_frame_factory_->MaybeCreateFrame(frame_size, timestamp) : nullptr;
|
| }
|
|
|
| - bool SupportsCreateOptimizedFrame() const override {
|
| + bool CanCreateOptimizedFrames() const override {
|
| return video_frame_factory_.get() != nullptr;
|
| }
|
|
|
| @@ -51,9 +53,9 @@ class LocalVideoFrameInput : public VideoFrameInput {
|
| private:
|
| friend class base::RefCountedThreadSafe<LocalVideoFrameInput>;
|
|
|
| - scoped_refptr<CastEnvironment> cast_environment_;
|
| - base::WeakPtr<VideoSender> video_sender_;
|
| - scoped_ptr<VideoFrameFactory> video_frame_factory_;
|
| + const scoped_refptr<CastEnvironment> cast_environment_;
|
| + const base::WeakPtr<VideoSender> video_sender_;
|
| + const scoped_ptr<VideoFrameFactory> video_frame_factory_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(LocalVideoFrameInput);
|
| };
|
| @@ -194,8 +196,7 @@ void CastSenderImpl::OnVideoStatusChange(
|
| DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN));
|
| if (status == STATUS_INITIALIZED && !video_frame_input_) {
|
| video_frame_input_ =
|
| - new LocalVideoFrameInput(cast_environment_, video_sender_->AsWeakPtr(),
|
| - video_sender_->CreateVideoFrameFactory());
|
| + new LocalVideoFrameInput(cast_environment_, video_sender_->AsWeakPtr());
|
| }
|
| status_change_cb.Run(status);
|
| }
|
|
|