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

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

Issue 1148253006: Chromecast: Use std::vector to pass video config in CMA (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 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/callback_helpers.h" 8 #include "base/callback_helpers.h"
9 #include "chromecast/media/cma/base/buffering_state.h" 9 #include "chromecast/media/cma/base/buffering_state.h"
10 #include "chromecast/media/cma/base/decoder_buffer_base.h" 10 #include "chromecast/media/cma/base/decoder_buffer_base.h"
(...skipping 96 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(::media::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

Powered by Google App Engine
This is Rietveld 408576698