OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "content/renderer/media/gpu/rtc_video_decoder_factory.h" | 5 #include "content/renderer/media/gpu/rtc_video_decoder_factory.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
| 9 #include "base/single_thread_task_runner.h" |
9 #include "content/renderer/media/gpu/rtc_video_decoder.h" | 10 #include "content/renderer/media/gpu/rtc_video_decoder.h" |
10 #include "media/renderers/gpu_video_accelerator_factories.h" | 11 |
| 12 // Debug! Remove! |
| 13 #include "media/filters/ffmpeg_video_decoder.h" |
11 | 14 |
12 namespace content { | 15 namespace content { |
13 | 16 |
14 RTCVideoDecoderFactory::RTCVideoDecoderFactory( | 17 RTCVideoDecoderFactory::RTCVideoDecoderFactory( |
15 media::GpuVideoAcceleratorFactories* gpu_factories) | 18 const CreateVideoDecoderCB& create_video_decoder_cb, |
16 : gpu_factories_(gpu_factories) { | 19 const scoped_refptr<base::SingleThreadTaskRunner>& decoder_task_runner) |
| 20 : create_video_decoder_cb_(create_video_decoder_cb), |
| 21 decoder_task_runner_(decoder_task_runner) { |
17 DVLOG(2) << __func__; | 22 DVLOG(2) << __func__; |
18 } | 23 } |
19 | 24 |
20 RTCVideoDecoderFactory::~RTCVideoDecoderFactory() { | 25 RTCVideoDecoderFactory::~RTCVideoDecoderFactory() { |
21 DVLOG(2) << __func__; | 26 DVLOG(2) << __func__; |
22 } | 27 } |
23 | 28 |
24 webrtc::VideoDecoder* RTCVideoDecoderFactory::CreateVideoDecoder( | 29 webrtc::VideoDecoder* RTCVideoDecoderFactory::CreateVideoDecoder( |
25 webrtc::VideoCodecType type) { | 30 webrtc::VideoCodecType type) { |
26 DVLOG(2) << __func__; | 31 VLOG(0) << __func__; |
27 return RTCVideoDecoder::Create(type, gpu_factories_).release(); | 32 |
| 33 ///////////////// Debug! ////////////////////// |
| 34 media::VideoCodec codec; |
| 35 switch (type) { |
| 36 case webrtc::kVideoCodecVP8: |
| 37 codec = media::kCodecVP8; |
| 38 break; |
| 39 case webrtc::kVideoCodecH264: |
| 40 codec = media::kCodecH264; |
| 41 break; |
| 42 default: |
| 43 return nullptr; |
| 44 } |
| 45 |
| 46 DCHECK(media::FFmpegVideoDecoder::IsCodecSupported(codec)) << type; |
| 47 //////////////////////////////////////////// |
| 48 |
| 49 return RTCVideoDecoder::Create(type, create_video_decoder_cb_, |
| 50 decoder_task_runner_) |
| 51 .release(); |
28 } | 52 } |
29 | 53 |
30 void RTCVideoDecoderFactory::DestroyVideoDecoder( | 54 void RTCVideoDecoderFactory::DestroyVideoDecoder( |
31 webrtc::VideoDecoder* decoder) { | 55 webrtc::VideoDecoder* decoder) { |
32 DVLOG(2) << __func__; | 56 DVLOG(2) << __func__; |
33 RTCVideoDecoder::Destroy(decoder, gpu_factories_); | 57 RTCVideoDecoder::Destroy(decoder, decoder_task_runner_); |
34 } | 58 } |
35 | 59 |
36 } // namespace content | 60 } // namespace content |
OLD | NEW |