Reland "Update internal video decoder factory to new interface"
This reverts commit 267d84baf0597f89a3d1f66d323db754bc5d9239. Reason for reland: Fix the bug; decoder is not allowed to ever be null and we need to use a NullVideoDecoder that ignores calls instead. Original change's description: > Revert "Update internal video decoder factory to new interface" > > This reverts commit b2fc9b1b104240e68047901309deaee3e8b94bea. > > Reason for revert: Suspected to cause failures on Android bots on webrtc.fyi, see https://build.chromium.org/p/chromium.webrtc.fyi/builders/Android%20Tests%20%28dbg%29%20%28K%20Nexus5%29/builds/21051 > > Original change's description: > > Update internal video decoder factory to new interface > > > > We want to move away from cricket::WebRtcVideoDecoderFactory and this CL > > updates the internal factory. Also, VideoDecoderSoftwareFallbackWrapper > > is updated to take a VideoDecoder as argument instead of a factory so it > > can be used with external SW decoders. > > > > Bug: webrtc:7925 > > Change-Id: Ie6dc6c24f8610a2129620c6e2b42e3cebb2ddef7 > > Reviewed-on: https://webrtc-review.googlesource.com/7301 > > Reviewed-by: Rasmus Brandt <brandtr@webrtc.org> > > Reviewed-by: Anders Carlsson <andersc@webrtc.org> > > Commit-Queue: Magnus Jedvert <magjed@webrtc.org> > > Cr-Commit-Position: refs/heads/master@{#20597} > > TBR=brandtr@webrtc.org,magjed@webrtc.org,andersc@webrtc.org > > Change-Id: I0a12c98fdc30f00d58c85ee7e088f50160d39724 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: webrtc:7925 > Reviewed-on: https://webrtc-review.googlesource.com/21420 > Reviewed-by: Christian Fremerey <chfremer@webrtc.org> > Commit-Queue: Christian Fremerey <chfremer@webrtc.org> > Cr-Commit-Position: refs/heads/master@{#20605} TBR=brandtr@webrtc.org,magjed@webrtc.org,andersc@webrtc.org,chfremer@webrtc.org,chfremer@google.com Change-Id: I6cf5794dc3fadfa86809a94da80b69dbb4c56f52 No-Try: true Bug: webrtc:7925 Reviewed-on: https://webrtc-review.googlesource.com/21541 Commit-Queue: Magnus Jedvert <magjed@webrtc.org> Reviewed-by: Magnus Jedvert <magjed@webrtc.org> Cr-Commit-Position: refs/heads/master@{#20623}
This commit is contained in:
committed by
Commit Bot
parent
5478b47b5a
commit
7501b1c3d1
@ -80,6 +80,23 @@ bool RunEncodeInRealTime(const TestConfig& config) {
|
||||
#endif
|
||||
}
|
||||
|
||||
// An internal decoder factory in the old WebRtcVideoDecoderFactory format.
|
||||
// TODO(magjed): Update these tests to use new webrtc::VideoDecoderFactory
|
||||
// instead.
|
||||
class LegacyInternalDecoderFactory : public cricket::WebRtcVideoDecoderFactory {
|
||||
public:
|
||||
// WebRtcVideoDecoderFactory implementation.
|
||||
VideoDecoder* CreateVideoDecoderWithParams(
|
||||
const cricket::VideoCodec& codec,
|
||||
cricket::VideoDecoderParams params) override {
|
||||
return InternalDecoderFactory()
|
||||
.CreateVideoDecoder(SdpVideoFormat(codec.name, codec.params))
|
||||
.release();
|
||||
}
|
||||
|
||||
void DestroyVideoDecoder(VideoDecoder* decoder) override { delete decoder; }
|
||||
};
|
||||
|
||||
} // namespace
|
||||
|
||||
void VideoProcessorIntegrationTest::H264KeyframeChecker::CheckEncodedFrame(
|
||||
@ -311,7 +328,7 @@ void VideoProcessorIntegrationTest::CreateEncoderAndDecoder() {
|
||||
RTC_NOTREACHED() << "Only support HW decoder on Android and iOS.";
|
||||
#endif
|
||||
} else {
|
||||
decoder_factory.reset(new cricket::InternalDecoderFactory());
|
||||
decoder_factory.reset(new LegacyInternalDecoderFactory());
|
||||
}
|
||||
|
||||
cricket::VideoCodec codec;
|
||||
@ -369,7 +386,9 @@ void VideoProcessorIntegrationTest::CreateEncoderAndDecoder() {
|
||||
}
|
||||
if (config_.sw_fallback_decoder) {
|
||||
decoder_ = rtc::MakeUnique<VideoDecoderSoftwareFallbackWrapper>(
|
||||
config_.codec_settings.codecType, std::move(decoder_));
|
||||
InternalDecoderFactory().CreateVideoDecoder(
|
||||
SdpVideoFormat(codec.name, codec.params)),
|
||||
std::move(decoder_));
|
||||
}
|
||||
|
||||
EXPECT_TRUE(encoder_) << "Encoder not successfully created.";
|
||||
|
||||
Reference in New Issue
Block a user