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:
committed by
Commit Bot
parent
e6d7c3e32a
commit
026f27fac1
@ -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) {
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
|
||||
@ -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.
|
||||
|
||||
Reference in New Issue
Block a user