diff options
author | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-28 05:28:22 +0000 |
---|---|---|
committer | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-28 05:28:22 +0000 |
commit | 61b52d1d1208ae1dc84458f0708bbe7cd287f029 (patch) | |
tree | ea00b99ec36e477694dc317f0834e3d6b86debd2 /media | |
parent | 309094a089cf1c777c32d6ac6cc4938e3ebda7b2 (diff) | |
download | chromium_src-61b52d1d1208ae1dc84458f0708bbe7cd287f029.zip chromium_src-61b52d1d1208ae1dc84458f0708bbe7cd287f029.tar.gz chromium_src-61b52d1d1208ae1dc84458f0708bbe7cd287f029.tar.bz2 |
Clean up some methods in media::VideoRendererBase.
Minor prep work before landing the real fix for VideoFrame lifetime tracking.
BUG=177730
Review URL: https://chromiumcodereview.appspot.com/12383005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@185164 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r-- | media/filters/video_renderer_base.cc | 21 | ||||
-rw-r--r-- | media/filters/video_renderer_base.h | 7 |
2 files changed, 12 insertions, 16 deletions
diff --git a/media/filters/video_renderer_base.cc b/media/filters/video_renderer_base.cc index 8c840c3..7247715 100644 --- a/media/filters/video_renderer_base.cc +++ b/media/filters/video_renderer_base.cc @@ -431,11 +431,11 @@ void VideoRendererBase::FrameReady(VideoDecoder::Status status, if (prerolling_delayed_frame_) { DCHECK_EQ(state_, kPrerolling); - AddReadyFrame(prerolling_delayed_frame_); + AddReadyFrame_Locked(prerolling_delayed_frame_); prerolling_delayed_frame_ = NULL; } - AddReadyFrame(frame); + AddReadyFrame_Locked(frame); PipelineStatistics statistics; statistics.video_frames_decoded = 1; statistics_cb_.Run(statistics); @@ -444,7 +444,8 @@ void VideoRendererBase::FrameReady(VideoDecoder::Status status, // purposes: // 1) Prerolling while paused // 2) Keeps decoding going if video rendering thread starts falling behind - if (NumFrames_Locked() < limits::kMaxVideoFrames && !frame->IsEndOfStream()) { + if (ready_frames_.size() < static_cast<size_t>(limits::kMaxVideoFrames) && + !frame->IsEndOfStream()) { AttemptRead_Locked(); return; } @@ -465,7 +466,10 @@ void VideoRendererBase::FrameReady(VideoDecoder::Status status, base::ResetAndReturn(&preroll_cb_).Run(PIPELINE_OK); } -void VideoRendererBase::AddReadyFrame(const scoped_refptr<VideoFrame>& frame) { +void VideoRendererBase::AddReadyFrame_Locked( + const scoped_refptr<VideoFrame>& frame) { + lock_.AssertAcquired(); + // Adjust the incoming frame if its rendering stop time is past the duration // of the video itself. This is typically the last frame of the video and // occurs if the container specifies a duration that isn't a multiple of the @@ -488,7 +492,7 @@ void VideoRendererBase::AddReadyFrame(const scoped_refptr<VideoFrame>& frame) { } ready_frames_.push_back(frame); - DCHECK_LE(NumFrames_Locked(), limits::kMaxVideoFrames); + DCHECK_LE(ready_frames_.size(), static_cast<size_t>(limits::kMaxVideoFrames)); base::TimeDelta max_clock_time = frame->IsEndOfStream() ? duration : frame->GetTimestamp(); @@ -508,7 +512,7 @@ void VideoRendererBase::AttemptRead_Locked() { lock_.AssertAcquired(); if (pending_read_ || - NumFrames_Locked() == limits::kMaxVideoFrames || + ready_frames_.size() == static_cast<size_t>(limits::kMaxVideoFrames) || (!ready_frames_.empty() && ready_frames_.back()->IsEndOfStream())) { return; } @@ -580,9 +584,4 @@ void VideoRendererBase::DoStopOrError_Locked() { ready_frames_.clear(); } -int VideoRendererBase::NumFrames_Locked() const { - lock_.AssertAcquired(); - return ready_frames_.size(); -} - } // namespace media diff --git a/media/filters/video_renderer_base.h b/media/filters/video_renderer_base.h index f1aa48f..9258b55 100644 --- a/media/filters/video_renderer_base.h +++ b/media/filters/video_renderer_base.h @@ -101,8 +101,8 @@ class MEDIA_EXPORT VideoRendererBase void FrameReady(VideoDecoder::Status status, const scoped_refptr<VideoFrame>& frame); - // Helper method for adding a frame to |ready_frames_| - void AddReadyFrame(const scoped_refptr<VideoFrame>& frame); + // Helper method for adding a frame to |ready_frames_|. + void AddReadyFrame_Locked(const scoped_refptr<VideoFrame>& frame); // Helper method that schedules an asynchronous read from the decoder as long // as there isn't a pending read and we have capacity. @@ -126,9 +126,6 @@ class MEDIA_EXPORT VideoRendererBase // Helper function that flushes the buffers when a Stop() or error occurs. void DoStopOrError_Locked(); - // Return the number of frames currently held by this class. - int NumFrames_Locked() const; - // Runs |paint_cb_| with the next frame from |ready_frames_|, updating // |last_natural_size_| and running |size_changed_cb_| if the natural size // changes. |