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 Pad.getRange on the peer pad. See 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 gstreamer.Buffer will be placed in buffer when this function returns GST_FLOW_OK The new buffer must be freed with 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 gstreamer.Buffer, 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 gstreamer.Buffer, returns GST_FLOW_ERROR if NULL.

Return Value

a GstFlowReturn from the peer pad.

MT safe.