mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-29 03:30:35 +00:00
parent
0cce8ab97d
commit
14644457b0
81 changed files with 161 additions and 161 deletions
|
@ -82,7 +82,7 @@ Design:
|
|||
|
||||
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
|
||||
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
|
||||
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
|
||||
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.
|
||||
|
||||
- 'autoplug-select' :
|
||||
|
@ -142,7 +142,7 @@ Description:
|
|||
|
||||
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:
|
||||
|
||||
* Multiple streams handling.
|
||||
|
|
|
@ -16,13 +16,13 @@ A. Problems this proposal attempts to solve
|
|||
|
||||
* Duplication of pipeline code for gstreamer-based applications
|
||||
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
|
||||
in a user-friendly way.
|
||||
|
||||
* 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,
|
||||
and applications hardcoding element names and settings resulting in
|
||||
poor portability.
|
||||
|
|
|
@ -86,7 +86,7 @@ given an input format, channel position manipulation, dithering and
|
|||
quantizing configuration, and output format, a Orc code generator
|
||||
would create an OrcProgram, add the appropriate instructions to do
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
We want the new file to start with a keyframe so that one can start decoding
|
||||
the file immediatly.
|
||||
the file immediately.
|
||||
|
||||
Components:
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ Status:
|
|||
|
||||
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.
|
||||
|
||||
Provide a mechanism for a light GstBuffer subclassing in order to be able
|
||||
|
@ -26,7 +26,7 @@ Proposal:
|
|||
|
||||
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.
|
||||
|
||||
struct {
|
||||
|
|
|
@ -800,7 +800,7 @@ gst_alsa_mixer_set_record (GstAlsaMixer * mixer,
|
|||
snd_mixer_selem_set_capture_switch_all (alsa_track->element,
|
||||
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) {
|
||||
GList *item;
|
||||
|
||||
|
|
|
@ -548,7 +548,7 @@ gst_visual_src_query (GstPad * pad, GstQuery * query)
|
|||
GST_TIME_FORMAT " max %" GST_TIME_FORMAT,
|
||||
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);
|
||||
our_latency =
|
||||
gst_util_uint64_scale_int (max_samples, GST_SECOND, visual->rate);
|
||||
|
|
|
@ -99,7 +99,7 @@ with great efficiency.
|
|||
1) the streaming mode.
|
||||
|
||||
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
|
||||
sent to the peer elements of the pads.
|
||||
|
||||
|
|
|
@ -572,7 +572,7 @@ gst_ogg_demux_chain_peer (GstOggPad * pad, ogg_packet * packet,
|
|||
pad->current_granule);
|
||||
} else if (ogg->segment.rate > 0.0 && pad->current_granule != -1) {
|
||||
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);
|
||||
}
|
||||
if (ogg->segment.rate < 0.0 && packet->granulepos == -1) {
|
||||
|
|
|
@ -1411,7 +1411,7 @@ theora_dec_flush_decode (GstTheoraDec * dec)
|
|||
while (dec->queued) {
|
||||
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);
|
||||
|
||||
dec->queued = g_list_delete_link (dec->queued, dec->queued);
|
||||
|
|
|
@ -73,7 +73,7 @@ struct _GstTheoraDec
|
|||
gint offset_x, offset_y;
|
||||
gint output_bpp;
|
||||
|
||||
/* telemetry debuging options */
|
||||
/* telemetry debugging options */
|
||||
gint telemetry_mv;
|
||||
gint telemetry_mbmode;
|
||||
gint telemetry_qi;
|
||||
|
|
|
@ -328,7 +328,7 @@ theora_parse_set_streamheader (GstTheoraParse * parse)
|
|||
parse->shift = parse->info.keyframe_granule_shift;
|
||||
|
||||
/* 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
|
||||
* in vorbis/speex. We check the bitstream version from the header so
|
||||
* we know which way to interpret the incoming granuepos
|
||||
|
|
|
@ -552,7 +552,7 @@ vorbis_handle_data_packet (GstVorbisDec * vd, ogg_packet * packet,
|
|||
/* normal data packet */
|
||||
/* FIXME, we can skip decoding if the packet is outside of the
|
||||
* 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
|
||||
* before pushing data. */
|
||||
|
||||
|
|
|
@ -274,9 +274,9 @@ gst_app_sink_class_init (GstAppSinkClass * klass)
|
|||
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
gst_app_sink_signals[SIGNAL_EOS] =
|
||||
|
@ -285,18 +285,18 @@ gst_app_sink_class_init (GstAppSinkClass * klass)
|
|||
NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0, G_TYPE_NONE);
|
||||
/**
|
||||
* GstAppSink::new-preroll:
|
||||
* @appsink: the appsink element that emited the signal
|
||||
* @appsink: the appsink element that emitted the signal
|
||||
*
|
||||
* Signal that a new preroll buffer 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.
|
||||
*
|
||||
* The new preroll buffer can be retrieved with the "pull-preroll" action
|
||||
* signal or gst_app_sink_pull_preroll() either from this signal callback
|
||||
* 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.
|
||||
*/
|
||||
gst_app_sink_signals[SIGNAL_NEW_PREROLL] =
|
||||
|
@ -305,18 +305,18 @@ gst_app_sink_class_init (GstAppSinkClass * klass)
|
|||
NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0, G_TYPE_NONE);
|
||||
/**
|
||||
* GstAppSink::new-buffer:
|
||||
* @appsink: the appsink element that emited the signal
|
||||
* @appsink: the appsink element that emitted the signal
|
||||
*
|
||||
* Signal that a new buffer 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.
|
||||
*
|
||||
* The new buffer can be retrieved with the "pull-buffer" action
|
||||
* signal or gst_app_sink_pull_buffer() either from this signal callback
|
||||
* 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.
|
||||
*/
|
||||
gst_app_sink_signals[SIGNAL_NEW_BUFFER] =
|
||||
|
@ -325,18 +325,18 @@ gst_app_sink_class_init (GstAppSinkClass * klass)
|
|||
NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0, G_TYPE_NONE);
|
||||
/**
|
||||
* GstAppSink::new-buffer-list:
|
||||
* @appsink: the appsink element that emited the signal
|
||||
* @appsink: the appsink element that emitted the signal
|
||||
*
|
||||
* Signal that a new bufferlist 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.
|
||||
*
|
||||
* The new buffer can be retrieved with the "pull-buffer-list" action
|
||||
* signal or gst_app_sink_pull_buffer_list() either from this signal callback
|
||||
* 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.
|
||||
*/
|
||||
gst_app_sink_signals[SIGNAL_NEW_BUFFER_LIST] =
|
||||
|
@ -1066,7 +1066,7 @@ gst_app_sink_set_emit_signals (GstAppSink * appsink, gboolean emit)
|
|||
*
|
||||
* Check if appsink will emit the "new-preroll" and "new-buffer" signals.
|
||||
*
|
||||
* Returns: %TRUE if @appsink is emiting the "new-preroll" and "new-buffer"
|
||||
* Returns: %TRUE if @appsink is emitting the "new-preroll" and "new-buffer"
|
||||
* signals.
|
||||
*
|
||||
* Since: 0.10.22
|
||||
|
@ -1339,7 +1339,7 @@ gst_app_sink_pull_buffer_list (GstAppSink * appsink)
|
|||
* This is an alternative to using the signals, it has lower overhead and is thus
|
||||
* 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.
|
||||
*
|
||||
* Since: 0.10.23
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
* byte buffers.
|
||||
*
|
||||
* 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
|
||||
* streaming thread. It is important to note that data transport will not happen
|
||||
* from the thread that performed the push-buffer call.
|
||||
|
@ -49,7 +49,7 @@
|
|||
* 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
|
||||
* 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.
|
||||
*
|
||||
* 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
|
||||
* 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 the enough-data and need-data signals by respectively stopping/starting
|
||||
* the push-buffer calls. This is a typical mode of operation for the
|
||||
|
@ -333,7 +333,7 @@ gst_app_src_class_init (GstAppSrcClass * klass)
|
|||
/**
|
||||
* 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
|
||||
* below the max-bytes limit.
|
||||
*/
|
||||
|
@ -406,7 +406,7 @@ gst_app_src_class_init (GstAppSrcClass * klass)
|
|||
|
||||
/**
|
||||
* 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.
|
||||
*
|
||||
* Signal that the source needs more data. In the callback or from another
|
||||
|
@ -425,11 +425,11 @@ gst_app_src_class_init (GstAppSrcClass * klass)
|
|||
|
||||
/**
|
||||
* 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
|
||||
* 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] =
|
||||
g_signal_new ("enough-data", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
|
||||
|
@ -438,7 +438,7 @@ gst_app_src_class_init (GstAppSrcClass * klass)
|
|||
|
||||
/**
|
||||
* 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
|
||||
*
|
||||
* Seek to the given offset. The next push-buffer should produce buffers from
|
||||
|
@ -1010,7 +1010,7 @@ gst_app_src_create (GstBaseSrc * bsrc, guint64 offset, guint size,
|
|||
* 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
|
||||
* when the application pushes the requested buffer later, we support both
|
||||
* possiblities. */
|
||||
* possibilities. */
|
||||
if (!g_queue_is_empty (priv->queue))
|
||||
continue;
|
||||
|
||||
|
@ -1391,7 +1391,7 @@ gst_app_src_set_emit_signals (GstAppSrc * appsrc, gboolean emit)
|
|||
*
|
||||
* 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.
|
||||
*
|
||||
* Since: 0.10.23
|
||||
|
@ -1588,7 +1588,7 @@ flushing:
|
|||
* This is an alternative to using the signals, it has lower overhead and is thus
|
||||
* 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.
|
||||
*
|
||||
* 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.
|
||||
* @enough_data: Called when appsrc has enough data. It is recommended that the
|
||||
* 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.
|
||||
* The next push-buffer should produce buffers from the new @offset.
|
||||
* This callback is only called for seekable stream types.
|
||||
|
|
|
@ -708,7 +708,7 @@ done:
|
|||
* @rate: sample rate.
|
||||
* @frame_size: size of one audio frame in bytes.
|
||||
*
|
||||
* 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
|
||||
* @buffer anymore.
|
||||
|
|
|
@ -2009,7 +2009,7 @@ gst_audio_encoder_set_perfect_timestamp (GstAudioEncoder * enc,
|
|||
*
|
||||
* Queries encoder perfect timestamp behaviour.
|
||||
*
|
||||
* Returns: TRUE if pefect timestamp setting enabled.
|
||||
* Returns: TRUE if perfect timestamp setting enabled.
|
||||
*
|
||||
* MT safe.
|
||||
*
|
||||
|
|
|
@ -342,7 +342,7 @@ gst_base_audio_sink_init (GstBaseAudioSink * baseaudiosink,
|
|||
if (feature) {
|
||||
if (strcmp (gst_plugin_feature_get_name (feature), "pulsesink") == 0) {
|
||||
if (!gst_plugin_feature_check_version (feature, 0, 10, 17)) {
|
||||
/* we're dealing with an old pulsesink, we need to disable time corection */
|
||||
/* we're dealing with an old pulsesink, we need to disable time correction */
|
||||
GST_DEBUG ("disable time offset");
|
||||
baseaudiosink->priv->do_time_offset = FALSE;
|
||||
}
|
||||
|
@ -2119,7 +2119,7 @@ gst_base_audio_sink_async_play (GstBaseSink * basesink)
|
|||
sink->priv->sync_latency = TRUE;
|
||||
gst_ring_buffer_may_start (sink->ringbuffer, TRUE);
|
||||
if (basesink->pad_mode == GST_ACTIVATE_PULL) {
|
||||
/* we always start the ringbuffer in pull mode immediatly */
|
||||
/* we always start the ringbuffer in pull mode immediately */
|
||||
gst_ring_buffer_start (sink->ringbuffer);
|
||||
}
|
||||
|
||||
|
@ -2173,7 +2173,7 @@ gst_base_audio_sink_change_state (GstElement * element,
|
|||
gst_ring_buffer_may_start (sink->ringbuffer, TRUE);
|
||||
if (GST_BASE_SINK_CAST (sink)->pad_mode == GST_ACTIVATE_PULL ||
|
||||
g_atomic_int_get (&sink->abidata.ABI.eos_rendering) || eos) {
|
||||
/* we always start the ringbuffer in pull mode immediatly */
|
||||
/* we always start the ringbuffer in pull mode immediately */
|
||||
/* sync rendering on eos needs running clock,
|
||||
* and others need running clock when finished rendering eos */
|
||||
gst_ring_buffer_start (sink->ringbuffer);
|
||||
|
@ -2241,7 +2241,7 @@ gst_base_audio_sink_change_state (GstElement * element,
|
|||
/* ERRORS */
|
||||
open_failed:
|
||||
{
|
||||
/* subclass must post a meaningfull error message */
|
||||
/* subclass must post a meaningful error message */
|
||||
GST_DEBUG_OBJECT (sink, "open failed");
|
||||
return GST_STATE_CHANGE_FAILURE;
|
||||
}
|
||||
|
|
|
@ -895,7 +895,7 @@ gst_base_audio_src_create (GstBaseSrc * bsrc, guint64 offset, guint length,
|
|||
running_time_sample =
|
||||
gst_util_uint64_scale_int (running_time, spec->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;
|
||||
|
||||
/* the segment currently read from the ringbuffer */
|
||||
|
@ -921,7 +921,7 @@ gst_base_audio_src_create (GstBaseSrc * bsrc, guint64 offset, guint length,
|
|||
*
|
||||
* 1. We are more than the length of the ringbuffer behind.
|
||||
* 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.
|
||||
* We know that we should catch up to running_time
|
||||
|
@ -1152,7 +1152,7 @@ gst_base_audio_src_change_state (GstElement * element,
|
|||
/* ERRORS */
|
||||
open_failed:
|
||||
{
|
||||
/* subclass must post a meaningfull error message */
|
||||
/* subclass must post a meaningful error message */
|
||||
GST_DEBUG_OBJECT (src, "open failed");
|
||||
return GST_STATE_CHANGE_FAILURE;
|
||||
}
|
||||
|
|
|
@ -1771,7 +1771,7 @@ not_started:
|
|||
*
|
||||
* 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
|
||||
* @in_samples positive.
|
||||
*
|
||||
|
|
|
@ -104,7 +104,7 @@ void gst_audio_set_caps_channel_positions_list
|
|||
gint num_positions);
|
||||
|
||||
/* 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
|
||||
* care of equal channel positioning (left/right). Caller g_free()s
|
||||
* the return value. The input properties may be (and are supposed
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
*
|
||||
* #GstFFTF32 provides a FFT implementation and related functions 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
|
||||
* FFT or inverse FFT on a buffer of samples.
|
||||
*
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
*
|
||||
* #GstFFTF64 provides a FFT implementation and related functions 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
|
||||
* FFT or inverse FFT on a buffer of samples.
|
||||
*
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
*
|
||||
* #GstFFTS16 provides a FFT implementation and related functions 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
|
||||
* FFT or inverse FFT on a buffer of samples.
|
||||
*
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
*
|
||||
* #GstFFTS32 provides a FFT implementation and related functions 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
|
||||
* 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.
|
||||
* </para><para>
|
||||
* 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>
|
||||
* </listitem>
|
||||
* </itemizedlist>
|
||||
|
|
|
@ -501,7 +501,7 @@ gst_x_overlay_expose (GstXOverlay * overlay)
|
|||
* @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
|
||||
* 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
|
||||
* for them. This method allows you to disable events handling completely
|
||||
* from the XOverlay.
|
||||
|
|
|
@ -288,7 +288,7 @@ gst_netaddress_get_address_bytes (const GstNetAddress * naddr,
|
|||
* Set just the address bytes stored in @naddr into @address.
|
||||
*
|
||||
* Note that @port must be expressed in network byte order, use g_htons() to
|
||||
* convert it to network byte order order. IP4 address bytes must also be
|
||||
* convert it to network byte order. IP4 address bytes must also be
|
||||
* stored in network byte order.
|
||||
*
|
||||
* Returns: number of bytes actually copied
|
||||
|
|
|
@ -152,7 +152,7 @@ static const FormatInfo formats[] = {
|
|||
{"video/sp5x", "Sunplus JPEG 5.x", 0},
|
||||
{"video/vivo", "Vivo", 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-aasc", "Autodesk Animator", 0},
|
||||
{"video/x-camtasia", "TechSmith Camtasia", 0},
|
||||
|
|
|
@ -531,7 +531,7 @@ gst_encoding_video_profile_set_pass (GstEncodingVideoProfile * prof, guint pass)
|
|||
* @prof: a #GstEncodingVideoProfile
|
||||
* @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
|
||||
* be normalized by dropping/duplicating frames in order to produce a
|
||||
* constance framerate.
|
||||
|
|
|
@ -36,7 +36,7 @@ G_BEGIN_DECLS
|
|||
* GST_ENCODING_CATEGORY_DEVICE:
|
||||
*
|
||||
* #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.
|
||||
*/
|
||||
#define GST_ENCODING_CATEGORY_DEVICE "device"
|
||||
|
|
|
@ -1018,7 +1018,7 @@ DISCOVERER_INFO_ACCESSOR_CODE (duration, GstClockTime, GST_CLOCK_TIME_NONE);
|
|||
* gst_discoverer_info_get_seekable:
|
||||
* @info: a #GstDiscovererInfo
|
||||
*
|
||||
* Returns: the wheter the URI is seekable.
|
||||
* Returns: the whether the URI is seekable.
|
||||
*
|
||||
* Since: 0.10.32
|
||||
*/
|
||||
|
|
|
@ -1467,7 +1467,7 @@ gst_discoverer_stop (GstDiscoverer * discoverer)
|
|||
* A copy of @uri will be made internally, so the caller can safely g_free()
|
||||
* 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
|
||||
*
|
||||
* Since: 0.10.31
|
||||
|
|
|
@ -839,7 +839,7 @@ gst_base_rtp_audio_payload_handle_buffer (GstBaseRTPPayload *
|
|||
GstClockTime diff;
|
||||
guint64 bytes;
|
||||
/* 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 */
|
||||
diff = timestamp - priv->last_timestamp;
|
||||
bytes = priv->time_to_bytes (payload, diff);
|
||||
|
|
|
@ -599,7 +599,7 @@ gst_rtcp_packet_get_length (GstRTCPPacket * packet)
|
|||
* @ntptime: result NTP time
|
||||
* @rtptime: result RTP time
|
||||
* @packet_count: result packet count
|
||||
* @octet_count: result octect count
|
||||
* @octet_count: result octet count
|
||||
*
|
||||
* Parse the SR sender info and store the values.
|
||||
*/
|
||||
|
@ -641,7 +641,7 @@ gst_rtcp_packet_sr_get_sender_info (GstRTCPPacket * packet, guint32 * ssrc,
|
|||
* @ntptime: the NTP time
|
||||
* @rtptime: the RTP time
|
||||
* @packet_count: the packet count
|
||||
* @octet_count: the octect count
|
||||
* @octet_count: the octet count
|
||||
*
|
||||
* Set the given values in the SR packet @packet.
|
||||
*/
|
||||
|
@ -1137,7 +1137,7 @@ gst_rtcp_packet_sdes_next_entry (GstRTCPPacket * packet)
|
|||
*
|
||||
* When @type refers to a text item, @data will point to a UTF8 string. Note
|
||||
* 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.
|
||||
*/
|
||||
|
|
|
@ -323,7 +323,7 @@ validate_data (guint8 * data, guint len, guint8 * payload, guint payload_len)
|
|||
guint8 *extpos;
|
||||
guint16 extlen;
|
||||
|
||||
/* this points to the extenstion bits and header length */
|
||||
/* this points to the extension bits and header length */
|
||||
extpos = &data[header_len];
|
||||
|
||||
/* skip the header and check that we have enough space */
|
||||
|
|
|
@ -1907,7 +1907,7 @@ build_next (GstRTSPBuilder * builder, GstRTSPMessage * message,
|
|||
goto done;
|
||||
|
||||
/* 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,
|
||||
(guint8 *) builder->body_data, builder->body_len + 1);
|
||||
builder->body_data = NULL;
|
||||
|
|
|
@ -263,7 +263,7 @@ gst_rtsp_range_to_string (const GstRTSPTimeRange * range)
|
|||
* gst_rtsp_range_free:
|
||||
* @range: a #GstRTSPTimeRange
|
||||
*
|
||||
* Free the memory alocated by @range.
|
||||
* Free the memory allocated by @range.
|
||||
*/
|
||||
void
|
||||
gst_rtsp_range_free (GstRTSPTimeRange * range)
|
||||
|
|
|
@ -1523,7 +1523,7 @@ write_exif_ifd (const GstTagList * taglist, gboolean byte_order,
|
|||
else
|
||||
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 */
|
||||
gst_exif_tag_rewrite_offsets (&writer.tagwriter, writer.byte_order,
|
||||
|
@ -2000,7 +2000,7 @@ deserialize_geo_coordinate (GstExifReader * exif_reader,
|
|||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -604,7 +604,7 @@ gst_tag_to_metadata_block_picture (const gchar * tag,
|
|||
* Creates a new tag list that contains the information parsed out of a
|
||||
* 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)
|
||||
*/
|
||||
GList *
|
||||
|
|
|
@ -1403,7 +1403,7 @@ gst_tag_list_from_xmp_buffer (const GstBuffer * buffer)
|
|||
}
|
||||
} else {
|
||||
XmpTag *xmp_tag = NULL;
|
||||
/* FIXME: eventualy rewrite ns
|
||||
/* FIXME: eventually rewrite ns
|
||||
* find ':'
|
||||
* check if ns before ':' is in ns_map and ns_map[i].gstreamer_ns!=NULL
|
||||
* do 2 stage filter in tag_matches
|
||||
|
@ -1459,7 +1459,7 @@ gst_tag_list_from_xmp_buffer (const GstBuffer * buffer)
|
|||
<dc:type><rdf:Bag><rdf:li>Image</rdf:li></rdf:Bag></dc:type>
|
||||
<dc:creator><rdf:Seq><rdf:li/></rdf:Seq></dc:creator>
|
||||
*/
|
||||
/* FIXME: eventualy rewrite ns */
|
||||
/* FIXME: eventually rewrite ns */
|
||||
|
||||
/* skip rdf tags for now */
|
||||
if (strncmp (part, "rdf:", 4)) {
|
||||
|
@ -1840,7 +1840,7 @@ gst_tag_list_to_xmp_buffer_full (const GstTagList * list, gboolean read_only,
|
|||
g_string_append (data, "</x:xmpmeta>\n");
|
||||
|
||||
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;
|
||||
|
||||
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,
|
||||
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
|
||||
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:
|
||||
|
||||
$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
|
||||
$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.
|
||||
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
|
||||
$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.
|
||||
|
||||
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
|
||||
$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.
|
||||
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
|
||||
|
@ -1463,7 +1463,7 @@ frame in each tag.
|
|||
4.20. Audio encryption
|
||||
|
||||
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
|
||||
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.
|
||||
|
|
|
@ -255,7 +255,7 @@ Abstract
|
|||
one text information frame of its kind in an tag. All text
|
||||
information frames supports multiple strings, stored as a null
|
||||
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
|
||||
"TXXX" frame. All the text information frames have the following
|
||||
format:
|
||||
|
|
|
@ -411,7 +411,7 @@ Abstract
|
|||
byte indicates that extra information is added to the header. These
|
||||
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
|
||||
ther resemblence to one and zero):
|
||||
their resemblence to one and zero):
|
||||
|
||||
%0abc0000 %0h00kmnp
|
||||
|
||||
|
|
|
@ -1172,7 +1172,7 @@ gst_adder_collected (GstCollectPads * pads, gpointer user_data)
|
|||
* - 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
|
||||
* event. We also adjust offset & timestamp acordingly.
|
||||
* event. We also adjust offset & timestamp accordingly.
|
||||
* This basically ignores all newsegments sent by upstream.
|
||||
*/
|
||||
event = gst_event_new_new_segment_full (FALSE, adder->segment_rate,
|
||||
|
|
|
@ -280,7 +280,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 (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. */
|
||||
|
||||
/***
|
||||
|
@ -650,7 +650,7 @@ audio_convert_prepare_context (AudioConvertCtx * ctx, AudioConvertFmt * in,
|
|||
ctx->pack = pack_funcs[idx_out];
|
||||
|
||||
/* 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)) {
|
||||
GST_INFO ("use int mixing");
|
||||
ctx->channel_mix = (AudioConvertMix) gst_channel_mix_mix_int;
|
||||
|
|
|
@ -649,7 +649,7 @@ gst_audio_rate_chain (GstPad * pad, GstBuffer * buf)
|
|||
GST_BUFFER_OFFSET_END (fill) = audiorate->next_offset;
|
||||
|
||||
/* 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 */
|
||||
GST_BUFFER_TIMESTAMP (fill) = audiorate->next_ts;
|
||||
audiorate->next_ts = gst_util_uint64_scale_int (audiorate->next_offset,
|
||||
|
|
|
@ -103,7 +103,7 @@ GST_STATIC_CAPS ( \
|
|||
"signed = (boolean) true" \
|
||||
)
|
||||
|
||||
/* 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
|
||||
static gboolean gst_audio_resample_use_int = TRUE;
|
||||
#elif defined AUDIORESAMPLE_FORMAT_FLOAT
|
||||
|
@ -187,7 +187,7 @@ gst_audio_resample_class_init (GstAudioResampleClass * klass)
|
|||
*
|
||||
* Length of the resample filter
|
||||
*
|
||||
* Deprectated: Use #GstAudioResample:quality property instead
|
||||
* Deprecated: Use #GstAudioResample:quality property instead
|
||||
*/
|
||||
g_object_class_install_property (gobject_class, PROP_FILTER_LENGTH,
|
||||
g_param_spec_int ("filter-length", "Filter length",
|
||||
|
@ -1554,7 +1554,7 @@ _benchmark_integer_resampling (void)
|
|||
resample_int_resampler_destroy (stb);
|
||||
|
||||
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
|
||||
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]);
|
||||
|
||||
/* 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.
|
||||
spx_word32_t accum[4] = {0,0,0,0};
|
||||
for(j=0;j<N;j+=4) {
|
||||
|
|
|
@ -331,7 +331,7 @@ resync:
|
|||
|
||||
if (res) {
|
||||
/* 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;
|
||||
goto beach;
|
||||
}
|
||||
|
|
|
@ -139,8 +139,8 @@ typedef struct AVCodecContext {
|
|||
/* video only */
|
||||
/**
|
||||
* frames per sec multiplied by frame_rate_base.
|
||||
* for variable fps this is the precission, so if the timestamps
|
||||
* can be specified in msec precssion then this is 1000*frame_rate_base
|
||||
* for variable fps this is the precision, so if the timestamps
|
||||
* can be specified in msec precision then this is 1000*frame_rate_base
|
||||
* - encoding: MUST be set by user
|
||||
* - decoding: set by lavc. 0 or the frame_rate if available
|
||||
*/
|
||||
|
|
|
@ -151,7 +151,7 @@ gst_ff_aud_caps_new (AVCodecContext * context, const char *mimetype,
|
|||
}
|
||||
|
||||
/* Convert a FFMPEG Pixel Format and optional AVCodecContext
|
||||
* to a GstCaps. If the context is ommitted, no fixed values
|
||||
* to a GstCaps. If the context is omitted, no fixed values
|
||||
* for video/audio size will be included in the GstCaps
|
||||
*
|
||||
* See below for usefulness
|
||||
|
@ -453,7 +453,7 @@ gst_ffmpeg_pixfmt_to_caps (enum PixelFormat pix_fmt, AVCodecContext * context)
|
|||
}
|
||||
|
||||
/* Convert a FFMPEG Sample Format and optional AVCodecContext
|
||||
* to a GstCaps. If the context is ommitted, no fixed values
|
||||
* to a GstCaps. If the context is omitted, no fixed values
|
||||
* for video/audio size will be included in the GstCaps
|
||||
*
|
||||
* See below for usefulness
|
||||
|
@ -496,7 +496,7 @@ gst_ffmpeg_smpfmt_to_caps (enum SampleFormat sample_fmt,
|
|||
}
|
||||
|
||||
/* Convert a FFMPEG codec Type and optional AVCodecContext
|
||||
* to a GstCaps. If the context is ommitted, no fixed values
|
||||
* to a GstCaps. If the context is omitted, no fixed values
|
||||
* for video/audio size will be included in the GstCaps
|
||||
*
|
||||
* CodecType is primarily meant for uncompressed data GstCaps!
|
||||
|
@ -787,7 +787,7 @@ gst_ffmpeg_caps_to_pixfmt (const GstCaps * caps,
|
|||
}
|
||||
|
||||
/* Convert a GstCaps and a FFMPEG codec Type to a
|
||||
* AVCodecContext. If the context is ommitted, no fixed values
|
||||
* AVCodecContext. If the context is omitted, no fixed values
|
||||
* for video/audio size will be included in the context
|
||||
*
|
||||
* CodecType is primarily meant for uncompressed data GstCaps!
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Misc image convertion routines
|
||||
* Misc image conversion routines
|
||||
* Copyright (c) 2001, 2002, 2003 Fabrice Bellard.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
|
@ -19,7 +19,7 @@
|
|||
|
||||
/**
|
||||
* @file imgconvert.c
|
||||
* Misc image convertion routines.
|
||||
* Misc image conversion routines.
|
||||
*/
|
||||
|
||||
/* TODO:
|
||||
|
@ -3079,7 +3079,7 @@ typedef struct ConvertEntry
|
|||
const AVPicture * src, int width, int height);
|
||||
} ConvertEntry;
|
||||
|
||||
/* Add each new convertion function in this table. In order to be able
|
||||
/* Add each new conversion function in this table. In order to be able
|
||||
to convert from any format to any format, the following constraints
|
||||
must be satisfied:
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Templates for image convertion routines
|
||||
* Templates for image conversion routines
|
||||
* Copyright (c) 2001, 2002, 2003 Fabrice Bellard.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
|
|
|
@ -111,7 +111,7 @@ av_realloc (void *ptr, unsigned int size)
|
|||
#endif
|
||||
}
|
||||
|
||||
/* NOTE: ptr = NULL is explicetly allowed */
|
||||
/* NOTE: ptr = NULL is explictly allowed */
|
||||
void
|
||||
av_free (void *ptr)
|
||||
{
|
||||
|
|
|
@ -48,7 +48,7 @@ playbasebin:
|
|||
is particulary important for chained oggs. Initially, a new group is created in
|
||||
the 'building' state. All new streams will be added to the building group until
|
||||
no-more-pads is signaled or one of the preroll queues overflows. When this happens,
|
||||
the group is commited to a list of groups ready for playback. PlaybaseBin will then
|
||||
the group is committed to a list of groups ready for playback. PlaybaseBin will then
|
||||
attach a padprobe to each stream to figure out when it finished. It will remove
|
||||
the current group and install the next playable group, then.
|
||||
|
||||
|
@ -73,7 +73,7 @@ playbin:
|
|||
stream detected. implements seeking and querying on the configured sinks.
|
||||
|
||||
It also waits for new notifications from playbasebin about any new groups that are
|
||||
becomming active. It then disconnects the sinks and reconnects them to the new
|
||||
becoming active. It then disconnects the sinks and reconnects them to the new
|
||||
pads in the group.
|
||||
|
||||
TODO
|
||||
|
|
|
@ -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
|
||||
* see if some of the queues are filled and increase their values
|
||||
* 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
|
||||
* is different from the pad_added (where we add the queue to 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
|
||||
* 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. */
|
||||
more = g_list_length (to_connect) > 1;
|
||||
|
||||
|
|
|
@ -166,7 +166,7 @@ struct _GstDecodeBin
|
|||
gboolean have_type; /* if we received the have_type signal */
|
||||
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 */
|
||||
gboolean shutdown; /* if we are shutting down */
|
||||
|
@ -688,7 +688,7 @@ gst_decode_bin_class_init (GstDecodeBinClass * klass)
|
|||
* @pad: The #GstPad.
|
||||
* @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. Decodebin2 will by default return an array with all
|
||||
* compatible factories, sorted by rank.
|
||||
*
|
||||
|
@ -722,7 +722,7 @@ gst_decode_bin_class_init (GstDecodeBinClass * klass)
|
|||
* @factories: A #GValueArray of possible #GstElementFactory to use.
|
||||
*
|
||||
* Once decodebin2 has found the possible #GstElementFactory objects to try
|
||||
* for @caps on @pad, this signal is emited. The purpose of the signal is for
|
||||
* for @caps on @pad, this signal is emitted. The purpose of the signal is for
|
||||
* the application to perform additional sorting or filtering on the element
|
||||
* factory array.
|
||||
*
|
||||
|
@ -755,7 +755,7 @@ gst_decode_bin_class_init (GstDecodeBinClass * klass)
|
|||
*
|
||||
* This signal is emitted once decodebin2 has found all the possible
|
||||
* #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
|
||||
* value indicating what decodebin2 should do next.
|
||||
|
@ -856,7 +856,7 @@ gst_decode_bin_class_init (GstDecodeBinClass * klass)
|
|||
/**
|
||||
* GstDecodebin2: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
|
||||
*/
|
||||
|
@ -868,7 +868,7 @@ gst_decode_bin_class_init (GstDecodeBinClass * klass)
|
|||
/**
|
||||
* GstDecodebin2: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
|
||||
*/
|
||||
|
@ -880,7 +880,7 @@ gst_decode_bin_class_init (GstDecodeBinClass * klass)
|
|||
/**
|
||||
* GstDecodebin2: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
|
||||
*/
|
||||
|
@ -3637,7 +3637,7 @@ gst_decode_bin_expose (GstDecodeBin * dbin)
|
|||
|
||||
/* 4. Signal no-more-pads. This allows the application to hook stuff to the
|
||||
* 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));
|
||||
|
||||
/* 5. Send a custom element message with the stream topology */
|
||||
|
|
|
@ -705,7 +705,7 @@ queue_threshold_reached (GstElement * queue, GstPlayBaseBin * play_base_bin)
|
|||
/* this signal will be fired when one of the queues with raw
|
||||
* data is filled. This means that the group building stage is over
|
||||
* and playback of the new queued group should start. This is a rather unusual
|
||||
* situation because normally the group is commited when the "no_more_pads"
|
||||
* situation because normally the group is committed when the "no_more_pads"
|
||||
* signal is fired.
|
||||
*/
|
||||
static void
|
||||
|
@ -732,11 +732,11 @@ queue_out_of_data (GstElement * queue, GstPlayBaseBin * play_base_bin)
|
|||
GST_DEBUG_OBJECT (play_base_bin, "underrun signal received from queue %s",
|
||||
GST_ELEMENT_NAME (queue));
|
||||
|
||||
/* On underrun, we want to temoprarily pause playback, set a "min-size"
|
||||
/* On underrun, we want to temporarily pause playback, set a "min-size"
|
||||
* threshold and wait for the running signal and then play again.
|
||||
*
|
||||
* This signal could never be called because the queue max-size limits are set
|
||||
* too low. We take care of this possible deadlock in the the overrun signal
|
||||
* too low. We take care of this possible deadlock in the overrun signal
|
||||
* handler. */
|
||||
g_signal_connect (G_OBJECT (queue), "pushing",
|
||||
G_CALLBACK (queue_threshold_reached), play_base_bin);
|
||||
|
@ -889,7 +889,7 @@ gen_preroll_element (GstPlayBaseBin * play_base_bin,
|
|||
|
||||
gst_object_unref (sinkpad);
|
||||
|
||||
/* When we connect this queue, it will start running and immediatly
|
||||
/* When we connect this queue, it will start running and immediately
|
||||
* fire an underrun. */
|
||||
g_signal_connect (G_OBJECT (preroll), "underrun",
|
||||
G_CALLBACK (queue_out_of_data), play_base_bin);
|
||||
|
@ -1894,7 +1894,7 @@ analyse_source (GstPlayBaseBin * play_base_bin, gboolean * is_raw,
|
|||
gst_iterator_resync (pads_iter);
|
||||
break;
|
||||
case GST_ITERATOR_OK:
|
||||
/* we now officially have an ouput pad */
|
||||
/* we now officially have an output pad */
|
||||
*have_out = TRUE;
|
||||
|
||||
/* if FALSE, this pad has no caps and we continue with the next pad. */
|
||||
|
|
|
@ -108,7 +108,7 @@ struct _GstPlayBaseBin {
|
|||
struct _GstPlayBaseBinClass {
|
||||
GstPipelineClass parent_class;
|
||||
|
||||
/* virtual fuctions */
|
||||
/* virtual functions */
|
||||
gboolean (*setup_output_pads) (GstPlayBaseBin *play_base_bin,
|
||||
GstPlayBaseGroup *group);
|
||||
|
||||
|
|
|
@ -116,7 +116,7 @@
|
|||
* GNOME-based applications, for example, will usually want to create
|
||||
* gconfaudiosink and gconfvideosink elements and make playbin use those,
|
||||
* so that output happens to whatever the user has configured in the GNOME
|
||||
* Multimedia System Selector confinguration dialog.
|
||||
* Multimedia System Selector configuration dialog.
|
||||
*
|
||||
* The sink elements do not necessarily need to be ready-made sinks. It is
|
||||
* possible to create container elements that look like a sink to playbin,
|
||||
|
@ -1207,7 +1207,7 @@ link_failed:
|
|||
}
|
||||
|
||||
/* make the element (bin) that contains the elements needed to perform
|
||||
* visualisation ouput. The idea is to split the audio using tee, then
|
||||
* visualisation output. The idea is to split the audio using tee, then
|
||||
* sending the output to the regular audio bin and the other output to
|
||||
* the vis plugin that transforms it into a video that is rendered with the
|
||||
* normal video bin. The video and audio bins are run in threads to make sure
|
||||
|
@ -1519,7 +1519,7 @@ add_sink (GstPlayBin * play_bin, GstElement * sink, GstPad * srcpad,
|
|||
goto subtitle_failed;
|
||||
|
||||
done:
|
||||
/* we got the sink succesfully linked, now keep the sink
|
||||
/* we got the sink successfully linked, now keep the sink
|
||||
* in our internal list */
|
||||
play_bin->sinks = g_list_prepend (play_bin->sinks, sink);
|
||||
|
||||
|
@ -1791,7 +1791,7 @@ gst_play_bin_send_event_to_sink (GstPlayBin * play_bin, GstEvent * event)
|
|||
gst_event_ref (event);
|
||||
if ((res = gst_element_send_event (sink, event))) {
|
||||
GST_DEBUG_OBJECT (play_bin,
|
||||
"Sent event succesfully to sink %" GST_PTR_FORMAT, sink);
|
||||
"Sent event successfully to sink %" GST_PTR_FORMAT, sink);
|
||||
break;
|
||||
}
|
||||
GST_DEBUG_OBJECT (play_bin,
|
||||
|
|
|
@ -1128,7 +1128,7 @@ init_group (GstPlayBin * playbin, GstSourceGroup * group)
|
|||
* matches the media. */
|
||||
group->playbin = playbin;
|
||||
/* 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) */
|
||||
group->selector[PLAYBIN_STREAM_AUDIO].media_list[0] = "audio/";
|
||||
group->selector[PLAYBIN_STREAM_AUDIO].type = GST_PLAY_SINK_TYPE_AUDIO;
|
||||
|
@ -3114,7 +3114,7 @@ autoplug_factories_cb (GstElement * decodebin, GstPad * pad,
|
|||
* supported subtitles directly */
|
||||
|
||||
/* 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 */
|
||||
static gboolean
|
||||
autoplug_continue_cb (GstElement * element, GstPad * pad, GstCaps * caps,
|
||||
|
|
|
@ -3337,7 +3337,7 @@ gst_play_sink_send_event_to_sink (GstPlaySink * playsink, GstEvent * event)
|
|||
if (playsink->textchain && playsink->textchain->sink) {
|
||||
gst_event_ref (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 {
|
||||
GST_DEBUG_OBJECT (playsink, "Event failed when sent to text sink");
|
||||
}
|
||||
|
@ -3346,7 +3346,7 @@ gst_play_sink_send_event_to_sink (GstPlaySink * playsink, GstEvent * event)
|
|||
if (playsink->videochain) {
|
||||
gst_event_ref (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;
|
||||
}
|
||||
GST_DEBUG_OBJECT (playsink, "Event failed when sent to video sink");
|
||||
|
@ -3354,7 +3354,7 @@ gst_play_sink_send_event_to_sink (GstPlaySink * playsink, GstEvent * event)
|
|||
if (playsink->audiochain) {
|
||||
gst_event_ref (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;
|
||||
}
|
||||
GST_DEBUG_OBJECT (playsink, "Event failed when sent to audio sink");
|
||||
|
|
|
@ -105,7 +105,7 @@ struct _GstURIDecodeBin
|
|||
guint src_nmp_sig_id; /* no-more-pads signal id */
|
||||
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 */
|
||||
|
||||
|
@ -132,7 +132,7 @@ struct _GstURIDecodeBinClass
|
|||
GstAutoplugSelectResult (*autoplug_select) (GstElement * element,
|
||||
GstPad * pad, GstCaps * caps, GstElementFactory * factory);
|
||||
|
||||
/* emited when all data is decoded */
|
||||
/* emitted when all data is decoded */
|
||||
void (*drained) (GstElement * element);
|
||||
};
|
||||
|
||||
|
@ -513,7 +513,7 @@ gst_uri_decode_bin_class_init (GstURIDecodeBinClass * klass)
|
|||
* @pad: The #GstPad.
|
||||
* @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
|
||||
* compatible factories, sorted by rank.
|
||||
*
|
||||
|
@ -547,7 +547,7 @@ gst_uri_decode_bin_class_init (GstURIDecodeBinClass * klass)
|
|||
* @factories: A #GValueArray of possible #GstElementFactory to use.
|
||||
*
|
||||
* Once decodebin2 has found the possible #GstElementFactory objects to try
|
||||
* for @caps on @pad, this signal is emited. The purpose of the signal is for
|
||||
* for @caps on @pad, this signal is emitted. The purpose of the signal is for
|
||||
* the application to perform additional sorting or filtering on the element
|
||||
* factory array.
|
||||
*
|
||||
|
@ -582,7 +582,7 @@ gst_uri_decode_bin_class_init (GstURIDecodeBinClass * klass)
|
|||
*
|
||||
* This signal is emitted once uridecodebin has found all the possible
|
||||
* #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
|
||||
* value indicating what decodebin2 should do next.
|
||||
|
@ -1399,7 +1399,7 @@ analyse_source (GstURIDecodeBin * decoder, gboolean * is_raw,
|
|||
gst_iterator_resync (pads_iter);
|
||||
break;
|
||||
case GST_ITERATOR_OK:
|
||||
/* we now officially have an ouput pad */
|
||||
/* we now officially have an output pad */
|
||||
*have_out = TRUE;
|
||||
|
||||
/* if FALSE, this pad has no caps and we continue with the next pad. */
|
||||
|
|
|
@ -67,7 +67,7 @@
|
|||
* 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
|
||||
* 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.
|
||||
* These properties are useful if the application adds clients with the
|
||||
* #GstMultiFdSink::add-full signal to make sure that a burst connect can
|
||||
|
@ -927,7 +927,7 @@ duplicate:
|
|||
}
|
||||
}
|
||||
|
||||
/* "add" signal implemntation */
|
||||
/* "add" signal implementation */
|
||||
void
|
||||
gst_multi_fd_sink_add (GstMultiFdSink * sink, int fd)
|
||||
{
|
||||
|
@ -2248,7 +2248,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
|
||||
* 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.
|
||||
*/
|
||||
static void
|
||||
|
@ -2452,7 +2452,7 @@ gst_multi_fd_sink_handle_clients (GstMultiFdSink * sink)
|
|||
GST_CLOCK_TIME_NONE);
|
||||
|
||||
/* 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)) {
|
||||
GstClockTime now;
|
||||
GTimeVal nowtv;
|
||||
|
|
|
@ -116,7 +116,7 @@ gst_tcp_socket_write (int socket, const void *buf, size_t count)
|
|||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -1061,7 +1061,7 @@ mp3_type_frame_length_from_header (guint32 header, guint * put_layer,
|
|||
/* bitrate index */
|
||||
bitrate = header & 0xF;
|
||||
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;
|
||||
}
|
||||
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 };
|
||||
|
||||
/* 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
|
||||
* 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 */
|
||||
|
@ -1607,7 +1607,7 @@ dts_type_find (GstTypeFind * tf, gpointer unused)
|
|||
{
|
||||
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
|
||||
* frame is followed by a second frame at the expected offset. */
|
||||
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 */
|
||||
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) {
|
||||
bad++;
|
||||
break;
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
/**
|
||||
* 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"
|
||||
* property.
|
||||
*
|
||||
|
|
|
@ -131,7 +131,7 @@ else
|
|||
echo "*** The FreeType test program failed to run. If your system uses"
|
||||
echo "*** shared libraries and they are installed outside the normal"
|
||||
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
|
||||
FT2_CFLAGS=""
|
||||
|
|
|
@ -167,7 +167,7 @@ gst_v4lmjpegsrc_set_capture (GstV4lMjpegSrc * v4lmjpegsrc,
|
|||
bparm.quality = quality;
|
||||
bparm.norm = norm;
|
||||
bparm.input = input;
|
||||
bparm.APP_len = 0; /* no JPEG markers - TODO: this is definately not right for decimation==1 */
|
||||
bparm.APP_len = 0; /* no JPEG markers - TODO: this is definitely not right for decimation==1 */
|
||||
|
||||
mw = GST_V4LELEMENT (v4lmjpegsrc)->vcap.maxwidth;
|
||||
if (mw != 768 && mw != 640) {
|
||||
|
@ -235,7 +235,7 @@ gst_v4lmjpegsrc_set_capture_m (GstV4lMjpegSrc * v4lmjpegsrc,
|
|||
bparm.quality = quality;
|
||||
bparm.norm = norm;
|
||||
bparm.input = input;
|
||||
bparm.APP_len = 0; /* no JPEG markers - TODO: this is definately
|
||||
bparm.APP_len = 0; /* no JPEG markers - TODO: this is definitely
|
||||
* not right for decimation==1 */
|
||||
|
||||
if (width <= 0) {
|
||||
|
|
|
@ -48,7 +48,7 @@ struct mjpeg_params
|
|||
|
||||
int quality; /* Measure for quality of compressed images.
|
||||
Scales linearly with the size of the compressed images.
|
||||
Must be beetween 0 and 100, 100 is a compression
|
||||
Must be between 0 and 100, 100 is a compression
|
||||
ratio of 1:4 */
|
||||
|
||||
int odd_even; /* Which field should come first ???
|
||||
|
@ -64,7 +64,7 @@ struct mjpeg_params
|
|||
|
||||
unsigned long jpeg_markers; /* Which markers should go into the JPEG output.
|
||||
Unless you exactly know what you do, leave them untouched.
|
||||
Inluding less markers will make the resulting code
|
||||
Including less markers will make the resulting code
|
||||
smaller, but there will be fewer applications
|
||||
which can read it.
|
||||
The presence of the APP and COM marker is
|
||||
|
|
|
@ -1804,7 +1804,7 @@ gst_ximagesink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size,
|
|||
" and offset %" G_GUINT64_FORMAT, size, caps, offset);
|
||||
|
||||
/* assume we're going to alloc what was requested, keep track of
|
||||
* wheter we need to unref or not. When we suggest a new format
|
||||
* whether we need to unref or not. When we suggest a new format
|
||||
* upstream we will create a new caps that we need to unref. */
|
||||
alloc_caps = caps;
|
||||
alloc_unref = FALSE;
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
* SECTION:element-xvimagesink
|
||||
*
|
||||
* 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
|
||||
* 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
|
||||
|
|
|
@ -287,7 +287,7 @@ struct _GstXvImageSink {
|
|||
/* stream metadata */
|
||||
gchar *media_title;
|
||||
|
||||
/* target video rectagle */
|
||||
/* target video rectangle */
|
||||
GstVideoRectangle render_rect;
|
||||
gboolean have_render_rect;
|
||||
};
|
||||
|
|
|
@ -534,7 +534,7 @@ GST_START_TEST (test_live_seeking)
|
|||
#if 1
|
||||
fail_unless (res == TRUE, NULL);
|
||||
#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);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -778,7 +778,7 @@ fakesink_handoff_cb (GstElement * object, GstBuffer * buffer, GstPad * pad,
|
|||
ctx->latency = 1000 - GST_BUFFER_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)
|
||||
fail_unless (ctx->next_out_ts == GST_BUFFER_TIMESTAMP (buffer),
|
||||
"expected timestamp %" GST_TIME_FORMAT " got timestamp %"
|
||||
|
|
|
@ -164,7 +164,7 @@ GST_START_TEST (test_seeking)
|
|||
gst_event_new_new_segment (TRUE, 1.0, GST_FORMAT_BYTES, 8800, -1,
|
||||
0))) {
|
||||
GST_LOG ("seek ok");
|
||||
/* make sure that that new position is reported immediately */
|
||||
/* make sure that new position is reported immediately */
|
||||
CHECK_QUERY_POSITION (gnomevfssink, GST_FORMAT_BYTES, 8800);
|
||||
PUSH_BYTES (1);
|
||||
CHECK_QUERY_POSITION (gnomevfssink, GST_FORMAT_BYTES, 8801);
|
||||
|
|
|
@ -354,7 +354,7 @@ GST_START_TEST (test_video_passthrough)
|
|||
/* pushing gives away one of the two references we have ... */
|
||||
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);
|
||||
fail_unless_equals_int (g_list_length (buffers), 0);
|
||||
|
||||
|
|
|
@ -501,7 +501,7 @@ main (int argc, char **argv)
|
|||
return 1;
|
||||
}
|
||||
|
||||
/* Trancode file */
|
||||
/* Transcode file */
|
||||
transcode_file (inputuri, outputuri, prof);
|
||||
|
||||
/* cleanup */
|
||||
|
|
Loading…
Reference in a new issue