![]() |
![]() |
![]() |
GStreamer Entrans 0.10 Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy | Properties |
"begin-count" glong : Write "begin-time" guint64 : Write "end-count" glong : Write "end-time" guint64 : Write "force-eos" gboolean : Write "framerate" gchararray : Read "handle-query" gboolean : Read / Write "precision" gboolean : Read / Write "samplerate" gint : Read "samplewidth" gint : Read "save-section" gboolean : Write "section" gint : Read "segment-mode" gboolean : Read / Write "use-count" gboolean : Read / Write
Special-purpose element that enables a "cutting" muxing pipeline. This is used for transcoding purposes where it is not desired to mux the entire original stream into a new stream, but only selected parts of it. The desired parts in such a scenario are selected depending on segment-mode property:
using regular seek-events (segment-mode or seek-mode); an initial flushing seek followed by a number of segmenting seeks and finally concluded with a normal seek. The element then drops buffers that are out of the selected segment range, to compensate for some elements not doing so (yes, there are such ...). The usual end-of-segment messages (or final EOS) allow the 'application' to pass from one segment to the next.
cut-mode: allowing only a certain range of buffers to pass where the range is specified by gst time (starting from 0). When using counts, such times are then converted to either a frame count or a sample count and compared with the corresponding count of the incoming data (using the format info supplied by the caps) (so buffer timestamps are disregarded). Alternatively, buffer timestamps can be used to decide on clipping.
In addition, audio data can optionally be clipped to sample precision when deciding based on buffer timestamps (it is always done so when clipping based on counts).
The element can also be requested to send an eos event, so that streaming can be cleanly completed, and e.g. muxers can complete EOS-actions.
This element is (likely) essentially in a muxing pipeline whenever only a part of the input is selected, even when using segments. The functionality to drop out-of-segment data is typically present in (base)sinks, so this usually happens transparently in a playing pipeline. However, in a muxing pipeline, a filesink can and should clearly have no impact on this; so it is up to the rest of pipeline to perform this dropping. Failing to do so would not only result in too much and unwanted data, but will probably even block the muxing pipeline (in a collectpads instance), due to (typically) an imbalance (in volume and timestamps) in video and audio data.
In case of a demuxer element involved in providing input, it should be separated from it by means of queue (or other thread boundary).
The sequence of events/operation is roughly as follows.
The element starts up and announces its existence by posting a message on the bus. This should be detected (synchronously) by the application using it, which should block pads to prevent data flowing through prior to setup being completed.
This setup (typically happening when all relevant pads have blocked) consists of setting the proper "mode", and providing section info in case of cut-mode. After this, streaming can be continued by (optionally) performing seek and (typically) unblocking pads. The element then performs as described above, depending on mode, and either the last normal seek will give rise to EOS, or the element generates EOS when having passed all data for the last section.
plugin |
entrans |
author |
Mark Nauwelaerts <mnauw@users.sourceforge.net> |
class |
Generic |
"begin-count"
property"begin-count" glong : Write
Begin of section in frames.
Allowed values: >= G_MAXULONG
Default value: -1
"end-count"
property"end-count" glong : Write
End of section in frames.
Allowed values: >= G_MAXULONG
Default value: -1
"framerate"
property"framerate" gchararray : Read
Framerate discovered in stream and used for cutting and stamping.
Default value: "1/1"
"handle-query"
property"handle-query" gboolean : Read / Write
Respond to position query.
Default value: FALSE
"precision"
property"precision" gboolean : Read / Write
Precision filter, slicing (audio) buffers if needed.
Default value: FALSE
"samplerate"
property"samplerate" gint : Read
Samplerate discovered in stream and used for cutting and stamping.
Allowed values: >= 0
Default value: 0
"samplewidth"
property"samplewidth" gint : Read
Width of a sample as deduced from stream and used for cutting and stamping.
Allowed values: >= 0
Default value: 0
"save-section"
property"save-section" gboolean : Write
Commit current section info for processing.
Default value: TRUE
"section"
property"section" gint : Read
Current filtered section.
Allowed values: >= G_MAXULONG
Default value: -1
"segment-mode"
property"segment-mode" gboolean : Read / Write
Control and filter flow based on segments and seeks.
Default value: TRUE
"use-count"
property"use-count" gboolean : Read / Write
Filter flow based on byte or frame count.
Default value: TRUE