• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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