pull_range
Description:
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 |