From 6e9d0d38ef8beba53ec8f53357df28d07a43b174 Mon Sep 17 00:00:00 2001 From: Xavier Lepaul Date: Thu, 21 Nov 2019 16:10:22 +0100 Subject: [PATCH] Make base classes for native video encoder/decoder public MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implementers of Java wrappers for native encoders need to have the same implementation of all the unsupported methods, as mentioned in the documentation of VideoEncoder.createNativeVideoEncoder (and its decoder equivalent). This simplifies implementation of such encoders/decoders, and also make sure they don’t override unsupported methods, as they are guaranteed not to be called. Bug: None Change-Id: Iaa8499eda1b52cc14b04622bea2766cd09ba43e6 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/160186 Reviewed-by: Sami Kalliomäki Commit-Queue: Xavier Lepaul Cr-Commit-Position: refs/heads/master@{#29866} --- sdk/android/BUILD.gn | 4 ++-- .../org/webrtc/WrappedNativeVideoDecoder.java | 12 ++++++------ .../org/webrtc/WrappedNativeVideoEncoder.java | 14 +++++++------- 3 files changed, 15 insertions(+), 15 deletions(-) rename sdk/android/{src/java => api}/org/webrtc/WrappedNativeVideoDecoder.java (71%) rename sdk/android/{src/java => api}/org/webrtc/WrappedNativeVideoEncoder.java (69%) diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn index 796d3bea4f..1e49597f1f 100644 --- a/sdk/android/BUILD.gn +++ b/sdk/android/BUILD.gn @@ -239,6 +239,8 @@ if (is_android) { "api/org/webrtc/YuvConverter.java", "api/org/webrtc/YuvHelper.java", "api/org/webrtc/TimestampAligner.java", + "api/org/webrtc/WrappedNativeVideoDecoder.java", + "api/org/webrtc/WrappedNativeVideoEncoder.java", "src/java/org/webrtc/EglBase10Impl.java", "src/java/org/webrtc/EglBase14Impl.java", "src/java/org/webrtc/GlGenericDrawer.java", @@ -247,8 +249,6 @@ if (is_android) { "src/java/org/webrtc/VideoDecoderWrapper.java", "src/java/org/webrtc/VideoEncoderWrapper.java", "src/java/org/webrtc/WrappedNativeI420Buffer.java", - "src/java/org/webrtc/WrappedNativeVideoDecoder.java", - "src/java/org/webrtc/WrappedNativeVideoEncoder.java", ] deps = [ diff --git a/sdk/android/src/java/org/webrtc/WrappedNativeVideoDecoder.java b/sdk/android/api/org/webrtc/WrappedNativeVideoDecoder.java similarity index 71% rename from sdk/android/src/java/org/webrtc/WrappedNativeVideoDecoder.java rename to sdk/android/api/org/webrtc/WrappedNativeVideoDecoder.java index 80070d3ada..b70c664915 100644 --- a/sdk/android/src/java/org/webrtc/WrappedNativeVideoDecoder.java +++ b/sdk/android/api/org/webrtc/WrappedNativeVideoDecoder.java @@ -13,31 +13,31 @@ package org.webrtc; /** * Wraps a native webrtc::VideoDecoder. */ -abstract class WrappedNativeVideoDecoder implements VideoDecoder { +public abstract class WrappedNativeVideoDecoder implements VideoDecoder { @Override public abstract long createNativeVideoDecoder(); @Override - public VideoCodecStatus initDecode(Settings settings, Callback decodeCallback) { + public final VideoCodecStatus initDecode(Settings settings, Callback decodeCallback) { throw new UnsupportedOperationException("Not implemented."); } @Override - public VideoCodecStatus release() { + public final VideoCodecStatus release() { throw new UnsupportedOperationException("Not implemented."); } @Override - public VideoCodecStatus decode(EncodedImage frame, DecodeInfo info) { + public final VideoCodecStatus decode(EncodedImage frame, DecodeInfo info) { throw new UnsupportedOperationException("Not implemented."); } @Override - public boolean getPrefersLateDecoding() { + public final boolean getPrefersLateDecoding() { throw new UnsupportedOperationException("Not implemented."); } @Override - public String getImplementationName() { + public final String getImplementationName() { throw new UnsupportedOperationException("Not implemented."); } } diff --git a/sdk/android/src/java/org/webrtc/WrappedNativeVideoEncoder.java b/sdk/android/api/org/webrtc/WrappedNativeVideoEncoder.java similarity index 69% rename from sdk/android/src/java/org/webrtc/WrappedNativeVideoEncoder.java rename to sdk/android/api/org/webrtc/WrappedNativeVideoEncoder.java index 959cafca56..7d0908a6ac 100644 --- a/sdk/android/src/java/org/webrtc/WrappedNativeVideoEncoder.java +++ b/sdk/android/api/org/webrtc/WrappedNativeVideoEncoder.java @@ -13,37 +13,37 @@ package org.webrtc; /** * Wraps a native webrtc::VideoEncoder. */ -abstract class WrappedNativeVideoEncoder implements VideoEncoder { +public abstract class WrappedNativeVideoEncoder implements VideoEncoder { @Override public abstract long createNativeVideoEncoder(); @Override public abstract boolean isHardwareEncoder(); @Override - public VideoCodecStatus initEncode(Settings settings, Callback encodeCallback) { + public final VideoCodecStatus initEncode(Settings settings, Callback encodeCallback) { throw new UnsupportedOperationException("Not implemented."); } @Override - public VideoCodecStatus release() { + public final VideoCodecStatus release() { throw new UnsupportedOperationException("Not implemented."); } @Override - public VideoCodecStatus encode(VideoFrame frame, EncodeInfo info) { + public final VideoCodecStatus encode(VideoFrame frame, EncodeInfo info) { throw new UnsupportedOperationException("Not implemented."); } @Override - public VideoCodecStatus setRateAllocation(BitrateAllocation allocation, int framerate) { + public final VideoCodecStatus setRateAllocation(BitrateAllocation allocation, int framerate) { throw new UnsupportedOperationException("Not implemented."); } @Override - public ScalingSettings getScalingSettings() { + public final ScalingSettings getScalingSettings() { throw new UnsupportedOperationException("Not implemented."); } @Override - public String getImplementationName() { + public final String getImplementationName() { throw new UnsupportedOperationException("Not implemented."); } }