pull_range


Description:

public FlowReturn pull_range (uint64 offset, uint size, out 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 this is not linked NOT_LINKED is returned else this function returns the result of get_range on the peer pad. See 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 Buffer will be placed in buffer when this function returns 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 Buffer, the buffer will be filled with the result data when this function returns 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:

this

a sink Pad, returns GST_FLOW_ERROR if not.

offset

The start offset of the buffer

size

The length of the buffer

buffer

a pointer to hold the Buffer, returns GST_FLOW_ERROR if null.

Returns: