Interface PadGetRangeFunction

All Superinterfaces:
FunctionPointer
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface @Generated("org.javagi.JavaGI") public interface PadGetRangeFunction extends FunctionPointer

Functional interface declaration of the PadGetRangeFunction callback.

See Also:
  • Method Details

    • run

      FlowReturn run(Pad pad, @Nullable GstObject parent, long offset, int length, Buffer[] buffer)

      This function will be called on source pads when a peer element request a buffer at the specified offset and length. If this function returns GST_FLOW_OK, the result buffer will be stored in buffer. The contents of buffer is invalid for any other return value.

      This function is installed on a source pad with gst_pad_set_getrange_function() and can only be called on source pads after they are successfully activated with gst_pad_activate_mode() with the GST_PAD_MODE_PULL.

      offset and length are always given in byte units. offset must normally be a value between 0 and the length in bytes of the data available on pad. The length (duration in bytes) can be retrieved with a GST_QUERY_DURATION or with a GST_QUERY_SEEKING.

      Any offset larger or equal than the length will make the function return GST_FLOW_EOS, which corresponds to EOS. In this case buffer does not contain a valid buffer.

      The buffer size of buffer will only be smaller than length when offset is near the end of the stream. In all other cases, the size of buffer must be exactly the requested size.

      It is allowed to call this function with a 0 length and valid offset, in which case buffer will contain a 0-sized buffer and the function returns GST_FLOW_OK.

      When this function is called with a -1 offset, the sequentially next buffer of length length in the stream is returned.

      When this function is called with a -1 length, a buffer with a default optimal length is returned in buffer. The length might depend on the value of offset.

      Parameters:
      pad - the src GstPad to perform the getrange on.
      parent - the parent of pad. If the GST_PAD_FLAG_NEED_PARENT flag is set, parent is guaranteed to be not-null and remain valid during the execution of this function.
      offset - the offset of the range
      length - the length of the range
      buffer - a memory location to hold the result buffer, cannot be null.
      Returns:
      GST_FLOW_OK for success and a valid buffer in buffer. Any other return value leaves buffer undefined.
    • upcall

      default int upcall(MemorySegment pad, MemorySegment parent, long offset, int length, MemorySegment buffer)
      The upcall method is called from native code. The parameters are marshaled and run(Pad, GstObject, long, int, Buffer[]) is executed.
    • toCallback

      default MemorySegment toCallback(Arena arena)
      Creates a native function pointer to the upcall(MemorySegment, MemorySegment, long, int, MemorySegment) method.
      Specified by:
      toCallback in interface FunctionPointer
      Parameters:
      arena - the arena in which the function pointer is allocated
      Returns:
      the native function pointer