Added java interface VideoEncoderFactory.VideoEncoderSelector and implemented VideoEncoderSelectorWrapper.
Bug: webrtc:11341 Change-Id: Ic15658e09643aec119a97ddfaebfdb72ba3407c7 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168487 Reviewed-by: Sami Kalliomäki <sakal@webrtc.org> Commit-Queue: Philip Eliasson <philipel@webrtc.org> Cr-Commit-Position: refs/heads/master@{#30519}
This commit is contained in:
@ -14,6 +14,25 @@ import android.support.annotation.Nullable;
|
||||
|
||||
/** Factory for creating VideoEncoders. */
|
||||
public interface VideoEncoderFactory {
|
||||
public interface VideoEncoderSelector {
|
||||
/** Called with the VideoCodecInfo of the currently used encoder. */
|
||||
@CalledByNative("VideoEncoderSelector") void onCurrentEncoder(VideoCodecInfo info);
|
||||
|
||||
/**
|
||||
* Called with the current encoding bitrate. Returns null if the encoder
|
||||
* selector which to keep the current encoder or a VideoCodecInfo if a
|
||||
* new encoder is preferred.
|
||||
*/
|
||||
@Nullable @CalledByNative("VideoEncoderSelector") VideoCodecInfo onEncodingBitrate(int kbps);
|
||||
|
||||
/**
|
||||
* Called when the currently used encoder signal itself as broken. Returns
|
||||
* null if the encoder selector which to keep the current encoder or a
|
||||
* VideoCodecInfo if a new encoder is preferred.
|
||||
*/
|
||||
@Nullable @CalledByNative("VideoEncoderSelector") VideoCodecInfo onEncoderBroken();
|
||||
}
|
||||
|
||||
/** Creates an encoder for the given video codec. */
|
||||
@Nullable @CalledByNative VideoEncoder createEncoder(VideoCodecInfo info);
|
||||
|
||||
@ -32,4 +51,13 @@ public interface VideoEncoderFactory {
|
||||
default VideoCodecInfo[] getImplementations() {
|
||||
return getSupportedCodecs();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a VideoEncoderSelector if implemented by the VideoEncoderFactory,
|
||||
* null otherwise.
|
||||
*/
|
||||
@CalledByNative
|
||||
default VideoEncoderSelector getEncoderSelector() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user