WebRtcVideoEncoderFactory cleanup
Remove some deprecated functions. BUG=webrtc:6402 Review-Url: https://codereview.webrtc.org/2859223003 Cr-Commit-Position: refs/heads/master@{#18116}
This commit is contained in:
@ -150,7 +150,6 @@ rtc_static_library("rtc_media") {
|
||||
"engine/webrtcvideocapturerfactory.cc",
|
||||
"engine/webrtcvideocapturerfactory.h",
|
||||
"engine/webrtcvideodecoderfactory.h",
|
||||
"engine/webrtcvideoencoderfactory.cc",
|
||||
"engine/webrtcvideoencoderfactory.h",
|
||||
"engine/webrtcvideoengine2.cc",
|
||||
"engine/webrtcvideoengine2.h",
|
||||
|
||||
@ -247,10 +247,6 @@ class FakeWebRtcVideoEncoderFactory : public WebRtcVideoEncoderFactory {
|
||||
}
|
||||
|
||||
private:
|
||||
// Disable overloaded virtual function warning. TODO(magjed): Remove once
|
||||
// http://crbug/webrtc/6402 is fixed.
|
||||
using cricket::WebRtcVideoEncoderFactory::CreateVideoEncoder;
|
||||
|
||||
rtc::CriticalSection crit_;
|
||||
rtc::Event created_video_encoder_event_;
|
||||
std::vector<cricket::VideoCodec> codecs_;
|
||||
|
||||
@ -29,10 +29,6 @@ class InternalEncoderFactory : public WebRtcVideoEncoderFactory {
|
||||
void DestroyVideoEncoder(webrtc::VideoEncoder* encoder) override;
|
||||
|
||||
private:
|
||||
// Disable overloaded virtual function warning. TODO(magjed): Remove once
|
||||
// http://crbug/webrtc/6402 is fixed.
|
||||
using WebRtcVideoEncoderFactory::CreateVideoEncoder;
|
||||
|
||||
std::vector<cricket::VideoCodec> supported_codecs_;
|
||||
};
|
||||
|
||||
|
||||
@ -1,53 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
|
||||
*
|
||||
* Use of this source code is governed by a BSD-style license
|
||||
* that can be found in the LICENSE file in the root of the source
|
||||
* tree. An additional intellectual property rights grant can be found
|
||||
* in the file PATENTS. All contributing project authors may
|
||||
* be found in the AUTHORS file in the root of the source tree.
|
||||
*/
|
||||
|
||||
#include "webrtc/media/engine/webrtcvideoencoderfactory.h"
|
||||
|
||||
#include "webrtc/common_types.h"
|
||||
|
||||
namespace cricket {
|
||||
|
||||
webrtc::VideoEncoder* WebRtcVideoEncoderFactory::CreateVideoEncoder(
|
||||
const cricket::VideoCodec& codec) {
|
||||
return CreateVideoEncoder(webrtc::PayloadNameToCodecType(codec.name)
|
||||
.value_or(webrtc::kVideoCodecUnknown));
|
||||
}
|
||||
|
||||
const std::vector<cricket::VideoCodec>&
|
||||
WebRtcVideoEncoderFactory::supported_codecs() const {
|
||||
codecs_.clear();
|
||||
const std::vector<VideoCodec>& encoder_codecs = codecs();
|
||||
for (const VideoCodec& encoder_codec : encoder_codecs) {
|
||||
codecs_.push_back(cricket::VideoCodec(encoder_codec.name));
|
||||
}
|
||||
return codecs_;
|
||||
}
|
||||
|
||||
webrtc::VideoEncoder* WebRtcVideoEncoderFactory::CreateVideoEncoder(
|
||||
webrtc::VideoCodecType type) {
|
||||
const cricket::VideoCodec codec(
|
||||
webrtc::CodecTypeToPayloadName(type).value_or("Unknown codec"));
|
||||
return CreateVideoEncoder(codec);
|
||||
}
|
||||
|
||||
const std::vector<WebRtcVideoEncoderFactory::VideoCodec>&
|
||||
WebRtcVideoEncoderFactory::codecs() const {
|
||||
encoder_codecs_.clear();
|
||||
const std::vector<cricket::VideoCodec>& codecs = supported_codecs();
|
||||
for (const cricket::VideoCodec& codec : codecs) {
|
||||
encoder_codecs_.push_back(
|
||||
VideoCodec(webrtc::PayloadNameToCodecType(codec.name)
|
||||
.value_or(webrtc::kVideoCodecUnknown),
|
||||
codec.name));
|
||||
}
|
||||
return encoder_codecs_;
|
||||
}
|
||||
|
||||
} // namespace cricket
|
||||
@ -24,46 +24,15 @@ namespace cricket {
|
||||
|
||||
class WebRtcVideoEncoderFactory {
|
||||
public:
|
||||
// This VideoCodec class is deprecated. Use cricket::VideoCodec directly
|
||||
// instead and the corresponding factory function. See
|
||||
// http://crbug/webrtc/6402 for more info.
|
||||
struct VideoCodec {
|
||||
webrtc::VideoCodecType type;
|
||||
std::string name;
|
||||
|
||||
VideoCodec(webrtc::VideoCodecType t, const std::string& nm)
|
||||
: type(t), name(nm) {}
|
||||
|
||||
VideoCodec(webrtc::VideoCodecType t,
|
||||
const std::string& nm,
|
||||
int w,
|
||||
int h,
|
||||
int fr)
|
||||
: type(t), name(nm) {}
|
||||
};
|
||||
|
||||
virtual ~WebRtcVideoEncoderFactory() {}
|
||||
|
||||
// TODO(magjed): Make these functions pure virtual when every external client
|
||||
// implements it. See http://crbug/webrtc/6402 for more info.
|
||||
// Caller takes the ownership of the returned object and it should be released
|
||||
// by calling DestroyVideoEncoder().
|
||||
virtual webrtc::VideoEncoder* CreateVideoEncoder(
|
||||
const cricket::VideoCodec& codec);
|
||||
const cricket::VideoCodec& codec) = 0;
|
||||
|
||||
// Returns a list of supported codecs in order of preference.
|
||||
virtual const std::vector<cricket::VideoCodec>& supported_codecs() const;
|
||||
|
||||
// Caller takes the ownership of the returned object and it should be released
|
||||
// by calling DestroyVideoEncoder().
|
||||
// Deprecated: Use cricket::VideoCodec as argument instead. See
|
||||
// http://crbug/webrtc/6402 for more info.
|
||||
virtual webrtc::VideoEncoder* CreateVideoEncoder(webrtc::VideoCodecType type);
|
||||
|
||||
// Returns a list of supported codecs in order of preference.
|
||||
// Deprecated: Return cricket::VideoCodecs instead. See
|
||||
// http://crbug/webrtc/6402 for more info.
|
||||
virtual const std::vector<VideoCodec>& codecs() const;
|
||||
virtual const std::vector<cricket::VideoCodec>& supported_codecs() const = 0;
|
||||
|
||||
// Returns true if encoders created by this factory of the given codec type
|
||||
// will use internal camera sources, meaning that they don't require/expect
|
||||
@ -75,13 +44,6 @@ class WebRtcVideoEncoderFactory {
|
||||
}
|
||||
|
||||
virtual void DestroyVideoEncoder(webrtc::VideoEncoder* encoder) = 0;
|
||||
|
||||
private:
|
||||
// TODO(magjed): Remove these. They are necessary in order to return a const
|
||||
// reference to a std::vector in the default implementations of codecs() and
|
||||
// supported_codecs(). See http://crbug/webrtc/6402 for more info.
|
||||
mutable std::vector<VideoCodec> encoder_codecs_;
|
||||
mutable std::vector<cricket::VideoCodec> codecs_;
|
||||
};
|
||||
|
||||
} // namespace cricket
|
||||
|
||||
@ -16,15 +16,22 @@ class WebRtcVideoEncoderFactoryForTest
|
||||
: public cricket::WebRtcVideoEncoderFactory {
|
||||
public:
|
||||
WebRtcVideoEncoderFactoryForTest() {
|
||||
codecs_.push_back(VideoCodec(webrtc::kVideoCodecH264, "H264"));
|
||||
codecs_.push_back(VideoCodec(webrtc::kVideoCodecVP8, "VP8"));
|
||||
codecs_.push_back(cricket::VideoCodec("H264"));
|
||||
codecs_.push_back(cricket::VideoCodec("VP8"));
|
||||
}
|
||||
|
||||
const std::vector<VideoCodec>& codecs() const override { return codecs_; }
|
||||
webrtc::VideoEncoder* CreateVideoEncoder(
|
||||
const cricket::VideoCodec& codec) override {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const std::vector<cricket::VideoCodec>& supported_codecs() const override {
|
||||
return codecs_;
|
||||
}
|
||||
|
||||
void DestroyVideoEncoder(webrtc::VideoEncoder* encoder) override {}
|
||||
|
||||
std::vector<VideoCodec> codecs_;
|
||||
std::vector<cricket::VideoCodec> codecs_;
|
||||
};
|
||||
|
||||
TEST(WebRtcVideoEncoderFactoryTest, TestMultipleCallsToSupportedCodecs) {
|
||||
|
||||
@ -144,10 +144,6 @@ class WebRtcSimulcastEncoderFactory
|
||||
}
|
||||
|
||||
private:
|
||||
// Disable overloaded virtual function warning. TODO(magjed): Remove once
|
||||
// http://crbug/webrtc/6402 is fixed.
|
||||
using cricket::WebRtcVideoEncoderFactory::CreateVideoEncoder;
|
||||
|
||||
cricket::WebRtcVideoEncoderFactory* factory_;
|
||||
// A list of encoders that were created without being wrapped in a
|
||||
// SimulcastEncoderAdapter.
|
||||
|
||||
@ -34,10 +34,6 @@ class MediaCodecVideoEncoderFactory
|
||||
void DestroyVideoEncoder(webrtc::VideoEncoder* encoder) override;
|
||||
|
||||
private:
|
||||
// Disable overloaded virtual function warning. TODO(magjed): Remove once
|
||||
// http://crbug/webrtc/6402 is fixed.
|
||||
using cricket::WebRtcVideoEncoderFactory::CreateVideoEncoder;
|
||||
|
||||
jobject egl_context_;
|
||||
|
||||
// Empty if platform support is lacking, const after ctor returns.
|
||||
|
||||
Reference in New Issue
Block a user