mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-12 02:15:31 +00:00
Merge remote-tracking branch 'origin/master' into 0.11
Conflicts: gst-libs/gst/netbuffer/gstnetbuffer.c gst/ffmpegcolorspace/avcodec.h gst/ffmpegcolorspace/gstffmpegcodecmap.c gst/ffmpegcolorspace/imgconvert.c gst/ffmpegcolorspace/imgconvert_template.h gst/ffmpegcolorspace/mem.c gst/playback/README gst/playback/gstplaybasebin.c gst/playback/gstplaybasebin.h gst/playback/gstplaybin.c sys/v4l/v4lmjpegsrc_calls.c sys/v4l/videodev_mjpeg.h tests/check/elements/gnomevfssink.c
This commit is contained in:
commit
177525f89f
67 changed files with 118 additions and 118 deletions
|
@ -82,7 +82,7 @@ Design:
|
||||||
|
|
||||||
Whenever new samples are to be put into the ringbuffer, the position of the
|
Whenever new samples are to be put into the ringbuffer, the position of the
|
||||||
read pointer is taken. The required write position is taken and the diff
|
read pointer is taken. The required write position is taken and the diff
|
||||||
is made between the required qnd actual position. If the defference is <0,
|
is made between the required and actual position. If the difference is <0,
|
||||||
the sample is too late. If the difference is bigger than segtotal, the
|
the sample is too late. If the difference is bigger than segtotal, the
|
||||||
writing part has to wait for the play pointer to advance.
|
writing part has to wait for the play pointer to advance.
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,7 @@ fine-tune the process.
|
||||||
|
|
||||||
Get a list of elementfactories for @pad with @caps. This function is used to
|
Get a list of elementfactories for @pad with @caps. This function is used to
|
||||||
instruct decodebin2 of the elements it should try to autoplug. The default
|
instruct decodebin2 of the elements it should try to autoplug. The default
|
||||||
behaviour when this function is not overridern is to get all elements that
|
behaviour when this function is not overriden is to get all elements that
|
||||||
can handle @caps from the registry sorted by rank.
|
can handle @caps from the registry sorted by rank.
|
||||||
|
|
||||||
- 'autoplug-select' :
|
- 'autoplug-select' :
|
||||||
|
@ -142,7 +142,7 @@ Description:
|
||||||
|
|
||||||
Multiple input-output data queue
|
Multiple input-output data queue
|
||||||
|
|
||||||
The GstMultiQueue achieves the same functionnality as GstQueue, with a few
|
The GstMultiQueue achieves the same functionality as GstQueue, with a few
|
||||||
differences:
|
differences:
|
||||||
|
|
||||||
* Multiple streams handling.
|
* Multiple streams handling.
|
||||||
|
|
|
@ -16,13 +16,13 @@ A. Problems this proposal attempts to solve
|
||||||
|
|
||||||
* Duplication of pipeline code for gstreamer-based applications
|
* Duplication of pipeline code for gstreamer-based applications
|
||||||
wishing to encode and or mux streams, leading to subtle differences
|
wishing to encode and or mux streams, leading to subtle differences
|
||||||
and inconsistencies accross those applications.
|
and inconsistencies across those applications.
|
||||||
|
|
||||||
* No unified system for describing encoding targets for applications
|
* No unified system for describing encoding targets for applications
|
||||||
in a user-friendly way.
|
in a user-friendly way.
|
||||||
|
|
||||||
* No unified system for creating encoding targets for applications,
|
* No unified system for creating encoding targets for applications,
|
||||||
resulting in duplication of code accross all applications,
|
resulting in duplication of code across all applications,
|
||||||
differences and inconsistencies that come with that duplication,
|
differences and inconsistencies that come with that duplication,
|
||||||
and applications hardcoding element names and settings resulting in
|
and applications hardcoding element names and settings resulting in
|
||||||
poor portability.
|
poor portability.
|
||||||
|
|
|
@ -86,7 +86,7 @@ given an input format, channel position manipulation, dithering and
|
||||||
quantizing configuration, and output format, a Orc code generator
|
quantizing configuration, and output format, a Orc code generator
|
||||||
would create an OrcProgram, add the appropriate instructions to do
|
would create an OrcProgram, add the appropriate instructions to do
|
||||||
each step based on the configuration, and then compile the program.
|
each step based on the configuration, and then compile the program.
|
||||||
Sucessfully compiling the program would return a function pointer
|
Successfully compiling the program would return a function pointer
|
||||||
that can be called to perform the operation.
|
that can be called to perform the operation.
|
||||||
|
|
||||||
This sort of advanced usage requires structural changes to current
|
This sort of advanced usage requires structural changes to current
|
||||||
|
|
|
@ -11,7 +11,7 @@ Consider the following use case:
|
||||||
the existing file we are writing to and start writing to a new file.
|
the existing file we are writing to and start writing to a new file.
|
||||||
|
|
||||||
We want the new file to start with a keyframe so that one can start decoding
|
We want the new file to start with a keyframe so that one can start decoding
|
||||||
the file immediatly.
|
the file immediately.
|
||||||
|
|
||||||
Components:
|
Components:
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ Status:
|
||||||
|
|
||||||
Purpose:
|
Purpose:
|
||||||
|
|
||||||
Provide an standarized generic way to introduce Video Acceleration APIs in
|
Provide an standardized generic way to introduce Video Acceleration APIs in
|
||||||
already available elements instead of duplicating those into specialized ones.
|
already available elements instead of duplicating those into specialized ones.
|
||||||
|
|
||||||
Provide a mechanism for a light GstBuffer subclassing in order to be able
|
Provide a mechanism for a light GstBuffer subclassing in order to be able
|
||||||
|
@ -26,7 +26,7 @@ Proposal:
|
||||||
|
|
||||||
video/x-raw-va
|
video/x-raw-va
|
||||||
|
|
||||||
Light subclassing embeding an structure in the data field of a standard
|
Light subclassing embedding an structure in the data field of a standard
|
||||||
GstBuffer.
|
GstBuffer.
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
|
|
|
@ -800,7 +800,7 @@ gst_alsa_mixer_set_record (GstAlsaMixer * mixer,
|
||||||
snd_mixer_selem_set_capture_switch_all (alsa_track->element,
|
snd_mixer_selem_set_capture_switch_all (alsa_track->element,
|
||||||
record ? 1 : 0);
|
record ? 1 : 0);
|
||||||
|
|
||||||
/* update all tracks in same exlusive cswitch group */
|
/* update all tracks in same exclusive cswitch group */
|
||||||
if (alsa_track->alsa_flags & GST_ALSA_MIXER_TRACK_CSWITCH_EXCL) {
|
if (alsa_track->alsa_flags & GST_ALSA_MIXER_TRACK_CSWITCH_EXCL) {
|
||||||
GList *item;
|
GList *item;
|
||||||
|
|
||||||
|
|
|
@ -621,7 +621,7 @@ gst_visual_src_query (GstPad * pad, GstObject * parent, GstQuery * query)
|
||||||
GST_TIME_FORMAT " max %" GST_TIME_FORMAT,
|
GST_TIME_FORMAT " max %" GST_TIME_FORMAT,
|
||||||
GST_TIME_ARGS (min_latency), GST_TIME_ARGS (max_latency));
|
GST_TIME_ARGS (min_latency), GST_TIME_ARGS (max_latency));
|
||||||
|
|
||||||
/* the max samples we must buffer buffer */
|
/* the max samples we must buffer */
|
||||||
max_samples = MAX (VISUAL_SAMPLES, visual->spf);
|
max_samples = MAX (VISUAL_SAMPLES, visual->spf);
|
||||||
our_latency =
|
our_latency =
|
||||||
gst_util_uint64_scale_int (max_samples, GST_SECOND,
|
gst_util_uint64_scale_int (max_samples, GST_SECOND,
|
||||||
|
|
|
@ -99,7 +99,7 @@ with great efficiency.
|
||||||
1) the streaming mode.
|
1) the streaming mode.
|
||||||
|
|
||||||
In this mode, the ogg demuxer receives buffers in the _chain() function which
|
In this mode, the ogg demuxer receives buffers in the _chain() function which
|
||||||
are then simply submited to the ogg sync layer. Pages are then processed when
|
are then simply submitted to the ogg sync layer. Pages are then processed when
|
||||||
the sync layer detects them, pads are created for new chains and packets are
|
the sync layer detects them, pads are created for new chains and packets are
|
||||||
sent to the peer elements of the pads.
|
sent to the peer elements of the pads.
|
||||||
|
|
||||||
|
|
|
@ -549,7 +549,7 @@ gst_ogg_demux_chain_peer (GstOggPad * pad, ogg_packet * packet,
|
||||||
pad->current_granule);
|
pad->current_granule);
|
||||||
} else if (ogg->segment.rate > 0.0 && pad->current_granule != -1) {
|
} else if (ogg->segment.rate > 0.0 && pad->current_granule != -1) {
|
||||||
pad->current_granule += duration;
|
pad->current_granule += duration;
|
||||||
GST_DEBUG_OBJECT (ogg, "interpollating granule %" G_GUINT64_FORMAT,
|
GST_DEBUG_OBJECT (ogg, "interpolating granule %" G_GUINT64_FORMAT,
|
||||||
pad->current_granule);
|
pad->current_granule);
|
||||||
}
|
}
|
||||||
if (ogg->segment.rate < 0.0 && packet->granulepos == -1) {
|
if (ogg->segment.rate < 0.0 && packet->granulepos == -1) {
|
||||||
|
|
|
@ -1509,7 +1509,7 @@ theora_dec_flush_decode (GstTheoraDec * dec)
|
||||||
while (dec->queued) {
|
while (dec->queued) {
|
||||||
GstBuffer *buf = GST_BUFFER_CAST (dec->queued->data);
|
GstBuffer *buf = GST_BUFFER_CAST (dec->queued->data);
|
||||||
|
|
||||||
/* iterate ouput queue an push downstream */
|
/* iterate output queue an push downstream */
|
||||||
res = gst_pad_push (dec->srcpad, buf);
|
res = gst_pad_push (dec->srcpad, buf);
|
||||||
|
|
||||||
dec->queued = g_list_delete_link (dec->queued, dec->queued);
|
dec->queued = g_list_delete_link (dec->queued, dec->queued);
|
||||||
|
|
|
@ -76,7 +76,7 @@ struct _GstTheoraDec
|
||||||
GstBufferPool *pool;
|
GstBufferPool *pool;
|
||||||
gboolean use_cropping;
|
gboolean use_cropping;
|
||||||
|
|
||||||
/* telemetry debuging options */
|
/* telemetry debugging options */
|
||||||
gint telemetry_mv;
|
gint telemetry_mv;
|
||||||
gint telemetry_mbmode;
|
gint telemetry_mbmode;
|
||||||
gint telemetry_qi;
|
gint telemetry_qi;
|
||||||
|
|
|
@ -328,7 +328,7 @@ theora_parse_set_streamheader (GstTheoraParse * parse)
|
||||||
parse->shift = parse->info.keyframe_granule_shift;
|
parse->shift = parse->info.keyframe_granule_shift;
|
||||||
|
|
||||||
/* With libtheora-1.0beta1 the granulepos scheme was changed:
|
/* With libtheora-1.0beta1 the granulepos scheme was changed:
|
||||||
* where earlier the granulepos refered to the index/beginning
|
* where earlier the granulepos referred to the index/beginning
|
||||||
* of a frame, it now refers to the end, which matches the use
|
* of a frame, it now refers to the end, which matches the use
|
||||||
* in vorbis/speex. We check the bitstream version from the header so
|
* in vorbis/speex. We check the bitstream version from the header so
|
||||||
* we know which way to interpret the incoming granuepos
|
* we know which way to interpret the incoming granuepos
|
||||||
|
|
|
@ -534,7 +534,7 @@ vorbis_handle_data_packet (GstVorbisDec * vd, ogg_packet * packet,
|
||||||
/* normal data packet */
|
/* normal data packet */
|
||||||
/* FIXME, we can skip decoding if the packet is outside of the
|
/* FIXME, we can skip decoding if the packet is outside of the
|
||||||
* segment, this is however not very trivial as we need a previous
|
* segment, this is however not very trivial as we need a previous
|
||||||
* packet to decode the current one so we must be carefull not to
|
* packet to decode the current one so we must be careful not to
|
||||||
* throw away too much. For now we decode everything and clip right
|
* throw away too much. For now we decode everything and clip right
|
||||||
* before pushing data. */
|
* before pushing data. */
|
||||||
|
|
||||||
|
|
|
@ -214,9 +214,9 @@ gst_app_sink_class_init (GstAppSinkClass * klass)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GstAppSink::eos:
|
* GstAppSink::eos:
|
||||||
* @appsink: the appsink element that emited the signal
|
* @appsink: the appsink element that emitted the signal
|
||||||
*
|
*
|
||||||
* Signal that the end-of-stream has been reached. This signal is emited from
|
* Signal that the end-of-stream has been reached. This signal is emitted from
|
||||||
* the steaming thread.
|
* the steaming thread.
|
||||||
*/
|
*/
|
||||||
gst_app_sink_signals[SIGNAL_EOS] =
|
gst_app_sink_signals[SIGNAL_EOS] =
|
||||||
|
@ -225,18 +225,18 @@ gst_app_sink_class_init (GstAppSinkClass * klass)
|
||||||
NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0, G_TYPE_NONE);
|
NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0, G_TYPE_NONE);
|
||||||
/**
|
/**
|
||||||
* GstAppSink::new-preroll:
|
* GstAppSink::new-preroll:
|
||||||
* @appsink: the appsink element that emited the signal
|
* @appsink: the appsink element that emitted the signal
|
||||||
*
|
*
|
||||||
* Signal that a new preroll sample is available.
|
* Signal that a new preroll sample is available.
|
||||||
*
|
*
|
||||||
* This signal is emited from the steaming thread and only when the
|
* This signal is emitted from the steaming thread and only when the
|
||||||
* "emit-signals" property is %TRUE.
|
* "emit-signals" property is %TRUE.
|
||||||
*
|
*
|
||||||
* The new preroll sample can be retrieved with the "pull-preroll" action
|
* The new preroll sample can be retrieved with the "pull-preroll" action
|
||||||
* signal or gst_app_sink_pull_preroll() either from this signal callback
|
* signal or gst_app_sink_pull_preroll() either from this signal callback
|
||||||
* or from any other thread.
|
* or from any other thread.
|
||||||
*
|
*
|
||||||
* Note that this signal is only emited when the "emit-signals" property is
|
* Note that this signal is only emitted when the "emit-signals" property is
|
||||||
* set to %TRUE, which it is not by default for performance reasons.
|
* set to %TRUE, which it is not by default for performance reasons.
|
||||||
*/
|
*/
|
||||||
gst_app_sink_signals[SIGNAL_NEW_PREROLL] =
|
gst_app_sink_signals[SIGNAL_NEW_PREROLL] =
|
||||||
|
@ -249,14 +249,14 @@ gst_app_sink_class_init (GstAppSinkClass * klass)
|
||||||
*
|
*
|
||||||
* Signal that a new sample is available.
|
* Signal that a new sample is available.
|
||||||
*
|
*
|
||||||
* This signal is emited from the steaming thread and only when the
|
* This signal is emitted from the steaming thread and only when the
|
||||||
* "emit-signals" property is %TRUE.
|
* "emit-signals" property is %TRUE.
|
||||||
*
|
*
|
||||||
* The new sample can be retrieved with the "pull-sample" action
|
* The new sample can be retrieved with the "pull-sample" action
|
||||||
* signal or gst_app_sink_pull_sample() either from this signal callback
|
* signal or gst_app_sink_pull_sample() either from this signal callback
|
||||||
* or from any other thread.
|
* or from any other thread.
|
||||||
*
|
*
|
||||||
* Note that this signal is only emited when the "emit-signals" property is
|
* Note that this signal is only emitted when the "emit-signals" property is
|
||||||
* set to %TRUE, which it is not by default for performance reasons.
|
* set to %TRUE, which it is not by default for performance reasons.
|
||||||
*/
|
*/
|
||||||
gst_app_sink_signals[SIGNAL_NEW_SAMPLE] =
|
gst_app_sink_signals[SIGNAL_NEW_SAMPLE] =
|
||||||
|
@ -1211,7 +1211,7 @@ not_started:
|
||||||
* This is an alternative to using the signals, it has lower overhead and is thus
|
* This is an alternative to using the signals, it has lower overhead and is thus
|
||||||
* less expensive, but also less flexible.
|
* less expensive, but also less flexible.
|
||||||
*
|
*
|
||||||
* If callbacks are installed, no signals will be emited for performance
|
* If callbacks are installed, no signals will be emitted for performance
|
||||||
* reasons.
|
* reasons.
|
||||||
*
|
*
|
||||||
* Since: 0.10.23
|
* Since: 0.10.23
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
* byte buffers.
|
* byte buffers.
|
||||||
*
|
*
|
||||||
* The main way of handing data to the appsrc element is by calling the
|
* The main way of handing data to the appsrc element is by calling the
|
||||||
* gst_app_src_push_buffer() method or by emiting the push-buffer action signal.
|
* gst_app_src_push_buffer() method or by emitting the push-buffer action signal.
|
||||||
* This will put the buffer onto a queue from which appsrc will read from in its
|
* This will put the buffer onto a queue from which appsrc will read from in its
|
||||||
* streaming thread. It is important to note that data transport will not happen
|
* streaming thread. It is important to note that data transport will not happen
|
||||||
* from the thread that performed the push-buffer call.
|
* from the thread that performed the push-buffer call.
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
* block the push-buffer method until free data becomes available again.
|
* block the push-buffer method until free data becomes available again.
|
||||||
*
|
*
|
||||||
* When the internal queue is running out of data, the "need-data" signal is
|
* When the internal queue is running out of data, the "need-data" signal is
|
||||||
* emited, which signals the application that it should start pushing more data
|
* emitted, which signals the application that it should start pushing more data
|
||||||
* into appsrc.
|
* into appsrc.
|
||||||
*
|
*
|
||||||
* In addition to the "need-data" and "enough-data" signals, appsrc can emit the
|
* In addition to the "need-data" and "enough-data" signals, appsrc can emit the
|
||||||
|
@ -62,7 +62,7 @@
|
||||||
* These signals allow the application to operate the appsrc in two different
|
* These signals allow the application to operate the appsrc in two different
|
||||||
* ways:
|
* ways:
|
||||||
*
|
*
|
||||||
* The push model, in which the application repeadedly calls the push-buffer method
|
* The push model, in which the application repeatedly calls the push-buffer method
|
||||||
* with a new buffer. Optionally, the queue size in the appsrc can be controlled
|
* with a new buffer. Optionally, the queue size in the appsrc can be controlled
|
||||||
* with the enough-data and need-data signals by respectively stopping/starting
|
* with the enough-data and need-data signals by respectively stopping/starting
|
||||||
* the push-buffer calls. This is a typical mode of operation for the
|
* the push-buffer calls. This is a typical mode of operation for the
|
||||||
|
@ -310,7 +310,7 @@ gst_app_src_class_init (GstAppSrcClass * klass)
|
||||||
/**
|
/**
|
||||||
* GstAppSrc::block
|
* GstAppSrc::block
|
||||||
*
|
*
|
||||||
* When max-bytes are queued and after the enough-data signal has been emited,
|
* When max-bytes are queued and after the enough-data signal has been emitted,
|
||||||
* block any further push-buffer calls until the amount of queued bytes drops
|
* block any further push-buffer calls until the amount of queued bytes drops
|
||||||
* below the max-bytes limit.
|
* below the max-bytes limit.
|
||||||
*/
|
*/
|
||||||
|
@ -383,7 +383,7 @@ gst_app_src_class_init (GstAppSrcClass * klass)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GstAppSrc::need-data:
|
* GstAppSrc::need-data:
|
||||||
* @appsrc: the appsrc element that emited the signal
|
* @appsrc: the appsrc element that emitted the signal
|
||||||
* @length: the amount of bytes needed.
|
* @length: the amount of bytes needed.
|
||||||
*
|
*
|
||||||
* Signal that the source needs more data. In the callback or from another
|
* Signal that the source needs more data. In the callback or from another
|
||||||
|
@ -402,11 +402,11 @@ gst_app_src_class_init (GstAppSrcClass * klass)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GstAppSrc::enough-data:
|
* GstAppSrc::enough-data:
|
||||||
* @appsrc: the appsrc element that emited the signal
|
* @appsrc: the appsrc element that emitted the signal
|
||||||
*
|
*
|
||||||
* Signal that the source has enough data. It is recommended that the
|
* Signal that the source has enough data. It is recommended that the
|
||||||
* application stops calling push-buffer until the need-data signal is
|
* application stops calling push-buffer until the need-data signal is
|
||||||
* emited again to avoid excessive buffer queueing.
|
* emitted again to avoid excessive buffer queueing.
|
||||||
*/
|
*/
|
||||||
gst_app_src_signals[SIGNAL_ENOUGH_DATA] =
|
gst_app_src_signals[SIGNAL_ENOUGH_DATA] =
|
||||||
g_signal_new ("enough-data", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
|
g_signal_new ("enough-data", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
|
||||||
|
@ -415,7 +415,7 @@ gst_app_src_class_init (GstAppSrcClass * klass)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GstAppSrc::seek-data:
|
* GstAppSrc::seek-data:
|
||||||
* @appsrc: the appsrc element that emited the signal
|
* @appsrc: the appsrc element that emitted the signal
|
||||||
* @offset: the offset to seek to
|
* @offset: the offset to seek to
|
||||||
*
|
*
|
||||||
* Seek to the given offset. The next push-buffer should produce buffers from
|
* Seek to the given offset. The next push-buffer should produce buffers from
|
||||||
|
@ -1008,7 +1008,7 @@ gst_app_src_create (GstBaseSrc * bsrc, guint64 offset, guint size,
|
||||||
* random-access mode (where a buffer is normally pushed in the above
|
* random-access mode (where a buffer is normally pushed in the above
|
||||||
* signal) we can still be empty because the pushed buffer got flushed or
|
* signal) we can still be empty because the pushed buffer got flushed or
|
||||||
* when the application pushes the requested buffer later, we support both
|
* when the application pushes the requested buffer later, we support both
|
||||||
* possiblities. */
|
* possibilities. */
|
||||||
if (!g_queue_is_empty (priv->queue))
|
if (!g_queue_is_empty (priv->queue))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -1381,7 +1381,7 @@ gst_app_src_set_emit_signals (GstAppSrc * appsrc, gboolean emit)
|
||||||
*
|
*
|
||||||
* Check if appsrc will emit the "new-preroll" and "new-buffer" signals.
|
* Check if appsrc will emit the "new-preroll" and "new-buffer" signals.
|
||||||
*
|
*
|
||||||
* Returns: %TRUE if @appsrc is emiting the "new-preroll" and "new-buffer"
|
* Returns: %TRUE if @appsrc is emitting the "new-preroll" and "new-buffer"
|
||||||
* signals.
|
* signals.
|
||||||
*
|
*
|
||||||
* Since: 0.10.23
|
* Since: 0.10.23
|
||||||
|
@ -1578,7 +1578,7 @@ flushing:
|
||||||
* This is an alternative to using the signals, it has lower overhead and is thus
|
* This is an alternative to using the signals, it has lower overhead and is thus
|
||||||
* less expensive, but also less flexible.
|
* less expensive, but also less flexible.
|
||||||
*
|
*
|
||||||
* If callbacks are installed, no signals will be emited for performance
|
* If callbacks are installed, no signals will be emitted for performance
|
||||||
* reasons.
|
* reasons.
|
||||||
*
|
*
|
||||||
* Since: 0.10.23
|
* Since: 0.10.23
|
||||||
|
|
|
@ -50,7 +50,7 @@ typedef struct _GstAppSrcPrivate GstAppSrcPrivate;
|
||||||
* and when it is set to -1, any number of bytes can be pushed into @appsrc.
|
* and when it is set to -1, any number of bytes can be pushed into @appsrc.
|
||||||
* @enough_data: Called when appsrc has enough data. It is recommended that the
|
* @enough_data: Called when appsrc has enough data. It is recommended that the
|
||||||
* application stops calling push-buffer until the need_data callback is
|
* application stops calling push-buffer until the need_data callback is
|
||||||
* emited again to avoid excessive buffer queueing.
|
* emitted again to avoid excessive buffer queueing.
|
||||||
* @seek_data: Called when a seek should be performed to the offset.
|
* @seek_data: Called when a seek should be performed to the offset.
|
||||||
* The next push-buffer should produce buffers from the new @offset.
|
* The next push-buffer should produce buffers from the new @offset.
|
||||||
* This callback is only called for seekable stream types.
|
* This callback is only called for seekable stream types.
|
||||||
|
|
|
@ -620,7 +620,7 @@ done:
|
||||||
* @bpf: size of one audio frame in bytes. This is the size of one sample
|
* @bpf: size of one audio frame in bytes. This is the size of one sample
|
||||||
* * channels.
|
* * channels.
|
||||||
*
|
*
|
||||||
* Clip the the buffer to the given %GstSegment.
|
* Clip the buffer to the given %GstSegment.
|
||||||
*
|
*
|
||||||
* After calling this function the caller does not own a reference to
|
* After calling this function the caller does not own a reference to
|
||||||
* @buffer anymore.
|
* @buffer anymore.
|
||||||
|
|
|
@ -2219,7 +2219,7 @@ gst_audio_base_sink_change_state (GstElement * element,
|
||||||
/* ERRORS */
|
/* ERRORS */
|
||||||
open_failed:
|
open_failed:
|
||||||
{
|
{
|
||||||
/* subclass must post a meaningfull error message */
|
/* subclass must post a meaningful error message */
|
||||||
GST_DEBUG_OBJECT (sink, "open failed");
|
GST_DEBUG_OBJECT (sink, "open failed");
|
||||||
return GST_STATE_CHANGE_FAILURE;
|
return GST_STATE_CHANGE_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -897,7 +897,7 @@ gst_audio_base_src_create (GstBaseSrc * bsrc, guint64 offset, guint length,
|
||||||
running_time_sample =
|
running_time_sample =
|
||||||
gst_util_uint64_scale_int (running_time, rate, GST_SECOND);
|
gst_util_uint64_scale_int (running_time, rate, GST_SECOND);
|
||||||
|
|
||||||
/* the segmentnr corrensponding to running_time, round down */
|
/* the segmentnr corresponding to running_time, round down */
|
||||||
running_time_segment = running_time_sample / sps;
|
running_time_segment = running_time_sample / sps;
|
||||||
|
|
||||||
/* the segment currently read from the ringbuffer */
|
/* the segment currently read from the ringbuffer */
|
||||||
|
@ -923,7 +923,7 @@ gst_audio_base_src_create (GstBaseSrc * bsrc, guint64 offset, guint length,
|
||||||
*
|
*
|
||||||
* 1. We are more than the length of the ringbuffer behind.
|
* 1. We are more than the length of the ringbuffer behind.
|
||||||
* The length of the ringbuffer then gets to dictate
|
* The length of the ringbuffer then gets to dictate
|
||||||
* the threshold for what is concidered "too late"
|
* the threshold for what is considered "too late"
|
||||||
*
|
*
|
||||||
* 2. If this is our first buffer.
|
* 2. If this is our first buffer.
|
||||||
* We know that we should catch up to running_time
|
* We know that we should catch up to running_time
|
||||||
|
@ -1157,7 +1157,7 @@ gst_audio_base_src_change_state (GstElement * element,
|
||||||
/* ERRORS */
|
/* ERRORS */
|
||||||
open_failed:
|
open_failed:
|
||||||
{
|
{
|
||||||
/* subclass must post a meaningfull error message */
|
/* subclass must post a meaningful error message */
|
||||||
GST_DEBUG_OBJECT (src, "open failed");
|
GST_DEBUG_OBJECT (src, "open failed");
|
||||||
return GST_STATE_CHANGE_FAILURE;
|
return GST_STATE_CHANGE_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2007,7 +2007,7 @@ gst_audio_encoder_set_perfect_timestamp (GstAudioEncoder * enc,
|
||||||
*
|
*
|
||||||
* Queries encoder perfect timestamp behaviour.
|
* Queries encoder perfect timestamp behaviour.
|
||||||
*
|
*
|
||||||
* Returns: TRUE if pefect timestamp setting enabled.
|
* Returns: TRUE if perfect timestamp setting enabled.
|
||||||
*
|
*
|
||||||
* MT safe.
|
* MT safe.
|
||||||
*
|
*
|
||||||
|
|
|
@ -1501,7 +1501,7 @@ not_started:
|
||||||
*
|
*
|
||||||
* Commit @in_samples samples pointed to by @data to the ringbuffer @buf.
|
* Commit @in_samples samples pointed to by @data to the ringbuffer @buf.
|
||||||
*
|
*
|
||||||
* @in_samples and @out_samples define the rate conversion to perform on the the
|
* @in_samples and @out_samples define the rate conversion to perform on the
|
||||||
* samples in @data. For negative rates, @out_samples must be negative and
|
* samples in @data. For negative rates, @out_samples must be negative and
|
||||||
* @in_samples positive.
|
* @in_samples positive.
|
||||||
*
|
*
|
||||||
|
|
|
@ -119,7 +119,7 @@ void gst_audio_set_caps_channel_positions_list
|
||||||
gint num_positions);
|
gint num_positions);
|
||||||
|
|
||||||
/* Custom fixate function. Elements that implement some sort of
|
/* Custom fixate function. Elements that implement some sort of
|
||||||
* channel conversion algorhithm should use this function for
|
* channel conversion algorithm should use this function for
|
||||||
* fixating on GstAudioChannelPosition properties. It will take
|
* fixating on GstAudioChannelPosition properties. It will take
|
||||||
* care of equal channel positioning (left/right). Caller g_free()s
|
* care of equal channel positioning (left/right). Caller g_free()s
|
||||||
* the return value. The input properties may be (and are supposed
|
* the return value. The input properties may be (and are supposed
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
*
|
*
|
||||||
* #GstFFTF32 provides a FFT implementation and related functions for
|
* #GstFFTF32 provides a FFT implementation and related functions for
|
||||||
* 32 bit float samples. To use this call gst_fft_f32_new() for
|
* 32 bit float samples. To use this call gst_fft_f32_new() for
|
||||||
* allocating a #GstFFTF32 instance with the appropiate parameters and
|
* allocating a #GstFFTF32 instance with the appropriate parameters and
|
||||||
* then call gst_fft_f32_fft() or gst_fft_f32_inverse_fft() to perform the
|
* then call gst_fft_f32_fft() or gst_fft_f32_inverse_fft() to perform the
|
||||||
* FFT or inverse FFT on a buffer of samples.
|
* FFT or inverse FFT on a buffer of samples.
|
||||||
*
|
*
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
*
|
*
|
||||||
* #GstFFTF64 provides a FFT implementation and related functions for
|
* #GstFFTF64 provides a FFT implementation and related functions for
|
||||||
* 64 bit float samples. To use this call gst_fft_f64_new() for
|
* 64 bit float samples. To use this call gst_fft_f64_new() for
|
||||||
* allocating a #GstFFTF64 instance with the appropiate parameters and
|
* allocating a #GstFFTF64 instance with the appropriate parameters and
|
||||||
* then call gst_fft_f64_fft() or gst_fft_f64_inverse_fft() to perform the
|
* then call gst_fft_f64_fft() or gst_fft_f64_inverse_fft() to perform the
|
||||||
* FFT or inverse FFT on a buffer of samples.
|
* FFT or inverse FFT on a buffer of samples.
|
||||||
*
|
*
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
*
|
*
|
||||||
* #GstFFTS16 provides a FFT implementation and related functions for
|
* #GstFFTS16 provides a FFT implementation and related functions for
|
||||||
* signed 16 bit integer samples. To use this call gst_fft_s16_new() for
|
* signed 16 bit integer samples. To use this call gst_fft_s16_new() for
|
||||||
* allocating a #GstFFTS16 instance with the appropiate parameters and
|
* allocating a #GstFFTS16 instance with the appropriate parameters and
|
||||||
* then call gst_fft_s16_fft() or gst_fft_s16_inverse_fft() to perform the
|
* then call gst_fft_s16_fft() or gst_fft_s16_inverse_fft() to perform the
|
||||||
* FFT or inverse FFT on a buffer of samples.
|
* FFT or inverse FFT on a buffer of samples.
|
||||||
*
|
*
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
*
|
*
|
||||||
* #GstFFTS32 provides a FFT implementation and related functions for
|
* #GstFFTS32 provides a FFT implementation and related functions for
|
||||||
* signed 32 bit integer samples. To use this call gst_fft_s32_new() for
|
* signed 32 bit integer samples. To use this call gst_fft_s32_new() for
|
||||||
* allocating a #GstFFTS32 instance with the appropiate parameters and
|
* allocating a #GstFFTS32 instance with the appropriate parameters and
|
||||||
* then call gst_fft_s32_fft() or gst_fft_s32_inverse_fft() to perform the
|
* then call gst_fft_s32_fft() or gst_fft_s32_inverse_fft() to perform the
|
||||||
* FFT or inverse FFT on a buffer of samples.
|
* FFT or inverse FFT on a buffer of samples.
|
||||||
*
|
*
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
* mouse moving over a clickable region, or the set of available angles changing.
|
* mouse moving over a clickable region, or the set of available angles changing.
|
||||||
* </para><para>
|
* </para><para>
|
||||||
* The GstNavigation message functions provide functions for creating and parsing
|
* The GstNavigation message functions provide functions for creating and parsing
|
||||||
* custom bus messages for signalling GstNavigation changes.
|
* custom bus messages for signaling GstNavigation changes.
|
||||||
* </para>
|
* </para>
|
||||||
* </listitem>
|
* </listitem>
|
||||||
* </itemizedlist>
|
* </itemizedlist>
|
||||||
|
|
|
@ -155,7 +155,7 @@ static const FormatInfo formats[] = {
|
||||||
{"video/sp5x", "Sunplus JPEG 5.x", 0},
|
{"video/sp5x", "Sunplus JPEG 5.x", 0},
|
||||||
{"video/vivo", "Vivo", 0},
|
{"video/vivo", "Vivo", 0},
|
||||||
{"video/x-3ivx", "3ivx", 0},
|
{"video/x-3ivx", "3ivx", 0},
|
||||||
{"video/x-4xm", "4X Techologies Video", 0},
|
{"video/x-4xm", "4X Technologies Video", 0},
|
||||||
{"video/x-apple-video", "Apple video", 0},
|
{"video/x-apple-video", "Apple video", 0},
|
||||||
{"video/x-aasc", "Autodesk Animator", 0},
|
{"video/x-aasc", "Autodesk Animator", 0},
|
||||||
{"video/x-camtasia", "TechSmith Camtasia", 0},
|
{"video/x-camtasia", "TechSmith Camtasia", 0},
|
||||||
|
|
|
@ -538,7 +538,7 @@ gst_encoding_video_profile_set_pass (GstEncodingVideoProfile * prof, guint pass)
|
||||||
* @prof: a #GstEncodingVideoProfile
|
* @prof: a #GstEncodingVideoProfile
|
||||||
* @variableframerate: a boolean
|
* @variableframerate: a boolean
|
||||||
*
|
*
|
||||||
* If set to %TRUE, then the incoming streamm will be allowed to have non-constant
|
* If set to %TRUE, then the incoming stream will be allowed to have non-constant
|
||||||
* framerate. If set to %FALSE (default value), then the incoming stream will
|
* framerate. If set to %FALSE (default value), then the incoming stream will
|
||||||
* be normalized by dropping/duplicating frames in order to produce a
|
* be normalized by dropping/duplicating frames in order to produce a
|
||||||
* constance framerate.
|
* constance framerate.
|
||||||
|
|
|
@ -36,7 +36,7 @@ G_BEGIN_DECLS
|
||||||
* GST_ENCODING_CATEGORY_DEVICE:
|
* GST_ENCODING_CATEGORY_DEVICE:
|
||||||
*
|
*
|
||||||
* #GstEncodingTarget category for device-specific targets.
|
* #GstEncodingTarget category for device-specific targets.
|
||||||
* The name of the target will usually be the contructor and model of the device,
|
* The name of the target will usually be the constructor and model of the device,
|
||||||
* and that target will contain #GstEncodingProfiles suitable for that device.
|
* and that target will contain #GstEncodingProfiles suitable for that device.
|
||||||
*/
|
*/
|
||||||
#define GST_ENCODING_CATEGORY_DEVICE "device"
|
#define GST_ENCODING_CATEGORY_DEVICE "device"
|
||||||
|
|
|
@ -1023,7 +1023,7 @@ DISCOVERER_INFO_ACCESSOR_CODE (duration, GstClockTime, GST_CLOCK_TIME_NONE);
|
||||||
* gst_discoverer_info_get_seekable:
|
* gst_discoverer_info_get_seekable:
|
||||||
* @info: a #GstDiscovererInfo
|
* @info: a #GstDiscovererInfo
|
||||||
*
|
*
|
||||||
* Returns: the wheter the URI is seekable.
|
* Returns: the whether the URI is seekable.
|
||||||
*
|
*
|
||||||
* Since: 0.10.32
|
* Since: 0.10.32
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1469,7 +1469,7 @@ gst_discoverer_stop (GstDiscoverer * discoverer)
|
||||||
* A copy of @uri will be made internally, so the caller can safely g_free()
|
* A copy of @uri will be made internally, so the caller can safely g_free()
|
||||||
* afterwards.
|
* afterwards.
|
||||||
*
|
*
|
||||||
* Returns: %TRUE if the @uri was succesfully appended to the list of pending
|
* Returns: %TRUE if the @uri was successfully appended to the list of pending
|
||||||
* uris, else %FALSE
|
* uris, else %FALSE
|
||||||
*
|
*
|
||||||
* Since: 0.10.31
|
* Since: 0.10.31
|
||||||
|
|
|
@ -634,7 +634,7 @@ gst_rtcp_packet_get_length (GstRTCPPacket * packet)
|
||||||
* @ntptime: result NTP time
|
* @ntptime: result NTP time
|
||||||
* @rtptime: result RTP time
|
* @rtptime: result RTP time
|
||||||
* @packet_count: result packet count
|
* @packet_count: result packet count
|
||||||
* @octet_count: result octect count
|
* @octet_count: result octet count
|
||||||
*
|
*
|
||||||
* Parse the SR sender info and store the values.
|
* Parse the SR sender info and store the values.
|
||||||
*/
|
*/
|
||||||
|
@ -675,7 +675,7 @@ gst_rtcp_packet_sr_get_sender_info (GstRTCPPacket * packet, guint32 * ssrc,
|
||||||
* @ntptime: the NTP time
|
* @ntptime: the NTP time
|
||||||
* @rtptime: the RTP time
|
* @rtptime: the RTP time
|
||||||
* @packet_count: the packet count
|
* @packet_count: the packet count
|
||||||
* @octet_count: the octect count
|
* @octet_count: the octet count
|
||||||
*
|
*
|
||||||
* Set the given values in the SR packet @packet.
|
* Set the given values in the SR packet @packet.
|
||||||
*/
|
*/
|
||||||
|
@ -1158,7 +1158,7 @@ gst_rtcp_packet_sdes_next_entry (GstRTCPPacket * packet)
|
||||||
*
|
*
|
||||||
* When @type refers to a text item, @data will point to a UTF8 string. Note
|
* When @type refers to a text item, @data will point to a UTF8 string. Note
|
||||||
* that this UTF8 string is NOT null-terminated. Use
|
* that this UTF8 string is NOT null-terminated. Use
|
||||||
* gst_rtcp_packet_sdes_copy_entry() to get a null-termined copy of the entry.
|
* gst_rtcp_packet_sdes_copy_entry() to get a null-terminated copy of the entry.
|
||||||
*
|
*
|
||||||
* Returns: %TRUE if there was valid data.
|
* Returns: %TRUE if there was valid data.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -848,7 +848,7 @@ gst_rtp_base_audio_payload_handle_buffer (GstRTPBasePayload *
|
||||||
GstClockTime diff;
|
GstClockTime diff;
|
||||||
guint64 bytes;
|
guint64 bytes;
|
||||||
/* we're only going to apply a positive gap, otherwise we let the marker
|
/* we're only going to apply a positive gap, otherwise we let the marker
|
||||||
* bit do its thing. simply convert to bytes and add the the current
|
* bit do its thing. simply convert to bytes and add the current
|
||||||
* offset */
|
* offset */
|
||||||
diff = timestamp - priv->last_timestamp;
|
diff = timestamp - priv->last_timestamp;
|
||||||
bytes = priv->time_to_bytes (payload, diff);
|
bytes = priv->time_to_bytes (payload, diff);
|
||||||
|
|
|
@ -323,7 +323,7 @@ validate_data (guint8 * data, guint len, guint8 * payload, guint payload_len)
|
||||||
guint8 *extpos;
|
guint8 *extpos;
|
||||||
guint16 extlen;
|
guint16 extlen;
|
||||||
|
|
||||||
/* this points to the extenstion bits and header length */
|
/* this points to the extension bits and header length */
|
||||||
extpos = &data[header_len];
|
extpos = &data[header_len];
|
||||||
|
|
||||||
/* skip the header and check that we have enough space */
|
/* skip the header and check that we have enough space */
|
||||||
|
|
|
@ -1906,7 +1906,7 @@ build_next (GstRTSPBuilder * builder, GstRTSPMessage * message,
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
/* we have the complete body now, store in the message adjusting the
|
/* we have the complete body now, store in the message adjusting the
|
||||||
* length to include the traling '\0' */
|
* length to include the trailing '\0' */
|
||||||
gst_rtsp_message_take_body (message,
|
gst_rtsp_message_take_body (message,
|
||||||
(guint8 *) builder->body_data, builder->body_len + 1);
|
(guint8 *) builder->body_data, builder->body_len + 1);
|
||||||
builder->body_data = NULL;
|
builder->body_data = NULL;
|
||||||
|
|
|
@ -263,7 +263,7 @@ gst_rtsp_range_to_string (const GstRTSPTimeRange * range)
|
||||||
* gst_rtsp_range_free:
|
* gst_rtsp_range_free:
|
||||||
* @range: a #GstRTSPTimeRange
|
* @range: a #GstRTSPTimeRange
|
||||||
*
|
*
|
||||||
* Free the memory alocated by @range.
|
* Free the memory allocated by @range.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
gst_rtsp_range_free (GstRTSPTimeRange * range)
|
gst_rtsp_range_free (GstRTSPTimeRange * range)
|
||||||
|
|
|
@ -1549,7 +1549,7 @@ write_exif_ifd (const GstTagList * taglist, gboolean byte_order,
|
||||||
else
|
else
|
||||||
gst_byte_writer_put_uint16_be (&writer.tagwriter, writer.tags_total);
|
gst_byte_writer_put_uint16_be (&writer.tagwriter, writer.tags_total);
|
||||||
|
|
||||||
GST_DEBUG ("Number of tags rewriten to %d", writer.tags_total);
|
GST_DEBUG ("Number of tags rewritten to %d", writer.tags_total);
|
||||||
|
|
||||||
/* now that we know the tag headers size, we can add the offsets */
|
/* now that we know the tag headers size, we can add the offsets */
|
||||||
gst_exif_tag_rewrite_offsets (&writer.tagwriter, writer.byte_order,
|
gst_exif_tag_rewrite_offsets (&writer.tagwriter, writer.byte_order,
|
||||||
|
@ -2057,7 +2057,7 @@ deserialize_geo_coordinate (GstExifReader * exif_reader,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (exiftag->exif_tag != next_tagdata.tag) {
|
if (exiftag->exif_tag != next_tagdata.tag) {
|
||||||
GST_WARNING ("This is not a geo cordinate tag");
|
GST_WARNING ("This is not a geo coordinate tag");
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -647,7 +647,7 @@ gst_tag_to_metadata_block_picture (const gchar * tag,
|
||||||
* Creates a new tag list that contains the information parsed out of a
|
* Creates a new tag list that contains the information parsed out of a
|
||||||
* vorbiscomment packet.
|
* vorbiscomment packet.
|
||||||
*
|
*
|
||||||
* Returns: A #GList of newly-allowcated key=value strings. Free with
|
* Returns: A #GList of newly-allocated key=value strings. Free with
|
||||||
* g_list_foreach (list, (GFunc) g_free, NULL) plus g_list_free (list)
|
* g_list_foreach (list, (GFunc) g_free, NULL) plus g_list_free (list)
|
||||||
*/
|
*/
|
||||||
GList *
|
GList *
|
||||||
|
|
|
@ -1411,7 +1411,7 @@ gst_tag_list_from_xmp_buffer (GstBuffer * buffer)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
XmpTag *xmp_tag = NULL;
|
XmpTag *xmp_tag = NULL;
|
||||||
/* FIXME: eventualy rewrite ns
|
/* FIXME: eventually rewrite ns
|
||||||
* find ':'
|
* find ':'
|
||||||
* check if ns before ':' is in ns_map and ns_map[i].gstreamer_ns!=NULL
|
* check if ns before ':' is in ns_map and ns_map[i].gstreamer_ns!=NULL
|
||||||
* do 2 stage filter in tag_matches
|
* do 2 stage filter in tag_matches
|
||||||
|
@ -1467,7 +1467,7 @@ gst_tag_list_from_xmp_buffer (GstBuffer * buffer)
|
||||||
<dc:type><rdf:Bag><rdf:li>Image</rdf:li></rdf:Bag></dc:type>
|
<dc:type><rdf:Bag><rdf:li>Image</rdf:li></rdf:Bag></dc:type>
|
||||||
<dc:creator><rdf:Seq><rdf:li/></rdf:Seq></dc:creator>
|
<dc:creator><rdf:Seq><rdf:li/></rdf:Seq></dc:creator>
|
||||||
*/
|
*/
|
||||||
/* FIXME: eventualy rewrite ns */
|
/* FIXME: eventually rewrite ns */
|
||||||
|
|
||||||
/* skip rdf tags for now */
|
/* skip rdf tags for now */
|
||||||
if (strncmp (part, "rdf:", 4)) {
|
if (strncmp (part, "rdf:", 4)) {
|
||||||
|
@ -1852,7 +1852,7 @@ gst_tag_list_to_xmp_buffer_full (const GstTagList * list, gboolean read_only,
|
||||||
g_string_append (data, "</x:xmpmeta>\n");
|
g_string_append (data, "</x:xmpmeta>\n");
|
||||||
|
|
||||||
if (!read_only) {
|
if (!read_only) {
|
||||||
/* the xmp spec recommand to add 2-4KB padding for in-place editable xmp */
|
/* the xmp spec recommends to add 2-4KB padding for in-place editable xmp */
|
||||||
guint i;
|
guint i;
|
||||||
|
|
||||||
for (i = 0; i < 32; i++) {
|
for (i = 0; i < 32; i++) {
|
||||||
|
|
|
@ -183,7 +183,7 @@ bits are ignored, so a 257 bytes long tag is represented as $00 00 02 01.
|
||||||
The ID3v2 tag size is the size of the complete tag after unsychronisation,
|
The ID3v2 tag size is the size of the complete tag after unsychronisation,
|
||||||
including padding, excluding the header but not excluding the extended header
|
including padding, excluding the header but not excluding the extended header
|
||||||
(total tag size - 10). Only 28 bits (representing up to 256MB) are used in the
|
(total tag size - 10). Only 28 bits (representing up to 256MB) are used in the
|
||||||
size description to avoid the introducuction of 'false syncsignals'.
|
size description to avoid the introduction of 'false syncsignals'.
|
||||||
An ID3v2 tag can be detected with the following pattern:
|
An ID3v2 tag can be detected with the following pattern:
|
||||||
|
|
||||||
$49 44 33 yy yy xx zz zz zz zz
|
$49 44 33 yy yy xx zz zz zz zz
|
||||||
|
@ -1006,7 +1006,7 @@ Where time stamp format is:
|
||||||
$01 Absolute time, 32 bit sized, using MPEG frames as unit
|
$01 Absolute time, 32 bit sized, using MPEG frames as unit
|
||||||
$02 Absolute time, 32 bit sized, using milliseconds as unit
|
$02 Absolute time, 32 bit sized, using milliseconds as unit
|
||||||
|
|
||||||
Abolute time means that every stamp contains the time from the beginning of the
|
Absolute time means that every stamp contains the time from the beginning of the
|
||||||
file.
|
file.
|
||||||
Followed by a list of key events in the following format:
|
Followed by a list of key events in the following format:
|
||||||
|
|
||||||
|
@ -1111,7 +1111,7 @@ Where time stamp format is:
|
||||||
$01 Absolute time, 32 bit sized, using MPEG frames as unit
|
$01 Absolute time, 32 bit sized, using MPEG frames as unit
|
||||||
$02 Absolute time, 32 bit sized, using milliseconds as unit
|
$02 Absolute time, 32 bit sized, using milliseconds as unit
|
||||||
|
|
||||||
Abolute time means that every stamp contains the time from the beginning of the
|
Absolute time means that every stamp contains the time from the beginning of the
|
||||||
file.
|
file.
|
||||||
|
|
||||||
4.9. Unsychronised lyrics/text transcription
|
4.9. Unsychronised lyrics/text transcription
|
||||||
|
@ -1167,7 +1167,7 @@ Time stamp format is:
|
||||||
$01 Absolute time, 32 bit sized, using MPEG frames as unit
|
$01 Absolute time, 32 bit sized, using MPEG frames as unit
|
||||||
$02 Absolute time, 32 bit sized, using milliseconds as unit
|
$02 Absolute time, 32 bit sized, using milliseconds as unit
|
||||||
|
|
||||||
Abolute time means that every stamp contains the time from the beginning of the
|
Absolute time means that every stamp contains the time from the beginning of the
|
||||||
file.
|
file.
|
||||||
The text that follows the frame header differs from that of the unsynchronised
|
The text that follows the frame header differs from that of the unsynchronised
|
||||||
lyrics/text transcription in one major way. Each syllable (or whatever size of
|
lyrics/text transcription in one major way. Each syllable (or whatever size of
|
||||||
|
@ -1463,7 +1463,7 @@ frame in each tag.
|
||||||
4.20. Audio encryption
|
4.20. Audio encryption
|
||||||
|
|
||||||
This frame indicates if the actual audio stream is encrypted, and by whom.
|
This frame indicates if the actual audio stream is encrypted, and by whom.
|
||||||
Since standardisation of such encrypion scheme is beyond this document, all
|
Since standardisation of such encryption scheme is beyond this document, all
|
||||||
"AENC" frames begin with a terminated string with a URL containing an email
|
"AENC" frames begin with a terminated string with a URL containing an email
|
||||||
address, or a link to a location where an email address can be found, that
|
address, or a link to a location where an email address can be found, that
|
||||||
belongs to the organisation responsible for this specific encrypted audio file.
|
belongs to the organisation responsible for this specific encrypted audio file.
|
||||||
|
|
|
@ -255,7 +255,7 @@ Abstract
|
||||||
one text information frame of its kind in an tag. All text
|
one text information frame of its kind in an tag. All text
|
||||||
information frames supports multiple strings, stored as a null
|
information frames supports multiple strings, stored as a null
|
||||||
separated list, where null is reperesented by the termination code
|
separated list, where null is reperesented by the termination code
|
||||||
for the charater encoding. All text frame identifiers begin with "T".
|
for the character encoding. All text frame identifiers begin with "T".
|
||||||
Only text frame identifiers begin with "T", with the exception of the
|
Only text frame identifiers begin with "T", with the exception of the
|
||||||
"TXXX" frame. All the text information frames have the following
|
"TXXX" frame. All the text information frames have the following
|
||||||
format:
|
format:
|
||||||
|
|
|
@ -411,7 +411,7 @@ Abstract
|
||||||
byte indicates that extra information is added to the header. These
|
byte indicates that extra information is added to the header. These
|
||||||
fields of extra information is ordered as the flags that indicates
|
fields of extra information is ordered as the flags that indicates
|
||||||
them. The flags field is defined as follows (l and o left out because
|
them. The flags field is defined as follows (l and o left out because
|
||||||
ther resemblence to one and zero):
|
their resemblence to one and zero):
|
||||||
|
|
||||||
%0abc0000 %0h00kmnp
|
%0abc0000 %0h00kmnp
|
||||||
|
|
||||||
|
|
|
@ -423,7 +423,7 @@ gst_video_overlay_expose (GstVideoOverlay * overlay)
|
||||||
* @handle_events: a #gboolean indicating if events should be handled or not.
|
* @handle_events: a #gboolean indicating if events should be handled or not.
|
||||||
*
|
*
|
||||||
* Tell an overlay that it should handle events from the window system. These
|
* Tell an overlay that it should handle events from the window system. These
|
||||||
* events are forwared upstream as navigation events. In some window system,
|
* events are forwarded upstream as navigation events. In some window system,
|
||||||
* events are not propagated in the window hierarchy if a client is listening
|
* events are not propagated in the window hierarchy if a client is listening
|
||||||
* for them. This method allows you to disable events handling completely
|
* for them. This method allows you to disable events handling completely
|
||||||
* from the XOverlay.
|
* from the XOverlay.
|
||||||
|
|
|
@ -1193,7 +1193,7 @@ gst_adder_collected (GstCollectPads * pads, gpointer user_data)
|
||||||
* - currently we just set rate as received from last seek-event
|
* - currently we just set rate as received from last seek-event
|
||||||
*
|
*
|
||||||
* When seeking we set the start and stop positions as given in the seek
|
* When seeking we set the start and stop positions as given in the seek
|
||||||
* event. We also adjust offset & timestamp acordingly.
|
* event. We also adjust offset & timestamp accordingly.
|
||||||
* This basically ignores all newsegments sent by upstream.
|
* This basically ignores all newsegments sent by upstream.
|
||||||
*/
|
*/
|
||||||
event = gst_event_new_segment (&adder->segment);
|
event = gst_event_new_segment (&adder->segment);
|
||||||
|
|
|
@ -279,7 +279,7 @@ MAKE_UNPACK_FUNC_ORC_IF (s32_le_float, 4, 0, READ32_FROM_LE);
|
||||||
MAKE_UNPACK_FUNC_ORC_IF (u32_be_float, 4, SIGNED, READ32_FROM_BE);
|
MAKE_UNPACK_FUNC_ORC_IF (u32_be_float, 4, SIGNED, READ32_FROM_BE);
|
||||||
MAKE_UNPACK_FUNC_ORC_IF (s32_be_float, 4, 0, READ32_FROM_BE);
|
MAKE_UNPACK_FUNC_ORC_IF (s32_be_float, 4, 0, READ32_FROM_BE);
|
||||||
|
|
||||||
/* One of the double_hq_* functions generated above is ineffecient, but it's
|
/* One of the double_hq_* functions generated above is inefficient, but it's
|
||||||
* never used anyway. The same is true for one of the s32_* functions. */
|
* never used anyway. The same is true for one of the s32_* functions. */
|
||||||
|
|
||||||
/***
|
/***
|
||||||
|
@ -640,7 +640,7 @@ audio_convert_prepare_context (AudioConvertCtx * ctx, GstAudioInfo * in,
|
||||||
ctx->pack = pack_funcs[idx_out];
|
ctx->pack = pack_funcs[idx_out];
|
||||||
|
|
||||||
/* if both formats are float/double or we use noise shaping use double as
|
/* if both formats are float/double or we use noise shaping use double as
|
||||||
* intermediate format and and switch mixing */
|
* intermediate format and switch mixing */
|
||||||
if (!DOUBLE_INTERMEDIATE_FORMAT (ctx)) {
|
if (!DOUBLE_INTERMEDIATE_FORMAT (ctx)) {
|
||||||
GST_INFO ("use int mixing");
|
GST_INFO ("use int mixing");
|
||||||
ctx->channel_mix = (AudioConvertMix) gst_channel_mix_mix_int;
|
ctx->channel_mix = (AudioConvertMix) gst_channel_mix_mix_int;
|
||||||
|
|
|
@ -544,7 +544,7 @@ gst_audio_rate_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
|
||||||
GST_BUFFER_OFFSET_END (fill) = audiorate->next_offset;
|
GST_BUFFER_OFFSET_END (fill) = audiorate->next_offset;
|
||||||
|
|
||||||
/* Use next timestamp, then calculate following timestamp based on
|
/* Use next timestamp, then calculate following timestamp based on
|
||||||
* offset to get duration. Neccesary complexity to get 'perfect'
|
* offset to get duration. Necessary complexity to get 'perfect'
|
||||||
* streams */
|
* streams */
|
||||||
GST_BUFFER_TIMESTAMP (fill) = audiorate->next_ts;
|
GST_BUFFER_TIMESTAMP (fill) = audiorate->next_ts;
|
||||||
audiorate->next_ts = gst_util_uint64_scale_int (audiorate->next_offset,
|
audiorate->next_ts = gst_util_uint64_scale_int (audiorate->next_offset,
|
||||||
|
|
|
@ -73,7 +73,7 @@ enum
|
||||||
GST_AUDIO_CAPS_MAKE ("{ F32BE, F64BE, S32BE, S24BE, S16BE, S8 }")
|
GST_AUDIO_CAPS_MAKE ("{ F32BE, F64BE, S32BE, S24BE, S16BE, S8 }")
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* If TRUE integer arithmetic resampling is faster and will be used if appropiate */
|
/* If TRUE integer arithmetic resampling is faster and will be used if appropriate */
|
||||||
#if defined AUDIORESAMPLE_FORMAT_INT
|
#if defined AUDIORESAMPLE_FORMAT_INT
|
||||||
static gboolean gst_audio_resample_use_int = TRUE;
|
static gboolean gst_audio_resample_use_int = TRUE;
|
||||||
#elif defined AUDIORESAMPLE_FORMAT_FLOAT
|
#elif defined AUDIORESAMPLE_FORMAT_FLOAT
|
||||||
|
@ -1395,7 +1395,7 @@ _benchmark_integer_resampling (void)
|
||||||
resample_int_resampler_destroy (stb);
|
resample_int_resampler_destroy (stb);
|
||||||
|
|
||||||
if (av > bv)
|
if (av > bv)
|
||||||
GST_INFO ("Using integer resampler if appropiate: %lf < %lf", bv, av);
|
GST_INFO ("Using integer resampler if appropriate: %lf < %lf", bv, av);
|
||||||
else
|
else
|
||||||
GST_INFO ("Using float resampler for everything: %lf <= %lf", av, bv);
|
GST_INFO ("Using float resampler for everything: %lf <= %lf", av, bv);
|
||||||
|
|
||||||
|
|
|
@ -461,7 +461,7 @@ resampler_basic_direct_single (SpeexResamplerState * st,
|
||||||
sum += MULT16_16 (sinc[j], iptr[j]);
|
sum += MULT16_16 (sinc[j], iptr[j]);
|
||||||
|
|
||||||
/* This code is slower on most DSPs which have only 2 accumulators.
|
/* This code is slower on most DSPs which have only 2 accumulators.
|
||||||
Plus this this forces truncation to 32 bits and you lose the HW guard bits.
|
Plus this forces truncation to 32 bits and you lose the HW guard bits.
|
||||||
I think we can trust the compiler and let it vectorize and/or unroll itself.
|
I think we can trust the compiler and let it vectorize and/or unroll itself.
|
||||||
spx_word32_t accum[4] = {0,0,0,0};
|
spx_word32_t accum[4] = {0,0,0,0};
|
||||||
for(j=0;j<N;j+=4) {
|
for(j=0;j<N;j+=4) {
|
||||||
|
|
|
@ -367,7 +367,7 @@ resync:
|
||||||
|
|
||||||
if (res) {
|
if (res) {
|
||||||
/* FIXME : we need to switch properly */
|
/* FIXME : we need to switch properly */
|
||||||
GST_DEBUG_OBJECT (srcpad, "Setting caps on this pad was succesfull");
|
GST_DEBUG_OBJECT (srcpad, "Setting caps on this pad was successful");
|
||||||
stream_splitter->current = srcpad;
|
stream_splitter->current = srcpad;
|
||||||
goto beach;
|
goto beach;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1441,7 +1441,7 @@ queue_underrun_cb (GstElement * queue, GstDecodeBin * decode_bin)
|
||||||
/* FIXME: we don't really do anything here for now. Ideally we should
|
/* FIXME: we don't really do anything here for now. Ideally we should
|
||||||
* see if some of the queues are filled and increase their values
|
* see if some of the queues are filled and increase their values
|
||||||
* in that case.
|
* in that case.
|
||||||
* Note: be very carefull with thread safety here as this underrun
|
* Note: be very careful with thread safety here as this underrun
|
||||||
* signal is done from the streaming thread of queue srcpad which
|
* signal is done from the streaming thread of queue srcpad which
|
||||||
* is different from the pad_added (where we add the queue to the
|
* is different from the pad_added (where we add the queue to the
|
||||||
* list) and the overrun signals that are signalled from the
|
* list) and the overrun signals that are signalled from the
|
||||||
|
@ -1773,7 +1773,7 @@ close_link (GstElement * element, GstDecodeBin * decode_bin)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check if this is an element with more than 1 pad. If this element
|
/* Check if this is an element with more than 1 pad. If this element
|
||||||
* has more than 1 pad, we need to be carefull not to signal the
|
* has more than 1 pad, we need to be careful not to signal the
|
||||||
* no_more_pads signal after connecting the first pad. */
|
* no_more_pads signal after connecting the first pad. */
|
||||||
more = g_list_length (to_connect) > 1;
|
more = g_list_length (to_connect) > 1;
|
||||||
|
|
||||||
|
|
|
@ -165,7 +165,7 @@ struct _GstDecodeBin
|
||||||
gboolean have_type; /* if we received the have_type signal */
|
gboolean have_type; /* if we received the have_type signal */
|
||||||
guint have_type_id; /* signal id for have-type from typefind */
|
guint have_type_id; /* signal id for have-type from typefind */
|
||||||
|
|
||||||
gboolean async_pending; /* async-start has been emited */
|
gboolean async_pending; /* async-start has been emitted */
|
||||||
|
|
||||||
GMutex *dyn_lock; /* lock protecting pad blocking */
|
GMutex *dyn_lock; /* lock protecting pad blocking */
|
||||||
gboolean shutdown; /* if we are shutting down */
|
gboolean shutdown; /* if we are shutting down */
|
||||||
|
@ -716,7 +716,7 @@ gst_decode_bin_class_init (GstDecodeBinClass * klass)
|
||||||
*
|
*
|
||||||
* This signal is emitted once decodebin has found all the possible
|
* This signal is emitted once decodebin has found all the possible
|
||||||
* #GstElementFactory that can be used to handle the given @caps. For each of
|
* #GstElementFactory that can be used to handle the given @caps. For each of
|
||||||
* those factories, this signal is emited.
|
* those factories, this signal is emitted.
|
||||||
*
|
*
|
||||||
* The signal handler should return a #GST_TYPE_AUTOPLUG_SELECT_RESULT enum
|
* The signal handler should return a #GST_TYPE_AUTOPLUG_SELECT_RESULT enum
|
||||||
* value indicating what decodebin should do next.
|
* value indicating what decodebin should do next.
|
||||||
|
@ -817,7 +817,7 @@ gst_decode_bin_class_init (GstDecodeBinClass * klass)
|
||||||
/**
|
/**
|
||||||
* GstDecodeBin:max-size-bytes
|
* GstDecodeBin:max-size-bytes
|
||||||
*
|
*
|
||||||
* Max amount amount of bytes in the queue (0=automatic).
|
* Max amount of bytes in the queue (0=automatic).
|
||||||
*
|
*
|
||||||
* Since: 0.10.26
|
* Since: 0.10.26
|
||||||
*/
|
*/
|
||||||
|
@ -829,7 +829,7 @@ gst_decode_bin_class_init (GstDecodeBinClass * klass)
|
||||||
/**
|
/**
|
||||||
* GstDecodeBin:max-size-buffers
|
* GstDecodeBin:max-size-buffers
|
||||||
*
|
*
|
||||||
* Max amount amount of buffers in the queue (0=automatic).
|
* Max amount of buffers in the queue (0=automatic).
|
||||||
*
|
*
|
||||||
* Since: 0.10.26
|
* Since: 0.10.26
|
||||||
*/
|
*/
|
||||||
|
@ -841,7 +841,7 @@ gst_decode_bin_class_init (GstDecodeBinClass * klass)
|
||||||
/**
|
/**
|
||||||
* GstDecodeBin:max-size-time
|
* GstDecodeBin:max-size-time
|
||||||
*
|
*
|
||||||
* Max amount amount of time in the queue (in ns, 0=automatic).
|
* Max amount of time in the queue (in ns, 0=automatic).
|
||||||
*
|
*
|
||||||
* Since: 0.10.26
|
* Since: 0.10.26
|
||||||
*/
|
*/
|
||||||
|
@ -3632,7 +3632,7 @@ gst_decode_bin_expose (GstDecodeBin * dbin)
|
||||||
|
|
||||||
/* 4. Signal no-more-pads. This allows the application to hook stuff to the
|
/* 4. Signal no-more-pads. This allows the application to hook stuff to the
|
||||||
* exposed pads */
|
* exposed pads */
|
||||||
GST_LOG_OBJECT (dbin, "signalling no-more-pads");
|
GST_LOG_OBJECT (dbin, "signaling no-more-pads");
|
||||||
gst_element_no_more_pads (GST_ELEMENT (dbin));
|
gst_element_no_more_pads (GST_ELEMENT (dbin));
|
||||||
|
|
||||||
/* 5. Send a custom element message with the stream topology */
|
/* 5. Send a custom element message with the stream topology */
|
||||||
|
|
|
@ -1129,7 +1129,7 @@ init_group (GstPlayBin * playbin, GstSourceGroup * group)
|
||||||
* matches the media. */
|
* matches the media. */
|
||||||
group->playbin = playbin;
|
group->playbin = playbin;
|
||||||
/* If you add any items to these lists, check that media_list[] is defined
|
/* If you add any items to these lists, check that media_list[] is defined
|
||||||
* above to be large enough to hold MAX(items)+1, so as to accomodate a
|
* above to be large enough to hold MAX(items)+1, so as to accommodate a
|
||||||
* NULL terminator (set when the memory is zeroed on allocation) */
|
* NULL terminator (set when the memory is zeroed on allocation) */
|
||||||
group->selector[PLAYBIN_STREAM_AUDIO].media_list[0] = "audio/";
|
group->selector[PLAYBIN_STREAM_AUDIO].media_list[0] = "audio/";
|
||||||
group->selector[PLAYBIN_STREAM_AUDIO].type = GST_PLAY_SINK_TYPE_AUDIO;
|
group->selector[PLAYBIN_STREAM_AUDIO].type = GST_PLAY_SINK_TYPE_AUDIO;
|
||||||
|
@ -3124,7 +3124,7 @@ autoplug_factories_cb (GstElement * decodebin, GstPad * pad,
|
||||||
* supported subtitles directly */
|
* supported subtitles directly */
|
||||||
|
|
||||||
/* FIXME 0.11: Remove the checks for ANY caps, a sink should specify
|
/* FIXME 0.11: Remove the checks for ANY caps, a sink should specify
|
||||||
* explicitely the caps it supports and if it claims to support ANY
|
* explicitly the caps it supports and if it claims to support ANY
|
||||||
* caps it really should support everything */
|
* caps it really should support everything */
|
||||||
static gboolean
|
static gboolean
|
||||||
autoplug_continue_cb (GstElement * element, GstPad * pad, GstCaps * caps,
|
autoplug_continue_cb (GstElement * element, GstPad * pad, GstCaps * caps,
|
||||||
|
|
|
@ -3367,7 +3367,7 @@ gst_play_sink_send_event_to_sink (GstPlaySink * playsink, GstEvent * event)
|
||||||
if (playsink->textchain && playsink->textchain->sink) {
|
if (playsink->textchain && playsink->textchain->sink) {
|
||||||
gst_event_ref (event);
|
gst_event_ref (event);
|
||||||
if ((res = gst_element_send_event (playsink->textchain->chain.bin, event))) {
|
if ((res = gst_element_send_event (playsink->textchain->chain.bin, event))) {
|
||||||
GST_DEBUG_OBJECT (playsink, "Sent event succesfully to text sink");
|
GST_DEBUG_OBJECT (playsink, "Sent event successfully to text sink");
|
||||||
} else {
|
} else {
|
||||||
GST_DEBUG_OBJECT (playsink, "Event failed when sent to text sink");
|
GST_DEBUG_OBJECT (playsink, "Event failed when sent to text sink");
|
||||||
}
|
}
|
||||||
|
@ -3376,7 +3376,7 @@ gst_play_sink_send_event_to_sink (GstPlaySink * playsink, GstEvent * event)
|
||||||
if (playsink->videochain) {
|
if (playsink->videochain) {
|
||||||
gst_event_ref (event);
|
gst_event_ref (event);
|
||||||
if ((res = gst_element_send_event (playsink->videochain->chain.bin, event))) {
|
if ((res = gst_element_send_event (playsink->videochain->chain.bin, event))) {
|
||||||
GST_DEBUG_OBJECT (playsink, "Sent event succesfully to video sink");
|
GST_DEBUG_OBJECT (playsink, "Sent event successfully to video sink");
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
GST_DEBUG_OBJECT (playsink, "Event failed when sent to video sink");
|
GST_DEBUG_OBJECT (playsink, "Event failed when sent to video sink");
|
||||||
|
@ -3384,7 +3384,7 @@ gst_play_sink_send_event_to_sink (GstPlaySink * playsink, GstEvent * event)
|
||||||
if (playsink->audiochain) {
|
if (playsink->audiochain) {
|
||||||
gst_event_ref (event);
|
gst_event_ref (event);
|
||||||
if ((res = gst_element_send_event (playsink->audiochain->chain.bin, event))) {
|
if ((res = gst_element_send_event (playsink->audiochain->chain.bin, event))) {
|
||||||
GST_DEBUG_OBJECT (playsink, "Sent event succesfully to audio sink");
|
GST_DEBUG_OBJECT (playsink, "Sent event successfully to audio sink");
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
GST_DEBUG_OBJECT (playsink, "Event failed when sent to audio sink");
|
GST_DEBUG_OBJECT (playsink, "Event failed when sent to audio sink");
|
||||||
|
|
|
@ -106,7 +106,7 @@ struct _GstURIDecodeBin
|
||||||
guint src_nmp_sig_id; /* no-more-pads signal id */
|
guint src_nmp_sig_id; /* no-more-pads signal id */
|
||||||
gint pending;
|
gint pending;
|
||||||
|
|
||||||
gboolean async_pending; /* async-start has been emited */
|
gboolean async_pending; /* async-start has been emitted */
|
||||||
|
|
||||||
gboolean expose_allstreams; /* Whether to expose unknow type streams or not */
|
gboolean expose_allstreams; /* Whether to expose unknow type streams or not */
|
||||||
|
|
||||||
|
@ -133,7 +133,7 @@ struct _GstURIDecodeBinClass
|
||||||
GstAutoplugSelectResult (*autoplug_select) (GstElement * element,
|
GstAutoplugSelectResult (*autoplug_select) (GstElement * element,
|
||||||
GstPad * pad, GstCaps * caps, GstElementFactory * factory);
|
GstPad * pad, GstCaps * caps, GstElementFactory * factory);
|
||||||
|
|
||||||
/* emited when all data is decoded */
|
/* emitted when all data is decoded */
|
||||||
void (*drained) (GstElement * element);
|
void (*drained) (GstElement * element);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -502,7 +502,7 @@ gst_uri_decode_bin_class_init (GstURIDecodeBinClass * klass)
|
||||||
* @pad: The #GstPad.
|
* @pad: The #GstPad.
|
||||||
* @caps: The #GstCaps found.
|
* @caps: The #GstCaps found.
|
||||||
*
|
*
|
||||||
* This function is emited when an array of possible factories for @caps on
|
* This function is emitted when an array of possible factories for @caps on
|
||||||
* @pad is needed. Uridecodebin will by default return an array with all
|
* @pad is needed. Uridecodebin will by default return an array with all
|
||||||
* compatible factories, sorted by rank.
|
* compatible factories, sorted by rank.
|
||||||
*
|
*
|
||||||
|
@ -571,7 +571,7 @@ gst_uri_decode_bin_class_init (GstURIDecodeBinClass * klass)
|
||||||
*
|
*
|
||||||
* This signal is emitted once uridecodebin has found all the possible
|
* This signal is emitted once uridecodebin has found all the possible
|
||||||
* #GstElementFactory that can be used to handle the given @caps. For each of
|
* #GstElementFactory that can be used to handle the given @caps. For each of
|
||||||
* those factories, this signal is emited.
|
* those factories, this signal is emitted.
|
||||||
*
|
*
|
||||||
* The signal handler should return a #GST_TYPE_AUTOPLUG_SELECT_RESULT enum
|
* The signal handler should return a #GST_TYPE_AUTOPLUG_SELECT_RESULT enum
|
||||||
* value indicating what decodebin should do next.
|
* value indicating what decodebin should do next.
|
||||||
|
|
|
@ -67,7 +67,7 @@
|
||||||
* prefer a minimum burst size even if it requires not starting with a keyframe.
|
* prefer a minimum burst size even if it requires not starting with a keyframe.
|
||||||
*
|
*
|
||||||
* Multifdsink can be instructed to keep at least a minimum amount of data
|
* Multifdsink can be instructed to keep at least a minimum amount of data
|
||||||
* expressed in time or byte units in its internal queues with the the
|
* expressed in time or byte units in its internal queues with the
|
||||||
* #GstMultiFdSink:time-min and #GstMultiFdSink:bytes-min properties respectively.
|
* #GstMultiFdSink:time-min and #GstMultiFdSink:bytes-min properties respectively.
|
||||||
* These properties are useful if the application adds clients with the
|
* These properties are useful if the application adds clients with the
|
||||||
* #GstMultiFdSink::add-full signal to make sure that a burst connect can
|
* #GstMultiFdSink::add-full signal to make sure that a burst connect can
|
||||||
|
@ -913,7 +913,7 @@ duplicate:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* "add" signal implemntation */
|
/* "add" signal implementation */
|
||||||
void
|
void
|
||||||
gst_multi_fd_sink_add (GstMultiFdSink * sink, int fd)
|
gst_multi_fd_sink_add (GstMultiFdSink * sink, int fd)
|
||||||
{
|
{
|
||||||
|
@ -2126,7 +2126,7 @@ gst_multi_fd_sink_recover_client (GstMultiFdSink * sink, GstTCPClient * client)
|
||||||
*
|
*
|
||||||
* Special care is taken of clients that were waiting for a new buffer (they
|
* Special care is taken of clients that were waiting for a new buffer (they
|
||||||
* had a position of -1) because they can proceed after adding this new buffer.
|
* had a position of -1) because they can proceed after adding this new buffer.
|
||||||
* This is done by adding the client back into the write fd_set and signalling
|
* This is done by adding the client back into the write fd_set and signaling
|
||||||
* the select thread that the fd_set changed.
|
* the select thread that the fd_set changed.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
|
@ -2330,7 +2330,7 @@ gst_multi_fd_sink_handle_clients (GstMultiFdSink * sink)
|
||||||
GST_CLOCK_TIME_NONE);
|
GST_CLOCK_TIME_NONE);
|
||||||
|
|
||||||
/* Handle the special case in which the sink is not receiving more buffers
|
/* Handle the special case in which the sink is not receiving more buffers
|
||||||
* and will not disconnect innactive client in the streaming thread. */
|
* and will not disconnect inactive client in the streaming thread. */
|
||||||
if (G_UNLIKELY (result == 0)) {
|
if (G_UNLIKELY (result == 0)) {
|
||||||
GstClockTime now;
|
GstClockTime now;
|
||||||
GTimeVal nowtv;
|
GTimeVal nowtv;
|
||||||
|
|
|
@ -116,7 +116,7 @@ gst_tcp_socket_write (int socket, const void *buf, size_t count)
|
||||||
bytes_written += wrote;
|
bytes_written += wrote;
|
||||||
}
|
}
|
||||||
|
|
||||||
GST_LOG ("wrote %" G_GSIZE_FORMAT " bytes succesfully", bytes_written);
|
GST_LOG ("wrote %" G_GSIZE_FORMAT " bytes successfully", bytes_written);
|
||||||
return bytes_written;
|
return bytes_written;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1061,7 +1061,7 @@ mp3_type_frame_length_from_header (guint32 header, guint * put_layer,
|
||||||
/* bitrate index */
|
/* bitrate index */
|
||||||
bitrate = header & 0xF;
|
bitrate = header & 0xF;
|
||||||
if (bitrate == 0 && possible_free_framelen == -1) {
|
if (bitrate == 0 && possible_free_framelen == -1) {
|
||||||
GST_LOG ("Possibly a free format mp3 - signalling");
|
GST_LOG ("Possibly a free format mp3 - signaling");
|
||||||
*may_be_free_format = TRUE;
|
*may_be_free_format = TRUE;
|
||||||
}
|
}
|
||||||
if (bitrate == 15 || (bitrate == 0 && possible_free_framelen == -1))
|
if (bitrate == 15 || (bitrate == 0 && possible_free_framelen == -1))
|
||||||
|
@ -1440,7 +1440,7 @@ ac3_type_find (GstTypeFind * tf, gpointer unused)
|
||||||
{
|
{
|
||||||
DataScanCtx c = { 0, NULL, 0 };
|
DataScanCtx c = { 0, NULL, 0 };
|
||||||
|
|
||||||
/* Search for an ac3 frame; not neccesarily right at the start, but give it
|
/* Search for an ac3 frame; not necessarily right at the start, but give it
|
||||||
* a lower probability if not found right at the start. Check that the
|
* a lower probability if not found right at the start. Check that the
|
||||||
* frame is followed by a second frame at the expected offset.
|
* frame is followed by a second frame at the expected offset.
|
||||||
* We could also check the two ac3 CRCs, but we don't do that right now */
|
* We could also check the two ac3 CRCs, but we don't do that right now */
|
||||||
|
@ -1607,7 +1607,7 @@ dts_type_find (GstTypeFind * tf, gpointer unused)
|
||||||
{
|
{
|
||||||
DataScanCtx c = { 0, NULL, 0 };
|
DataScanCtx c = { 0, NULL, 0 };
|
||||||
|
|
||||||
/* Search for an dts frame; not neccesarily right at the start, but give it
|
/* Search for an dts frame; not necessarily right at the start, but give it
|
||||||
* a lower probability if not found right at the start. Check that the
|
* a lower probability if not found right at the start. Check that the
|
||||||
* frame is followed by a second frame at the expected offset. */
|
* frame is followed by a second frame at the expected offset. */
|
||||||
while (c.offset <= DTS_MAX_FRAMESIZE) {
|
while (c.offset <= DTS_MAX_FRAMESIZE) {
|
||||||
|
@ -2412,7 +2412,7 @@ h264_video_type_find (GstTypeFind * tf, gpointer unused)
|
||||||
nut = c.data[3] & 0x9f; /* forbiden_zero_bit | nal_unit_type */
|
nut = c.data[3] & 0x9f; /* forbiden_zero_bit | nal_unit_type */
|
||||||
ref = c.data[3] & 0x60; /* nal_ref_idc */
|
ref = c.data[3] & 0x60; /* nal_ref_idc */
|
||||||
|
|
||||||
/* if forbiden bit is different to 0 won't be h264 */
|
/* if forbidden bit is different to 0 won't be h264 */
|
||||||
if (nut > 0x1f) {
|
if (nut > 0x1f) {
|
||||||
bad++;
|
bad++;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
/**
|
/**
|
||||||
* SECTION:element-videotestsrc
|
* SECTION:element-videotestsrc
|
||||||
*
|
*
|
||||||
* The videotestsrc element is used to produce test video data in a wide variaty
|
* The videotestsrc element is used to produce test video data in a wide variety
|
||||||
* of formats. The video test data produced can be controlled with the "pattern"
|
* of formats. The video test data produced can be controlled with the "pattern"
|
||||||
* property.
|
* property.
|
||||||
*
|
*
|
||||||
|
|
|
@ -131,7 +131,7 @@ else
|
||||||
echo "*** The FreeType test program failed to run. If your system uses"
|
echo "*** The FreeType test program failed to run. If your system uses"
|
||||||
echo "*** shared libraries and they are installed outside the normal"
|
echo "*** shared libraries and they are installed outside the normal"
|
||||||
echo "*** system library path, make sure the variable LD_LIBRARY_PATH"
|
echo "*** system library path, make sure the variable LD_LIBRARY_PATH"
|
||||||
echo "*** (or whatever is appropiate for your system) is correctly set."
|
echo "*** (or whatever is appropriate for your system) is correctly set."
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
FT2_CFLAGS=""
|
FT2_CFLAGS=""
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
* SECTION:element-xvimagesink
|
* SECTION:element-xvimagesink
|
||||||
*
|
*
|
||||||
* XvImageSink renders video frames to a drawable (XWindow) on a local display
|
* XvImageSink renders video frames to a drawable (XWindow) on a local display
|
||||||
* using the XVideo extension. Rendering to a remote display is theorically
|
* using the XVideo extension. Rendering to a remote display is theoretically
|
||||||
* possible but i doubt that the XVideo extension is actually available when
|
* possible but i doubt that the XVideo extension is actually available when
|
||||||
* connecting to a remote display. This element can receive a Window ID from the
|
* connecting to a remote display. This element can receive a Window ID from the
|
||||||
* application through the XOverlay interface and will then render video frames
|
* application through the XOverlay interface and will then render video frames
|
||||||
|
|
|
@ -262,7 +262,7 @@ struct _GstXvImageSink
|
||||||
/* stream metadata */
|
/* stream metadata */
|
||||||
gchar *media_title;
|
gchar *media_title;
|
||||||
|
|
||||||
/* target video rectagle */
|
/* target video rectangle */
|
||||||
GstVideoRectangle render_rect;
|
GstVideoRectangle render_rect;
|
||||||
gboolean have_render_rect;
|
gboolean have_render_rect;
|
||||||
};
|
};
|
||||||
|
|
|
@ -534,7 +534,7 @@ GST_START_TEST (test_live_seeking)
|
||||||
#if 1
|
#if 1
|
||||||
fail_unless (res == TRUE, NULL);
|
fail_unless (res == TRUE, NULL);
|
||||||
#else
|
#else
|
||||||
/* adder is picky, if a single seek fails it totaly fails */
|
/* adder is picky, if a single seek fails it totally fails */
|
||||||
fail_unless (res == FALSE, NULL);
|
fail_unless (res == FALSE, NULL);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -793,7 +793,7 @@ fakesink_handoff_cb (GstElement * object, GstBuffer * buffer, GstPad * pad,
|
||||||
ctx->latency = 1000 - gst_buffer_get_size (buffer) / 8;
|
ctx->latency = 1000 - gst_buffer_get_size (buffer) / 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check if we have a perfectly timestampped stream */
|
/* Check if we have a perfectly timestamped stream */
|
||||||
if (ctx->next_out_ts != GST_CLOCK_TIME_NONE)
|
if (ctx->next_out_ts != GST_CLOCK_TIME_NONE)
|
||||||
fail_unless (ctx->next_out_ts == GST_BUFFER_TIMESTAMP (buffer),
|
fail_unless (ctx->next_out_ts == GST_BUFFER_TIMESTAMP (buffer),
|
||||||
"expected timestamp %" GST_TIME_FORMAT " got timestamp %"
|
"expected timestamp %" GST_TIME_FORMAT " got timestamp %"
|
||||||
|
|
|
@ -362,7 +362,7 @@ GST_START_TEST (test_video_passthrough)
|
||||||
/* pushing gives away one of the two references we have ... */
|
/* pushing gives away one of the two references we have ... */
|
||||||
fail_unless (gst_pad_push (myvideosrcpad, inbuffer) == GST_FLOW_OK);
|
fail_unless (gst_pad_push (myvideosrcpad, inbuffer) == GST_FLOW_OK);
|
||||||
|
|
||||||
/* should have been discareded as out-of-segment since it has no timestamp */
|
/* should have been discarded as out-of-segment since it has no timestamp */
|
||||||
ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
|
ASSERT_BUFFER_REFCOUNT (inbuffer, "inbuffer", 1);
|
||||||
fail_unless_equals_int (g_list_length (buffers), 0);
|
fail_unless_equals_int (g_list_length (buffers), 0);
|
||||||
|
|
||||||
|
|
|
@ -501,7 +501,7 @@ main (int argc, char **argv)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Trancode file */
|
/* Transcode file */
|
||||||
transcode_file (inputuri, outputuri, prof);
|
transcode_file (inputuri, outputuri, prof);
|
||||||
|
|
||||||
/* cleanup */
|
/* cleanup */
|
||||||
|
|
Loading…
Reference in a new issue