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

Side by Side Diff: content/renderer/media/rtc_video_encoder_factory.h

Issue 647613007: RtcVideoEncoder: determine video codec profile at InitEncode time. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Determine profile at InitEncode. Created 6 years, 2 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 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 #ifndef CONTENT_RENDERER_MEDIA_RTC_VIDEO_ENCODER_FACTORY_H_ 5 #ifndef CONTENT_RENDERER_MEDIA_RTC_VIDEO_ENCODER_FACTORY_H_
6 #define CONTENT_RENDERER_MEDIA_RTC_VIDEO_ENCODER_FACTORY_H_ 6 #define CONTENT_RENDERER_MEDIA_RTC_VIDEO_ENCODER_FACTORY_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
11 #include "base/memory/ref_counted.h" 11 #include "base/memory/ref_counted.h"
12 #include "content/common/content_export.h" 12 #include "content/common/content_export.h"
13 #include "media/base/video_decoder_config.h"
13 #include "third_party/libjingle/source/talk/media/webrtc/webrtcvideoencoderfacto ry.h" 14 #include "third_party/libjingle/source/talk/media/webrtc/webrtcvideoencoderfacto ry.h"
14 15
15 namespace media { 16 namespace media {
16 17
17 class GpuVideoAcceleratorFactories; 18 class GpuVideoAcceleratorFactories;
18 19
19 } // namespace media 20 } // namespace media
20 21
21 namespace content { 22 namespace content {
22 23
23 // This class creates RTCVideoEncoder instances (each wrapping a 24 // This class creates RTCVideoEncoder instances (each wrapping a
24 // media::VideoEncodeAccelerator) on behalf of the WebRTC stack. 25 // media::VideoEncodeAccelerator) on behalf of the WebRTC stack.
25 class CONTENT_EXPORT RTCVideoEncoderFactory 26 class CONTENT_EXPORT RTCVideoEncoderFactory
26 : NON_EXPORTED_BASE(public cricket::WebRtcVideoEncoderFactory) { 27 : NON_EXPORTED_BASE(public cricket::WebRtcVideoEncoderFactory) {
27 public: 28 public:
28 explicit RTCVideoEncoderFactory( 29 explicit RTCVideoEncoderFactory(
29 const scoped_refptr<media::GpuVideoAcceleratorFactories>& gpu_factories); 30 const scoped_refptr<media::GpuVideoAcceleratorFactories>& gpu_factories);
30 virtual ~RTCVideoEncoderFactory(); 31 virtual ~RTCVideoEncoderFactory();
31 32
33 static media::VideoCodecProfile GetCodecProfile(
Pawel Osciak 2014/10/25 01:23:04 Since only RTCVE is using it, perhaps we could mov
hshi1 2014/10/25 01:36:51 Done.
34 webrtc::VideoCodecType type,
35 const webrtc::VideoCodec* codec_settings);
36
32 // cricket::WebRtcVideoEncoderFactory implementation. 37 // cricket::WebRtcVideoEncoderFactory implementation.
33 virtual webrtc::VideoEncoder* CreateVideoEncoder( 38 virtual webrtc::VideoEncoder* CreateVideoEncoder(
34 webrtc::VideoCodecType type) override; 39 webrtc::VideoCodecType type) override;
35 virtual const std::vector<VideoCodec>& codecs() const override; 40 virtual const std::vector<VideoCodec>& codecs() const override;
36 virtual void DestroyVideoEncoder(webrtc::VideoEncoder* encoder) override; 41 virtual void DestroyVideoEncoder(webrtc::VideoEncoder* encoder) override;
37 42
38 private: 43 private:
39 const scoped_refptr<media::GpuVideoAcceleratorFactories> gpu_factories_; 44 const scoped_refptr<media::GpuVideoAcceleratorFactories> gpu_factories_;
40 45
41 // Codec support list of cricket::WebRtcVideoEncoderFactory::VideoCodec 46 // Codec support list of cricket::WebRtcVideoEncoderFactory::VideoCodec
42 // instances. 47 // instances.
43 std::vector<VideoCodec> codecs_; 48 std::vector<VideoCodec> codecs_;
44 49
45 DISALLOW_COPY_AND_ASSIGN(RTCVideoEncoderFactory); 50 DISALLOW_COPY_AND_ASSIGN(RTCVideoEncoderFactory);
46 }; 51 };
47 52
48 } // namespace content 53 } // namespace content
49 54
50 #endif // CONTENT_RENDERER_MEDIA_RTC_VIDEO_ENCODER_FACTORY_H_ 55 #endif // CONTENT_RENDERER_MEDIA_RTC_VIDEO_ENCODER_FACTORY_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698