| OLD | NEW | 
|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "media/gpu/dxva_video_decode_accelerator_win.h" | 5 #include "media/gpu/dxva_video_decode_accelerator_win.h" | 
| 6 | 6 | 
| 7 #include <memory> | 7 #include <memory> | 
| 8 | 8 | 
| 9 #if !defined(OS_WIN) | 9 #if !defined(OS_WIN) | 
| 10 #error This file should only be built on Windows. | 10 #error This file should only be built on Windows. | 
| (...skipping 720 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 731   UINT guid_count = 0; | 731   UINT guid_count = 0; | 
| 732   base::win::ScopedCoMem<GUID> guids; | 732   base::win::ScopedCoMem<GUID> guids; | 
| 733   hr = video_processor_service_->GetVideoProcessorDeviceGuids( | 733   hr = video_processor_service_->GetVideoProcessorDeviceGuids( | 
| 734       &inputDesc, &guid_count, &guids); | 734       &inputDesc, &guid_count, &guids); | 
| 735   RETURN_ON_HR_FAILURE(hr, "GetVideoProcessorDeviceGuids failed", false); | 735   RETURN_ON_HR_FAILURE(hr, "GetVideoProcessorDeviceGuids failed", false); | 
| 736 | 736 | 
| 737   for (UINT g = 0; g < guid_count; g++) { | 737   for (UINT g = 0; g < guid_count; g++) { | 
| 738     DXVA2_VideoProcessorCaps caps; | 738     DXVA2_VideoProcessorCaps caps; | 
| 739     hr = video_processor_service_->GetVideoProcessorCaps( | 739     hr = video_processor_service_->GetVideoProcessorCaps( | 
| 740         guids[g], &inputDesc, D3DFMT_X8R8G8B8, &caps); | 740         guids[g], &inputDesc, D3DFMT_X8R8G8B8, &caps); | 
| 741     if (hr) | 741     if (FAILED(hr)) | 
| 742       continue; | 742       continue; | 
| 743 | 743 | 
| 744     if (!(caps.VideoProcessorOperations & DXVA2_VideoProcess_YUV2RGB)) | 744     if (!(caps.VideoProcessorOperations & DXVA2_VideoProcess_YUV2RGB)) | 
| 745       continue; | 745       continue; | 
| 746 | 746 | 
| 747     base::win::ScopedCoMem<D3DFORMAT> formats; | 747     base::win::ScopedCoMem<D3DFORMAT> formats; | 
| 748     UINT format_count = 0; | 748     UINT format_count = 0; | 
| 749     hr = video_processor_service_->GetVideoProcessorRenderTargets( | 749     hr = video_processor_service_->GetVideoProcessorRenderTargets( | 
| 750         guids[g], &inputDesc, &format_count, &formats); | 750         guids[g], &inputDesc, &format_count, &formats); | 
| 751     if (hr) | 751     if (FAILED(hr)) | 
| 752       continue; | 752       continue; | 
| 753 | 753 | 
| 754     UINT f; | 754     UINT f; | 
| 755     for (f = 0; f < format_count; f++) { | 755     for (f = 0; f < format_count; f++) { | 
| 756       if (formats[f] == D3DFMT_X8R8G8B8) { | 756       if (formats[f] == D3DFMT_X8R8G8B8) { | 
| 757         break; | 757         break; | 
| 758       } | 758       } | 
| 759     } | 759     } | 
| 760     if (f == format_count) | 760     if (f == format_count) | 
| 761       continue; | 761       continue; | 
| 762 | 762 | 
| 763     // Create video processor | 763     // Create video processor | 
| 764     hr = video_processor_service_->CreateVideoProcessor( | 764     hr = video_processor_service_->CreateVideoProcessor( | 
| 765         guids[g], &inputDesc, D3DFMT_X8R8G8B8, 0, processor_.Receive()); | 765         guids[g], &inputDesc, D3DFMT_X8R8G8B8, 0, processor_.Receive()); | 
| 766     if (hr) | 766     if (FAILED(hr)) | 
| 767       continue; | 767       continue; | 
| 768 | 768 | 
| 769     DXVA2_ValueRange range; | 769     DXVA2_ValueRange range; | 
| 770     processor_->GetProcAmpRange(DXVA2_ProcAmp_Brightness, &range); | 770     processor_->GetProcAmpRange(DXVA2_ProcAmp_Brightness, &range); | 
| 771     default_procamp_values_.Brightness = range.DefaultValue; | 771     default_procamp_values_.Brightness = range.DefaultValue; | 
| 772     processor_->GetProcAmpRange(DXVA2_ProcAmp_Contrast, &range); | 772     processor_->GetProcAmpRange(DXVA2_ProcAmp_Contrast, &range); | 
| 773     default_procamp_values_.Contrast = range.DefaultValue; | 773     default_procamp_values_.Contrast = range.DefaultValue; | 
| 774     processor_->GetProcAmpRange(DXVA2_ProcAmp_Hue, &range); | 774     processor_->GetProcAmpRange(DXVA2_ProcAmp_Hue, &range); | 
| 775     default_procamp_values_.Hue = range.DefaultValue; | 775     default_procamp_values_.Hue = range.DefaultValue; | 
| 776     processor_->GetProcAmpRange(DXVA2_ProcAmp_Saturation, &range); | 776     processor_->GetProcAmpRange(DXVA2_ProcAmp_Saturation, &range); | 
| (...skipping 2147 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2924       base::Bind(&DXVAVideoDecodeAccelerator::DecodePendingInputBuffers, | 2924       base::Bind(&DXVAVideoDecodeAccelerator::DecodePendingInputBuffers, | 
| 2925                  base::Unretained(this))); | 2925                  base::Unretained(this))); | 
| 2926 } | 2926 } | 
| 2927 | 2927 | 
| 2928 uint32_t DXVAVideoDecodeAccelerator::GetTextureTarget() const { | 2928 uint32_t DXVAVideoDecodeAccelerator::GetTextureTarget() const { | 
| 2929   bool provide_nv12_textures = share_nv12_textures_ || copy_nv12_textures_; | 2929   bool provide_nv12_textures = share_nv12_textures_ || copy_nv12_textures_; | 
| 2930   return provide_nv12_textures ? GL_TEXTURE_EXTERNAL_OES : GL_TEXTURE_2D; | 2930   return provide_nv12_textures ? GL_TEXTURE_EXTERNAL_OES : GL_TEXTURE_2D; | 
| 2931 } | 2931 } | 
| 2932 | 2932 | 
| 2933 }  // namespace media | 2933 }  // namespace media | 
| OLD | NEW | 
|---|