The default implementation of the method is to return an empty list. Clients should update their implementations before WebRTC starts calling this method. Also updates internal WebRTC implentations of this interface to implement the method. Bug: webrtc:7925 Change-Id: I258de2f09f6d4cc5dd9f4657e5d54e8411f8f5d8 Reviewed-on: https://webrtc-review.googlesource.com/77641 Reviewed-by: Anders Carlsson <andersc@webrtc.org> Commit-Queue: Sami Kalliomäki <sakal@webrtc.org> Cr-Commit-Position: refs/heads/master@{#23325}
48 lines
1.3 KiB
Java
48 lines
1.3 KiB
Java
/*
|
|
* Copyright 2017 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
package org.webrtc;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import javax.annotation.Nullable;
|
|
|
|
public class SoftwareVideoDecoderFactory implements VideoDecoderFactory {
|
|
@Nullable
|
|
@Override
|
|
public VideoDecoder createDecoder(String codecType) {
|
|
if (codecType.equalsIgnoreCase("VP8")) {
|
|
return new VP8Decoder();
|
|
}
|
|
if (codecType.equalsIgnoreCase("VP9") && VP9Decoder.nativeIsSupported()) {
|
|
return new VP9Decoder();
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public VideoCodecInfo[] getSupportedCodecs() {
|
|
return supportedCodecs();
|
|
}
|
|
|
|
static VideoCodecInfo[] supportedCodecs() {
|
|
List<VideoCodecInfo> codecs = new ArrayList<VideoCodecInfo>();
|
|
|
|
codecs.add(new VideoCodecInfo("VP8", new HashMap<>()));
|
|
if (VP9Decoder.nativeIsSupported()) {
|
|
codecs.add(new VideoCodecInfo("VP9", new HashMap<>()));
|
|
}
|
|
|
|
return codecs.toArray(new VideoCodecInfo[codecs.size()]);
|
|
}
|
|
}
|