On 6/14/22 02:26, Rémi Bernon wrote:
From: Rémi Bernon rbernon@codeweavers.com
It is invalid according to GStreamer documentation.
What documentation are you referring to?
The documentation for GstPadGetRangeFunction itself is somewhat badly written and doesn't actually mention what "buffer" is expected to contain on input, but the documentation for gst_pad_get_range() says:
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 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. 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.
and the implementation shows that the intent is for the same to apply to GstPadGetRangeFunction.
For what it's worth, I believe oggdemux actually does pass a non-NULL buffer, and breaks if we don't fill that.