Pad.pullRange

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_get_range() on the peer pad. See gst_pad_get_range() 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.

class Pad
pullRange
(
ulong offset
,
uint size
,)

Parameters

offset ulong

The start offset of the buffer

size uint

The length of the buffer

buffer Buffer

a pointer to hold the #GstBuffer, returns GST_FLOW_ERROR if %NULL.

Return: a #GstFlowReturn from the peer pad.

MT safe.

Meta