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.
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' :
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.
* 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.
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
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:
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
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 {
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;
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);
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.
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) {
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);
gint offset_x, offset_y;
gint output_bpp;
- /* telemetry debuging options */
+ /* telemetry debugging options */
gint telemetry_mv;
gint telemetry_mbmode;
gint telemetry_qi;
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
/* 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. */
/**
* 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] =
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] =
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] =
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] =
*
* 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
* 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
* 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.
* 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
* 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
/**
* 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.
*/
/**
* 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
/**
* 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,
/**
* 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
* 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;
*
* 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
* 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
* 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.
* @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.
*
* Queries encoder perfect timestamp behaviour.
*
- * Returns: TRUE if pefect timestamp setting enabled.
+ * Returns: TRUE if perfect timestamp setting enabled.
*
* MT safe.
*
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;
}
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);
}
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);
/* 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;
}
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 */
*
* 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
/* 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;
}
*
* 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.
*
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
*
* #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.
*
*
* #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.
*
*
* #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.
*
*
* #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.
*
* 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>
* @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.
* 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
{"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},
* @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.
* 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"
* 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
*/
* 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
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);
* @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.
*/
* @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.
*/
*
* 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.
*/
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 */
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;
* 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)
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,
}
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;
}
* 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 *
}
} 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
<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)) {
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++) {
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
$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:
$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
$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
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.
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:
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
* - 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,
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. */
/***
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;
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,
"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
*
* 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",
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);
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) {
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;
}
/* 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
*/
}
/* 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
}
/* 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
}
/* 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!
}
/* 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!
/*
- * 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
/**
* @file imgconvert.c
- * Misc image convertion routines.
+ * Misc image conversion routines.
*/
/* TODO:
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:
/*
- * 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
#endif
}
-/* NOTE: ptr = NULL is explicetly allowed */
+/* NOTE: ptr = NULL is explictly allowed */
void
av_free (void *ptr)
{
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.
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
/* 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
}
/* 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;
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 */
* @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.
*
* @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.
*
*
* 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.
/**
* 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
*/
/**
* 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
*/
/**
* 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
*/
/* 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 */
/* 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
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);
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);
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. */
struct _GstPlayBaseBinClass {
GstPipelineClass parent_class;
- /* virtual fuctions */
+ /* virtual functions */
gboolean (*setup_output_pads) (GstPlayBaseBin *play_base_bin,
GstPlayBaseGroup *group);
* 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,
}
/* 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
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);
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,
* 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;
* 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,
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");
}
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");
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");
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 */
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);
};
* @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.
*
* @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.
*
*
* 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.
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. */
* 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
}
}
-/* "add" signal implemntation */
+/* "add" signal implementation */
void
gst_multi_fd_sink_add (GstMultiFdSink * sink, int fd)
{
*
* 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
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;
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;
}
/* 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))
{
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 */
{
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) {
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;
/**
* 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.
*
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=""
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) {
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) {
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 ???
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
" 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;
* 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
/* stream metadata */
gchar *media_title;
- /* target video rectagle */
+ /* target video rectangle */
GstVideoRectangle render_rect;
gboolean have_render_rect;
};
#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
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 %"
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);
/* 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);
return 1;
}
- /* Trancode file */
+ /* Transcode file */
transcode_file (inputuri, outputuri, prof);
/* cleanup */