Package tvi.webrtc

Class WrappedNativeVideoDecoder

All Implemented Interfaces:
Direct Known Subclasses:
Dav1dDecoder, LibaomAv1Decoder, LibvpxVp8Decoder, LibvpxVp9Decoder, VideoDecoderFallback

public abstract class WrappedNativeVideoDecoder extends Object implements VideoDecoder
Wraps a native webrtc::VideoDecoder.
  • Constructor Details

    • WrappedNativeVideoDecoder

      public WrappedNativeVideoDecoder()
  • Method Details

    • createNativeVideoDecoder

      public abstract long createNativeVideoDecoder()
      Description copied from interface: VideoDecoder
      The decoder implementation backing this interface is either 1) a Java decoder (e.g., an Android platform decoder), or alternatively 2) a native decoder (e.g., a software decoder or a C++ decoder adapter). For case 1), createNativeVideoDecoder() should return zero. In this case, we expect the native library to call the decoder through JNI using the Java interface declared below. For case 2), createNativeVideoDecoder() should return a non-zero value. In this case, we expect the native library to treat the returned value as a raw pointer of type webrtc::VideoDecoder* (ownership is transferred to the caller). The native library should then directly call the webrtc::VideoDecoder interface without going through JNI. All calls to the Java interface methods declared below should thus throw an UnsupportedOperationException.
      Specified by:
      createNativeVideoDecoder in interface VideoDecoder
    • initDecode

      public final VideoCodecStatus initDecode(VideoDecoder.Settings settings, VideoDecoder.Callback decodeCallback)
      Description copied from interface: VideoDecoder
      Initializes the decoding process with specified settings. Will be called on the decoding thread before any decode calls.
      Specified by:
      initDecode in interface VideoDecoder
    • release

      public final VideoCodecStatus release()
      Description copied from interface: VideoDecoder
      Called when the decoder is no longer needed. Any more calls to decode will not be made.
      Specified by:
      release in interface VideoDecoder
    • decode

      public final VideoCodecStatus decode(EncodedImage frame, VideoDecoder.DecodeInfo info)
      Description copied from interface: VideoDecoder
      Request the decoder to decode a frame.
      Specified by:
      decode in interface VideoDecoder
    • getImplementationName

      public final String getImplementationName()
      Description copied from interface: VideoDecoder
      Should return a descriptive name for the implementation. Gets called once and cached. May be called from arbitrary thread.
      Specified by:
      getImplementationName in interface VideoDecoder