summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-28 05:28:22 +0000
committerscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-28 05:28:22 +0000
commit61b52d1d1208ae1dc84458f0708bbe7cd287f029 (patch)
treeea00b99ec36e477694dc317f0834e3d6b86debd2 /media
parent309094a089cf1c777c32d6ac6cc4938e3ebda7b2 (diff)
downloadchromium_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.cc21
-rw-r--r--media/filters/video_renderer_base.h7
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.