|GStreamer Entrans 1.0 Reference Manual|
|Top | Description | Object Hierarchy | Properties|
"allow-segments" gboolean : Read / Write "drop" guint64 : Read "duplicate" guint64 : Read "invalidate" gboolean : Read / Write "last-message" gchararray : Read "progress" guint : Read / Write "silent" gboolean : Read / Write "sync-interval" guint : Read / Write "sync-margin" guint : Read / Write
Re-sequence timestamps on buffers and optionally provide progress info.
The identity element has a similar single-segment functionality which timestamps buffers according to the running time, which should typically then result into a perfect stream of sequential timestamps. It can do this on the basis of segment information or based on bytes per second given by a datarate, provided to it externally. However, this datarate is typically available within the stream itself, by means of caps (e.g. framerate, samplerate), which is extracted by this element and automagically used to perform (re)timestamping. Again, the result is a single-segment “time-perfect” stream. Since the re-sequencing is performed based on datarate, a/v synchronization might be affected if incoming timestamps are irregular (with respect to datarate). Use e.g. videorate to aid with that.
If sync-margin is non-zero when part of a video stream, then it performs synchronization w.r.t. clock (typically provided by audio src or sink). Specifically, buffers passing through will either be duplicated or dropped as necessary to ensure that the (calculated) timestamp does not deviate more than sync-margin frames. A check for this is performed either each time or every sync-interval frames (if non-zero).
The properties duplicate and drop can be read to obtain information about number of dropped frames (i.e. the number of unused input frames) and duplicated frames (i.e. the number of times an input frame was duplicated, beside being used normally).
An input stream that needs no adjustments will thus never have dropped or duplicated frames.
When the silent property is FALSE, a GObject property notification will be emitted whenever one of the "duplicate" or "drop" values changes. This can potentially cause performance degradation. Note that property notification will happen from the streaming thread, so applications should be prepared for this.
If allow-segments is FALSE, all segment updates will be discarded. Otherwise, some moderately intelligent decision will allow crucial ones to pass (e.g. time synchronization for subtitle streams).
It can be noted that the "sync" functionality is somewhat related to videorate element and should probably be merged into the latter element at some point.
|Mark Nauwelaerts <firstname.lastname@example.org>|
"allow-segments" gboolean : Read / Write
Allow (intelligent) passing of updating TIME segments (e.g. for stream time synchronization).
Default value: TRUE
"invalidate" gboolean : Read / Write
Invalidate buffer time and duration.
Default value: FALSE
"progress" guint : Read / Write
Microseconds between progress status info.
Default value: 2000000
"sync-interval" guint : Read / Write
Interval to check sync.
Default value: 25