mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-28 19:20:35 +00:00
pad: add methods to adjust the offset
Add methods to adjust the offset. This will be used to change the segment events with an offset so that we can tweak the timing of the stream on a per-pad base.
This commit is contained in:
parent
9c4ce4ae16
commit
c8340e7762
2 changed files with 49 additions and 0 deletions
42
gst/gstpad.c
42
gst/gstpad.c
|
@ -3584,6 +3584,48 @@ flushing:
|
|||
}
|
||||
}
|
||||
|
||||
/* pad offsets */
|
||||
|
||||
/**
|
||||
* gst_pad_get_offset:
|
||||
* @pad: a #GstPad
|
||||
*
|
||||
* Get the offset applied to the running time of @pad.
|
||||
*
|
||||
* Returns: the offset.
|
||||
*/
|
||||
gint64
|
||||
gst_pad_get_offset (GstPad * pad)
|
||||
{
|
||||
gint64 result;
|
||||
|
||||
g_return_val_if_fail (GST_IS_PAD (pad), 0);
|
||||
|
||||
GST_OBJECT_LOCK (pad);
|
||||
result = pad->offset;
|
||||
GST_OBJECT_UNLOCK (pad);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* gst_pad_set_offset:
|
||||
* @pad: a #GstPad
|
||||
* @offset: the offset
|
||||
*
|
||||
* Set the offset that will be applied to the running time of @pad.
|
||||
*/
|
||||
void
|
||||
gst_pad_set_offset (GstPad * pad, gint64 offset)
|
||||
{
|
||||
g_return_if_fail (GST_IS_PAD (pad));
|
||||
|
||||
GST_OBJECT_LOCK (pad);
|
||||
pad->offset = offset;
|
||||
GST_OBJECT_UNLOCK (pad);
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************
|
||||
* Data passing functions
|
||||
*/
|
||||
|
|
|
@ -630,6 +630,9 @@ struct _GstPad {
|
|||
GstPadGetRangeFunction getrangefunc;
|
||||
GstPadEventFunction eventfunc;
|
||||
|
||||
/* pad offset */
|
||||
gint64 offset;
|
||||
|
||||
/* generic query method */
|
||||
GstPadQueryTypeFunction querytypefunc;
|
||||
GstPadQueryFunction queryfunc;
|
||||
|
@ -865,6 +868,10 @@ gboolean gst_pad_peer_accept_caps (GstPad * pad, GstCaps *caps);
|
|||
GstCaps * gst_pad_get_allowed_caps (GstPad * pad);
|
||||
GstCaps * gst_pad_get_negotiated_caps (GstPad * pad);
|
||||
|
||||
/* pad offsets */
|
||||
gint64 gst_pad_get_offset (GstPad *pad);
|
||||
void gst_pad_set_offset (GstPad *pad, gint64 offset);
|
||||
|
||||
/* data passing functions to peer */
|
||||
GstFlowReturn gst_pad_push (GstPad *pad, GstBuffer *buffer);
|
||||
GstFlowReturn gst_pad_push_list (GstPad *pad, GstBufferList *list);
|
||||
|
|
Loading…
Reference in a new issue