Chromium Code Reviews| Index: content/renderer/media/android/stream_texture_wrapper_impl.cc |
| diff --git a/content/renderer/media/android/stream_texture_wrapper_impl.cc b/content/renderer/media/android/stream_texture_wrapper_impl.cc |
| index 0662a61ba91bb904fb6a92c2152ae99c27d3e4c5..829344d98460254745a2d47df962af6911f77a4f 100644 |
| --- a/content/renderer/media/android/stream_texture_wrapper_impl.cc |
| +++ b/content/renderer/media/android/stream_texture_wrapper_impl.cc |
| @@ -33,7 +33,6 @@ StreamTextureWrapperImpl::StreamTextureWrapperImpl( |
| scoped_refptr<StreamTextureFactory> factory, |
| scoped_refptr<base::SingleThreadTaskRunner> main_task_runner) |
| : texture_id_(0), |
| - stream_id_(0), |
| factory_(factory), |
| main_task_runner_(main_task_runner), |
| weak_factory_(this) {} |
| @@ -41,11 +40,12 @@ StreamTextureWrapperImpl::StreamTextureWrapperImpl( |
| StreamTextureWrapperImpl::~StreamTextureWrapperImpl() { |
| DCHECK(main_task_runner_->BelongsToCurrentThread()); |
| - if (stream_id_) { |
| + if (texture_id_) { |
| GLES2Interface* gl = factory_->ContextGL(); |
| gl->DeleteTextures(1, &texture_id_); |
| // Flush to ensure that the stream texture gets deleted in a timely fashion. |
| gl->ShallowFlushCHROMIUM(); |
| + texture_id_ = 0; |
|
liberato (no reviews please)
2016/10/07 20:01:26
why? (i have a habit of doing this too -- but i ha
sivag
2016/10/10 11:06:52
There is no reason to do it in the destructor.
I w
|
| } |
| SetCurrentFrameInternal(nullptr); |
| @@ -106,8 +106,7 @@ void StreamTextureWrapperImpl::ReallocateVideoFrame( |
| void StreamTextureWrapperImpl::ForwardStreamTextureForSurfaceRequest( |
| const base::UnguessableToken& request_token) { |
| - return factory_->ForwardStreamTextureForSurfaceRequest(stream_id_, |
| - request_token); |
| + stream_texture_proxy_->ForwardStreamTextureForSurfaceRequest(request_token); |
| } |
| void StreamTextureWrapperImpl::SetCurrentFrameInternal( |
| @@ -132,7 +131,7 @@ void StreamTextureWrapperImpl::UpdateTextureSize(const gfx::Size& new_size) { |
| natural_size_ = new_size; |
| ReallocateVideoFrame(new_size); |
| - factory_->SetStreamTextureSize(stream_id_, new_size); |
| + stream_texture_proxy_->SetStreamTextureSize(new_size); |
| } |
| void StreamTextureWrapperImpl::Initialize( |
| @@ -157,13 +156,13 @@ void StreamTextureWrapperImpl::InitializeOnMainThread( |
| DCHECK(main_task_runner_->BelongsToCurrentThread()); |
| DVLOG(2) << __FUNCTION__; |
| - stream_texture_proxy_.reset(factory_->CreateProxy()); |
| + int32_t route_id = factory_->CreateStreamTexture( |
| + kGLTextureExternalOES, &texture_id_, &texture_mailbox_); |
| + stream_texture_proxy_.reset(factory_->CreateProxy(route_id)); |
| - stream_id_ = factory_->CreateStreamTexture(kGLTextureExternalOES, |
| - &texture_id_, &texture_mailbox_); |
| ReallocateVideoFrame(natural_size_); |
| - stream_texture_proxy_->BindToTaskRunner(stream_id_, received_frame_cb, |
| + stream_texture_proxy_->BindToTaskRunner(received_frame_cb, |
| compositor_task_runner_); |
| // TODO(tguilbert): Register the surface properly. See crbug.com/627658. |