Fix a bug where all wrapped codecs were considered software codecs.

This is not the case for fallback codecs.

Bug: webrtc:7925
Change-Id: I5039d8879923a2db1e7c08bb5640763dd20ea8e7
Reviewed-on: https://webrtc-review.googlesource.com/24863
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20861}
This commit is contained in:
Sami Kalliomäki
2017-11-24 11:00:04 +01:00
committed by Commit Bot
parent 1f2a3e7058
commit 6196feb2ed
7 changed files with 31 additions and 5 deletions

View File

@ -12,4 +12,9 @@ package org.webrtc;
class VP8Encoder extends WrappedNativeVideoEncoder {
@Override native long createNativeEncoder();
@Override
boolean isSoftwareEncoder() {
return true;
}
}

View File

@ -13,5 +13,10 @@ package org.webrtc;
class VP9Encoder extends WrappedNativeVideoEncoder {
@Override native long createNativeEncoder();
@Override
boolean isSoftwareEncoder() {
return true;
}
static native boolean isSupported();
}

View File

@ -16,6 +16,8 @@ package org.webrtc;
abstract class WrappedNativeVideoEncoder implements VideoEncoder {
@CalledByNative abstract long createNativeEncoder();
abstract boolean isSoftwareEncoder();
@Override
public VideoCodecStatus initEncode(Settings settings, Callback encodeCallback) {
throw new UnsupportedOperationException("Not implemented.");
@ -51,6 +53,12 @@ abstract class WrappedNativeVideoEncoder implements VideoEncoder {
throw new UnsupportedOperationException("Not implemented.");
}
@CalledByNative
static boolean isWrappedSoftwareEncoder(VideoEncoder encoder) {
return (encoder instanceof WrappedNativeVideoEncoder)
&& ((WrappedNativeVideoEncoder) encoder).isSoftwareEncoder();
}
@CalledByNative
static boolean isInstanceOf(VideoEncoder encoder) {
return encoder instanceof WrappedNativeVideoEncoder;