Add getSupportedCodecs to VideoDecoderFactory interface.

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}
This commit is contained in:
Sami Kalliomäki
2018-05-21 13:45:51 +02:00
committed by Commit Bot
parent 80d02ad93f
commit cc02cb595f
7 changed files with 123 additions and 26 deletions

View File

@ -10,6 +10,9 @@
package org.webrtc;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.List;
import javax.annotation.Nullable;
public class DefaultVideoDecoderFactory implements VideoDecoderFactory {
@ -30,4 +33,14 @@ public class DefaultVideoDecoderFactory implements VideoDecoderFactory {
}
return softwareVideoDecoderFactory.createDecoder(codecType);
}
@Override
public VideoCodecInfo[] getSupportedCodecs() {
LinkedHashSet<VideoCodecInfo> supportedCodecInfos = new LinkedHashSet<VideoCodecInfo>();
supportedCodecInfos.addAll(Arrays.asList(softwareVideoDecoderFactory.getSupportedCodecs()));
supportedCodecInfos.addAll(Arrays.asList(hardwareVideoDecoderFactory.getSupportedCodecs()));
return supportedCodecInfos.toArray(new VideoCodecInfo[supportedCodecInfos.size()]);
}
}