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

Side by Side Diff: chromecast/media/cma/base/buffering_frame_provider.cc

Issue 1083883003: Move BindToCurrentLoop from media/base/ to base/ Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix media/base/callback_holder.h compile Created 5 years, 8 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #include "chromecast/media/cma/base/buffering_frame_provider.h" 5 #include "chromecast/media/cma/base/buffering_frame_provider.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_to_current_loop.h"
8 #include "base/callback_helpers.h" 9 #include "base/callback_helpers.h"
9 #include "chromecast/media/cma/base/buffering_state.h" 10 #include "chromecast/media/cma/base/buffering_state.h"
10 #include "chromecast/media/cma/base/decoder_buffer_base.h" 11 #include "chromecast/media/cma/base/decoder_buffer_base.h"
11 #include "media/base/bind_to_current_loop.h"
12 #include "media/base/buffers.h" 12 #include "media/base/buffers.h"
13 13
14 namespace chromecast { 14 namespace chromecast {
15 namespace media { 15 namespace media {
16 16
17 BufferingFrameProvider::BufferWithConfig::BufferWithConfig( 17 BufferingFrameProvider::BufferWithConfig::BufferWithConfig(
18 const scoped_refptr<DecoderBufferBase>& buffer, 18 const scoped_refptr<DecoderBufferBase>& buffer,
19 const ::media::AudioDecoderConfig& audio_config, 19 const ::media::AudioDecoderConfig& audio_config,
20 const ::media::VideoDecoderConfig& video_config) 20 const ::media::VideoDecoderConfig& video_config)
21 : buffer_(buffer), 21 : buffer_(buffer),
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 } 107 }
108 108
109 void BufferingFrameProvider::RequestBufferIfNeeded() { 109 void BufferingFrameProvider::RequestBufferIfNeeded() {
110 if (is_pending_request_) 110 if (is_pending_request_)
111 return; 111 return;
112 112
113 if (is_eos_ || total_buffer_size_ >= max_buffer_size_) 113 if (is_eos_ || total_buffer_size_ >= max_buffer_size_)
114 return; 114 return;
115 115
116 is_pending_request_ = true; 116 is_pending_request_ = true;
117 coded_frame_provider_->Read(BindToCurrentLoop( 117 coded_frame_provider_->Read(base::BindToCurrentLoop(
118 base::Bind(&BufferingFrameProvider::OnNewBuffer, weak_this_))); 118 base::Bind(&BufferingFrameProvider::OnNewBuffer, weak_this_)));
119 } 119 }
120 120
121 void BufferingFrameProvider::CompleteReadIfNeeded() { 121 void BufferingFrameProvider::CompleteReadIfNeeded() {
122 if (read_cb_.is_null()) 122 if (read_cb_.is_null())
123 return; 123 return;
124 124
125 if (buffer_list_.empty()) 125 if (buffer_list_.empty())
126 return; 126 return;
127 127
128 BufferWithConfig buffer_with_config(buffer_list_.front()); 128 BufferWithConfig buffer_with_config(buffer_list_.front());
129 buffer_list_.pop_front(); 129 buffer_list_.pop_front();
130 if (!buffer_with_config.buffer()->end_of_stream()) 130 if (!buffer_with_config.buffer()->end_of_stream())
131 total_buffer_size_ -= buffer_with_config.buffer()->data_size(); 131 total_buffer_size_ -= buffer_with_config.buffer()->data_size();
132 132
133 base::ResetAndReturn(&read_cb_).Run( 133 base::ResetAndReturn(&read_cb_).Run(
134 buffer_with_config.buffer(), 134 buffer_with_config.buffer(),
135 buffer_with_config.audio_config(), 135 buffer_with_config.audio_config(),
136 buffer_with_config.video_config()); 136 buffer_with_config.video_config());
137 } 137 }
138 138
139 } // namespace media 139 } // namespace media
140 } // namespace chromecast 140 } // namespace chromecast
OLDNEW
« no previous file with comments | « chromecast/browser/media/cma_message_filter_host.cc ('k') | chromecast/media/cma/filters/cma_renderer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698