Pad.pullRange

gst.types.FlowReturn pullRange(ulong offset, uint size, out gst.buffer.Buffer buffer)

Pulls a buffer from the peer pad or fills up a provided buffer.

This function will first trigger the pad block signal if it was installed.

When pad is not linked #GST_FLOW_NOT_LINKED is returned else this function returns the result of [gst.pad.Pad.getRange] on the peer pad. See [gst.pad.Pad.getRange] for a list of return values and for the semantics of the arguments of this function.

If buffer points to a variable holding null, a valid new #GstBuffer will be placed in buffer when this function returns #GST_FLOW_OK. The new buffer must be freed with gst_buffer_unref() after usage. When this function returns any other result value, buffer will still point to null.

When buffer points to a variable that points to a valid #GstBuffer, the buffer will be filled with the result data when this function returns #GST_FLOW_OK. When this function returns any other result value, buffer will be unchanged. If the provided buffer is larger than size, only size bytes will be filled in the result buffer and its size will be updated accordingly.

Note that less than size bytes can be returned in buffer when, for example, an EOS condition is near or when buffer is not large enough to hold size bytes. The caller should check the result buffer size to get the result size.

Parameters

offsetThe start offset of the buffer
sizeThe length of the buffer
buffera pointer to hold the #GstBuffer, returns GST_FLOW_ERROR if null.

Returns

a #GstFlowReturn from the peer pad.

MT safe.