Remove webrtc::VideoDecoder::PrefersLateDecoding.
This is just general cleanup.
The assumed behavior is late decoding, and this function is not used to make any decision (except in the deprecated jitter buffer).
Bug: webrtc:12271
Change-Id: Ifb48186d55903f068f25e44c5f73e7a724f6f456
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/200804
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32940}
diff --git a/api/video_codecs/video_decoder.h b/api/video_codecs/video_decoder.h
index 266d653..155e76c 100644
--- a/api/video_codecs/video_decoder.h
+++ b/api/video_codecs/video_decoder.h
@@ -59,6 +59,7 @@
// Returns true if the decoder prefer to decode frames late.
// That is, it can not decode infinite number of frames before the decoded
// frame is consumed.
+ // TODO(bugs.webrtc.org/12271): Remove when downstream has been updated.
virtual bool PrefersLateDecoding() const;
virtual const char* ImplementationName() const;
diff --git a/api/video_codecs/video_decoder_software_fallback_wrapper.cc b/api/video_codecs/video_decoder_software_fallback_wrapper.cc
index 128087f..32941d2 100644
--- a/api/video_codecs/video_decoder_software_fallback_wrapper.cc
+++ b/api/video_codecs/video_decoder_software_fallback_wrapper.cc
@@ -50,7 +50,6 @@
DecodedImageCallback* callback) override;
int32_t Release() override;
- bool PrefersLateDecoding() const override;
const char* ImplementationName() const override;
@@ -262,10 +261,6 @@
return status;
}
-bool VideoDecoderSoftwareFallbackWrapper::PrefersLateDecoding() const {
- return active_decoder().PrefersLateDecoding();
-}
-
const char* VideoDecoderSoftwareFallbackWrapper::ImplementationName() const {
return decoder_type_ == DecoderType::kFallback
? fallback_implementation_name_.c_str()
diff --git a/modules/video_coding/decoder_database.cc b/modules/video_coding/decoder_database.cc
index a7a4b8f..594ca86 100644
--- a/modules/video_coding/decoder_database.cc
+++ b/modules/video_coding/decoder_database.cc
@@ -133,10 +133,6 @@
return ptr_decoder_.get();
}
-bool VCMDecoderDataBase::PrefersLateDecoding() const {
- return ptr_decoder_ ? ptr_decoder_->PrefersLateDecoding() : true;
-}
-
std::unique_ptr<VCMGenericDecoder> VCMDecoderDataBase::CreateAndInitDecoder(
const VCMEncodedFrame& frame,
VideoCodec* new_codec) const {
diff --git a/modules/video_coding/decoder_database.h b/modules/video_coding/decoder_database.h
index abfd81e..f7c5d70 100644
--- a/modules/video_coding/decoder_database.h
+++ b/modules/video_coding/decoder_database.h
@@ -59,10 +59,6 @@
const VCMEncodedFrame& frame,
VCMDecodedFrameCallback* decoded_frame_callback);
- // Returns true if the currently active decoder prefer to decode frames late.
- // That means that frames must be decoded near the render times stamp.
- bool PrefersLateDecoding() const;
-
private:
typedef std::map<uint8_t, VCMDecoderMapItem*> DecoderMap;
typedef std::map<uint8_t, VCMExtDecoderMapItem*> ExternalDecoderMap;
diff --git a/modules/video_coding/generic_decoder.cc b/modules/video_coding/generic_decoder.cc
index 7905792..d237d0c 100644
--- a/modules/video_coding/generic_decoder.cc
+++ b/modules/video_coding/generic_decoder.cc
@@ -294,8 +294,4 @@
return decoder_->RegisterDecodeCompleteCallback(callback);
}
-bool VCMGenericDecoder::PrefersLateDecoding() const {
- return decoder_->PrefersLateDecoding();
-}
-
} // namespace webrtc
diff --git a/modules/video_coding/generic_decoder.h b/modules/video_coding/generic_decoder.h
index 8481fdc..bd3620d 100644
--- a/modules/video_coding/generic_decoder.h
+++ b/modules/video_coding/generic_decoder.h
@@ -111,7 +111,6 @@
*/
int32_t RegisterDecodeCompleteCallback(VCMDecodedFrameCallback* callback);
- bool PrefersLateDecoding() const;
bool IsSameDecoder(VideoDecoder* decoder) const {
return decoder_.get() == decoder;
}
diff --git a/modules/video_coding/video_receiver.cc b/modules/video_coding/video_receiver.cc
index c2c8f8a..23c251f 100644
--- a/modules/video_coding/video_receiver.cc
+++ b/modules/video_coding/video_receiver.cc
@@ -173,8 +173,7 @@
// Should be called as often as possible to get the most out of the decoder.
int32_t VideoReceiver::Decode(uint16_t maxWaitTimeMs) {
RTC_DCHECK_RUN_ON(&decoder_thread_checker_);
- VCMEncodedFrame* frame = _receiver.FrameForDecoding(
- maxWaitTimeMs, _codecDataBase.PrefersLateDecoding());
+ VCMEncodedFrame* frame = _receiver.FrameForDecoding(maxWaitTimeMs, true);
if (!frame)
return VCM_FRAME_NOT_READY;
diff --git a/sdk/android/api/org/webrtc/VideoDecoder.java b/sdk/android/api/org/webrtc/VideoDecoder.java
index 879b694..f4d3b8f 100644
--- a/sdk/android/api/org/webrtc/VideoDecoder.java
+++ b/sdk/android/api/org/webrtc/VideoDecoder.java
@@ -90,7 +90,10 @@
* The decoder should return true if it prefers late decoding. That is, it can not decode
* infinite number of frames before the decoded frame is consumed.
*/
- @CalledByNative boolean getPrefersLateDecoding();
+ // TODO(bugs.webrtc.org/12271): Remove when downstream has been updated.
+ default boolean getPrefersLateDecoding() {
+ return true;
+ }
/**
* Should return a descriptive name for the implementation. Gets called once and cached. May be
* called from arbitrary thread.
diff --git a/sdk/android/api/org/webrtc/WrappedNativeVideoDecoder.java b/sdk/android/api/org/webrtc/WrappedNativeVideoDecoder.java
index b70c664..027120e 100644
--- a/sdk/android/api/org/webrtc/WrappedNativeVideoDecoder.java
+++ b/sdk/android/api/org/webrtc/WrappedNativeVideoDecoder.java
@@ -32,11 +32,6 @@
}
@Override
- public final boolean getPrefersLateDecoding() {
- throw new UnsupportedOperationException("Not implemented.");
- }
-
- @Override
public final String getImplementationName() {
throw new UnsupportedOperationException("Not implemented.");
}
diff --git a/sdk/android/src/java/org/webrtc/AndroidVideoDecoder.java b/sdk/android/src/java/org/webrtc/AndroidVideoDecoder.java
index dcb045f..35a0f0e 100644
--- a/sdk/android/src/java/org/webrtc/AndroidVideoDecoder.java
+++ b/sdk/android/src/java/org/webrtc/AndroidVideoDecoder.java
@@ -292,11 +292,6 @@
}
@Override
- public boolean getPrefersLateDecoding() {
- return true;
- }
-
- @Override
public String getImplementationName() {
return codecName;
}
diff --git a/sdk/android/src/jni/video_decoder_wrapper.cc b/sdk/android/src/jni/video_decoder_wrapper.cc
index 4eb70f7..01fb84f 100644
--- a/sdk/android/src/jni/video_decoder_wrapper.cc
+++ b/sdk/android/src/jni/video_decoder_wrapper.cc
@@ -144,11 +144,6 @@
return status;
}
-bool VideoDecoderWrapper::PrefersLateDecoding() const {
- JNIEnv* jni = AttachCurrentThreadIfNeeded();
- return Java_VideoDecoder_getPrefersLateDecoding(jni, decoder_);
-}
-
const char* VideoDecoderWrapper::ImplementationName() const {
return implementation_name_.c_str();
}
diff --git a/sdk/android/src/jni/video_decoder_wrapper.h b/sdk/android/src/jni/video_decoder_wrapper.h
index f5c4787..e8d0fec 100644
--- a/sdk/android/src/jni/video_decoder_wrapper.h
+++ b/sdk/android/src/jni/video_decoder_wrapper.h
@@ -47,11 +47,6 @@
// still safe and synchronous.
int32_t Release() override RTC_NO_THREAD_SAFETY_ANALYSIS;
- // Returns true if the decoder prefer to decode frames late.
- // That is, it can not decode infinite number of frames before the decoded
- // frame is consumed.
- bool PrefersLateDecoding() const override;
-
const char* ImplementationName() const override;
// Wraps the frame to a AndroidVideoBuffer and passes it to the callback.
diff --git a/test/pc/e2e/analyzer/video/quality_analyzing_video_decoder.cc b/test/pc/e2e/analyzer/video/quality_analyzing_video_decoder.cc
index 196f900..5cd961e 100644
--- a/test/pc/e2e/analyzer/video/quality_analyzing_video_decoder.cc
+++ b/test/pc/e2e/analyzer/video/quality_analyzing_video_decoder.cc
@@ -123,10 +123,6 @@
return result;
}
-bool QualityAnalyzingVideoDecoder::PrefersLateDecoding() const {
- return delegate_->PrefersLateDecoding();
-}
-
const char* QualityAnalyzingVideoDecoder::ImplementationName() const {
return implementation_name_.c_str();
}
diff --git a/test/pc/e2e/analyzer/video/quality_analyzing_video_decoder.h b/test/pc/e2e/analyzer/video/quality_analyzing_video_decoder.h
index 2381f59..79ca68d 100644
--- a/test/pc/e2e/analyzer/video/quality_analyzing_video_decoder.h
+++ b/test/pc/e2e/analyzer/video/quality_analyzing_video_decoder.h
@@ -69,7 +69,6 @@
int32_t RegisterDecodeCompleteCallback(
DecodedImageCallback* callback) override;
int32_t Release() override;
- bool PrefersLateDecoding() const override;
const char* ImplementationName() const override;
private:
diff --git a/test/video_decoder_proxy_factory.h b/test/video_decoder_proxy_factory.h
index 84552e3..2027f71 100644
--- a/test/video_decoder_proxy_factory.h
+++ b/test/video_decoder_proxy_factory.h
@@ -61,7 +61,6 @@
return decoder_->RegisterDecodeCompleteCallback(callback);
}
int32_t Release() override { return decoder_->Release(); }
- bool PrefersLateDecoding() const { return decoder_->PrefersLateDecoding(); }
const char* ImplementationName() const override {
return decoder_->ImplementationName();
}
diff --git a/video/frame_dumping_decoder.cc b/video/frame_dumping_decoder.cc
index 4ccb333..c27a653 100644
--- a/video/frame_dumping_decoder.cc
+++ b/video/frame_dumping_decoder.cc
@@ -32,7 +32,6 @@
int32_t RegisterDecodeCompleteCallback(
DecodedImageCallback* callback) override;
int32_t Release() override;
- bool PrefersLateDecoding() const override;
const char* ImplementationName() const override;
private:
@@ -73,10 +72,6 @@
return decoder_->Release();
}
-bool FrameDumpingDecoder::PrefersLateDecoding() const {
- return decoder_->PrefersLateDecoding();
-}
-
const char* FrameDumpingDecoder::ImplementationName() const {
return decoder_->ImplementationName();
}