Android: Pass VideoCodecInfo instead of String to createDecoder()

This is in line with the new C++ VideoCodecFactory interface.

Bug: webrtc:7925
Change-Id: Ice51cab61b6498fef1b0483ce1bd4835ef550231
Reviewed-on: https://webrtc-review.googlesource.com/88368
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23966}
This commit is contained in:
Magnus Jedvert
2018-07-13 11:18:03 +02:00
committed by Commit Bot
parent e6d7c3e32a
commit 026f27fac1
6 changed files with 33 additions and 17 deletions

View File

@ -31,7 +31,7 @@ public class DefaultVideoDecoderFactory implements VideoDecoderFactory {
}
@Override
public @Nullable VideoDecoder createDecoder(String codecType) {
public @Nullable VideoDecoder createDecoder(VideoCodecInfo codecType) {
final VideoDecoder softwareDecoder = softwareVideoDecoderFactory.createDecoder(codecType);
final VideoDecoder hardwareDecoder = hardwareVideoDecoderFactory.createDecoder(codecType);
if (hardwareDecoder != null && softwareDecoder != null) {

View File

@ -46,8 +46,8 @@ public class HardwareVideoDecoderFactory implements VideoDecoderFactory {
@Nullable
@Override
public VideoDecoder createDecoder(String codecType) {
VideoCodecType type = VideoCodecType.valueOf(codecType);
public VideoDecoder createDecoder(VideoCodecInfo codecType) {
VideoCodecType type = VideoCodecType.valueOf(codecType.getName());
MediaCodecInfo info = findCodecForType(type);
if (info == null) {

View File

@ -18,11 +18,11 @@ import javax.annotation.Nullable;
public class SoftwareVideoDecoderFactory implements VideoDecoderFactory {
@Nullable
@Override
public VideoDecoder createDecoder(String codecType) {
if (codecType.equalsIgnoreCase("VP8")) {
public VideoDecoder createDecoder(VideoCodecInfo codecType) {
if (codecType.getName().equalsIgnoreCase("VP8")) {
return new VP8Decoder();
}
if (codecType.equalsIgnoreCase("VP9") && VP9Decoder.nativeIsSupported()) {
if (codecType.getName().equalsIgnoreCase("VP9") && VP9Decoder.nativeIsSupported()) {
return new VP9Decoder();
}

View File

@ -18,7 +18,18 @@ public interface VideoDecoderFactory {
* Creates a VideoDecoder for the given codec. Supports the same codecs supported by
* VideoEncoderFactory.
*/
@Nullable @CalledByNative VideoDecoder createDecoder(String codecType);
@Deprecated
@Nullable
default VideoDecoder createDecoder(String codecType) {
throw new UnsupportedOperationException("Deprecated and not implemented.");
}
/** Creates a decoder for the given video codec. */
@Nullable
@CalledByNative
default VideoDecoder createDecoder(VideoCodecInfo info) {
return createDecoder(info.getName());
}
/**
* Enumerates the list of supported video codecs.