Revert "Removed VideoDecoderFactory::LegacyCreateVideoDecoder and VideoReceiveStream::Config::stream_id."
This reverts commit 4ba1044bae750ab8ee47b359c21f672386b7c3cd. Reason for revert: Downstream projects require some updates. Original change's description: > Removed VideoDecoderFactory::LegacyCreateVideoDecoder and VideoReceiveStream::Config::stream_id. > > Bug: webrtc:9106 > Change-Id: I7fa84095732c33d136a9354ae4f09266cffcf877 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/180020 > Reviewed-by: Henrik Andreassson <henrika@webrtc.org> > Commit-Queue: Philip Eliasson <philipel@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#31793} TBR=henrika@webrtc.org,magjed@webrtc.org,philipel@webrtc.org,mflodman@webrtc.org Change-Id: I8c980266334cc9871b9076713da3c4df8f73f8ce No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:9106 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/180344 Reviewed-by: Philip Eliasson <philipel@webrtc.org> Commit-Queue: Philip Eliasson <philipel@webrtc.org> Cr-Commit-Position: refs/heads/master@{#31794}
This commit is contained in:
committed by
Commit Bot
parent
4ba1044bae
commit
49c293f03d
@ -21,6 +21,7 @@ rtc_library("video_codecs_api") {
|
||||
"video_codec.h",
|
||||
"video_decoder.cc",
|
||||
"video_decoder.h",
|
||||
"video_decoder_factory.cc",
|
||||
"video_decoder_factory.h",
|
||||
"video_encoder.cc",
|
||||
"video_encoder.h",
|
||||
|
||||
23
api/video_codecs/video_decoder_factory.cc
Normal file
23
api/video_codecs/video_decoder_factory.cc
Normal file
@ -0,0 +1,23 @@
|
||||
/*
|
||||
* Copyright (c) 2018 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 "api/video_codecs/video_decoder_factory.h"
|
||||
|
||||
#include "api/video_codecs/video_decoder.h"
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
std::unique_ptr<VideoDecoder> VideoDecoderFactory::LegacyCreateVideoDecoder(
|
||||
const SdpVideoFormat& format,
|
||||
const std::string& receive_stream_id) {
|
||||
return CreateVideoDecoder(format);
|
||||
}
|
||||
|
||||
} // namespace webrtc
|
||||
@ -34,6 +34,12 @@ class RTC_EXPORT VideoDecoderFactory {
|
||||
virtual std::unique_ptr<VideoDecoder> CreateVideoDecoder(
|
||||
const SdpVideoFormat& format) = 0;
|
||||
|
||||
// Note: Do not call or override this method! This method is a legacy
|
||||
// workaround and is scheduled for removal without notice.
|
||||
virtual std::unique_ptr<VideoDecoder> LegacyCreateVideoDecoder(
|
||||
const SdpVideoFormat& format,
|
||||
const std::string& receive_stream_id);
|
||||
|
||||
virtual ~VideoDecoderFactory() {}
|
||||
};
|
||||
|
||||
|
||||
@ -252,6 +252,10 @@ class VideoReceiveStream {
|
||||
// used for streaming instead of a real-time call.
|
||||
int target_delay_ms = 0;
|
||||
|
||||
// TODO(nisse): Used with VideoDecoderFactory::LegacyCreateVideoDecoder.
|
||||
// Delete when that method is retired.
|
||||
std::string stream_id;
|
||||
|
||||
// An optional custom frame decryptor that allows the entire frame to be
|
||||
// decrypted in whatever way the caller choses. This is not required by
|
||||
// default.
|
||||
|
||||
@ -2904,6 +2904,7 @@ void WebRtcVideoChannel::WebRtcVideoReceiveStream::RecreateWebRtcVideoStream() {
|
||||
}
|
||||
webrtc::VideoReceiveStream::Config config = config_.Copy();
|
||||
config.rtp.protected_by_flexfec = (flexfec_stream_ != nullptr);
|
||||
config.stream_id = stream_params_.id;
|
||||
stream_ = call_->CreateVideoReceiveStream(std::move(config));
|
||||
if (base_minimum_playout_delay_ms) {
|
||||
stream_->SetBaseMinimumPlayoutDelayMs(
|
||||
|
||||
@ -258,5 +258,16 @@ QualityAnalyzingVideoDecoderFactory::CreateVideoDecoder(
|
||||
analyzer_);
|
||||
}
|
||||
|
||||
std::unique_ptr<VideoDecoder>
|
||||
QualityAnalyzingVideoDecoderFactory::LegacyCreateVideoDecoder(
|
||||
const SdpVideoFormat& format,
|
||||
const std::string& receive_stream_id) {
|
||||
std::unique_ptr<VideoDecoder> decoder =
|
||||
delegate_->LegacyCreateVideoDecoder(format, receive_stream_id);
|
||||
return std::make_unique<QualityAnalyzingVideoDecoder>(
|
||||
id_generator_->GetNextId(), peer_name_, std::move(decoder), extractor_,
|
||||
analyzer_);
|
||||
}
|
||||
|
||||
} // namespace webrtc_pc_e2e
|
||||
} // namespace webrtc
|
||||
|
||||
@ -143,6 +143,9 @@ class QualityAnalyzingVideoDecoderFactory : public VideoDecoderFactory {
|
||||
std::vector<SdpVideoFormat> GetSupportedFormats() const override;
|
||||
std::unique_ptr<VideoDecoder> CreateVideoDecoder(
|
||||
const SdpVideoFormat& format) override;
|
||||
std::unique_ptr<VideoDecoder> LegacyCreateVideoDecoder(
|
||||
const SdpVideoFormat& format,
|
||||
const std::string& receive_stream_id) override;
|
||||
|
||||
private:
|
||||
const std::string peer_name_;
|
||||
|
||||
@ -338,7 +338,8 @@ void VideoReceiveStream::Start() {
|
||||
|
||||
for (const Decoder& decoder : config_.decoders) {
|
||||
std::unique_ptr<VideoDecoder> video_decoder =
|
||||
decoder.decoder_factory->CreateVideoDecoder(decoder.video_format);
|
||||
decoder.decoder_factory->LegacyCreateVideoDecoder(decoder.video_format,
|
||||
config_.stream_id);
|
||||
// If we still have no valid decoder, we have to create a "Null" decoder
|
||||
// that ignores all calls. The reason we can get into this state is that the
|
||||
// old decoder factory interface doesn't have a way to query supported
|
||||
|
||||
@ -314,7 +314,8 @@ void VideoReceiveStream2::Start() {
|
||||
|
||||
for (const Decoder& decoder : config_.decoders) {
|
||||
std::unique_ptr<VideoDecoder> video_decoder =
|
||||
decoder.decoder_factory->CreateVideoDecoder(decoder.video_format);
|
||||
decoder.decoder_factory->LegacyCreateVideoDecoder(decoder.video_format,
|
||||
config_.stream_id);
|
||||
// If we still have no valid decoder, we have to create a "Null" decoder
|
||||
// that ignores all calls. The reason we can get into this state is that the
|
||||
// old decoder factory interface doesn't have a way to query supported
|
||||
|
||||
Reference in New Issue
Block a user