1 /* 2 * Copyright 2017 The WebRTC project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 package org.webrtc; 12 13 /** 14 * A combined video encoder that falls back on a secondary encoder if the primary encoder fails. 15 */ 16 public class VideoEncoderFallback extends WrappedNativeVideoEncoder { 17 private final VideoEncoder fallback; 18 private final VideoEncoder primary; 19 VideoEncoderFallback(VideoEncoder fallback, VideoEncoder primary)20 public VideoEncoderFallback(VideoEncoder fallback, VideoEncoder primary) { 21 this.fallback = fallback; 22 this.primary = primary; 23 } 24 25 @Override createNativeVideoEncoder()26 public long createNativeVideoEncoder() { 27 return nativeCreateEncoder(fallback, primary); 28 } 29 30 @Override isHardwareEncoder()31 public boolean isHardwareEncoder() { 32 return primary.isHardwareEncoder(); 33 } 34 nativeCreateEncoder(VideoEncoder fallback, VideoEncoder primary)35 private static native long nativeCreateEncoder(VideoEncoder fallback, VideoEncoder primary); 36 } 37