diff --git a/talk/owt/sdk/base/win/videorendererd3d11.cc b/talk/owt/sdk/base/win/videorendererd3d11.cc index 6ac50a53..dd0dc180 100644 --- a/talk/owt/sdk/base/win/videorendererd3d11.cc +++ b/talk/owt/sdk/base/win/videorendererd3d11.cc @@ -655,8 +655,7 @@ void WebrtcVideoRendererD3D11Impl::RenderI420Frame_DX11( { webrtc::MutexLock lock(&d3d11_texture_lock_); if (d3d11_texture_) { - d3d11_texture_->Release(); - d3d11_texture_ = nullptr; + d3d11_texture_.Release(); } } @@ -737,8 +736,7 @@ bool WebrtcVideoRendererD3D11Impl::CreateStagingTexture(int width, int height) { d3d11_staging_texture_->GetDesc(&desc); if (desc.Width != (unsigned int)width || desc.Height != (unsigned int)height) { - d3d11_staging_texture_->Release(); - d3d11_staging_texture_ = nullptr; + d3d11_staging_texture_.Release(); } else return true; } diff --git a/talk/owt/sdk/base/win/videorendererd3d11.h b/talk/owt/sdk/base/win/videorendererd3d11.h index f7894da1..12f8e35d 100644 --- a/talk/owt/sdk/base/win/videorendererd3d11.h +++ b/talk/owt/sdk/base/win/videorendererd3d11.h @@ -62,13 +62,13 @@ class WebrtcVideoRendererD3D11Impl int window_height_ = 0; // D3D11 objects - ID3D10Multithread* p_mt = nullptr; - ID3D11Device* d3d11_device_ = nullptr; - ID3D11Device2* d3d11_device2_ = nullptr; - ID3D11VideoDevice* d3d11_video_device_ = nullptr; - ID3D11DeviceContext* d3d11_device_context_ = nullptr; - ID3D11VideoContext* d3d11_video_context_ = nullptr; - ID3D11DeviceContext1* dx11_device_context1_ = nullptr; + CComPtr p_mt; + CComPtr d3d11_device_; + CComPtr d3d11_device2_; + CComPtr d3d11_video_device_; + CComPtr d3d11_device_context_; + CComPtr d3d11_video_context_; + CComPtr dx11_device_context1_; CComPtr dxgi_factory_; CComPtr swap_chain_for_hwnd_; @@ -86,8 +86,8 @@ class WebrtcVideoRendererD3D11Impl // Handle of texture holding decoded image. webrtc::Mutex d3d11_texture_lock_; - ID3D11Texture2D* d3d11_texture_ = nullptr; - ID3D11Texture2D* d3d11_staging_texture_ = nullptr; + CComPtr d3d11_texture_; + CComPtr d3d11_staging_texture_; D3D11_TEXTURE2D_DESC d3d11_texture_desc_; // Local view is using normal d3d11 swapchain. bool d3d11_raw_inited_ = false;