gst/base/: fix up some debugging

Original commit message from CVS:

* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
* gst/base/gstbasetransform.c: (gst_base_transform_transform_size),
fix up some debugging
(gst_base_transform_get_unit_size),
(gst_base_transform_buffer_alloc), (gst_base_transform_event),
(gst_base_transform_handle_buffer):
* gst/base/gstbasetransform.h:
handle and store timed NEWSEGMENT events so that subclasses that
calculate time by counting samples have a segment_start time they
need to add to their timestamps - see audioresample
This commit is contained in:
Thomas Vander Stichele 2005-08-26 11:56:11 +00:00
parent 8b739d91e7
commit 6c3416a44d
26 changed files with 1912 additions and 495 deletions

View file

@ -1,7 +1,20 @@
2005-08-26 Thomas Vander Stichele <thomas at apestaart dot org>
* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
* gst/base/gstbasetransform.c: (gst_base_transform_transform_size),
fix up some debugging
(gst_base_transform_get_unit_size),
(gst_base_transform_buffer_alloc), (gst_base_transform_event),
(gst_base_transform_handle_buffer):
* gst/base/gstbasetransform.h:
handle and store timed NEWSEGMENT events so that subclasses that
calculate time by counting samples have a segment_start time they
need to add to their timestamps - see audioresample
2005-08-26 Stefan Kost <ensonic@users.sf.net>
* gst/gstbin.h:
removed ';' from the end of macro defs
removed ';' from the end of macro defs
* docs/gst/gstreamer-docs.sgml:
* docs/gst/gstreamer-sections.txt:
* docs/gst/tmpl/.cvsignore:
@ -17,9 +30,9 @@
* gst/gstprobe.h:
* gst/gstutils.c: (gst_pad_query_convert):
* gst/gstutils.h:
fixed parameter name mismatches between source, header and docs
added some more docs, resolved the last batch of unused elements in
docs (now someone needs to doc them)
fixed parameter name mismatches between source, header and docs
added some more docs, resolved the last batch of unused elements in
docs (now someone needs to doc them)
2005-08-25 Thomas Vander Stichele <thomas at apestaart dot org>

View file

@ -58,6 +58,22 @@ undefined media type that can not be detected.
<!-- ##### MACRO GST_CAPS_REFCOUNT ##### -->
<para>
</para>
@caps:
<!-- ##### MACRO GST_CAPS_REFCOUNT_VALUE ##### -->
<para>
</para>
@caps:
<!-- ##### MACRO GST_STATIC_CAPS_ANY ##### -->
<para>
Creates a static caps that matches anything. This can be used in pad
@ -277,6 +293,16 @@ templates.
@Returns:
<!-- ##### FUNCTION gst_caps_is_equal_fixed ##### -->
<para>
</para>
@caps1:
@caps2:
@Returns:
<!-- ##### FUNCTION gst_caps_is_always_compatible ##### -->
<para>
@ -391,3 +417,48 @@ templates.
@Returns:
<!-- ##### FUNCTION gst_caps_make_writable ##### -->
<para>
</para>
@caps:
@Returns:
<!-- ##### FUNCTION gst_caps_ref ##### -->
<para>
</para>
@caps:
@Returns:
<!-- ##### FUNCTION gst_caps_structure_fixate_field_boolean ##### -->
<para>
</para>
@structure:
@field_name:
@target:
@Returns:
<!-- ##### FUNCTION gst_caps_truncate ##### -->
<para>
</para>
@caps:
<!-- ##### FUNCTION gst_caps_unref ##### -->
<para>
</para>
@caps:

View file

@ -124,6 +124,23 @@ Convert a GstClockTime to a GTimeVal
@tv: The target timeval
<!-- ##### MACRO GST_TIMESPEC_TO_TIME ##### -->
<para>
</para>
@ts:
<!-- ##### MACRO GST_TIME_TO_TIMESPEC ##### -->
<para>
</para>
@t:
@ts:
<!-- ##### MACRO GST_CLOCK_ENTRY_TRACE_NAME ##### -->
<para>
The name used for tracing clock entry allocations.
@ -239,6 +256,47 @@ Get the clock flags
@clock: the clock to query
<!-- ##### MACRO GST_CLOCK_BROADCAST ##### -->
<para>
</para>
@clock:
<!-- ##### MACRO GST_CLOCK_CAST ##### -->
<para>
</para>
@clock:
<!-- ##### MACRO GST_CLOCK_COND ##### -->
<para>
</para>
@clock:
<!-- ##### MACRO GST_CLOCK_TIMED_WAIT ##### -->
<para>
</para>
@clock:
@tv:
<!-- ##### MACRO GST_CLOCK_WAIT ##### -->
<para>
</para>
@clock:
<!-- ##### FUNCTION gst_clock_set_resolution ##### -->
<para>
@ -288,6 +346,25 @@ Get the clock flags
@Returns:
<!-- ##### FUNCTION gst_clock_adjust_unlocked ##### -->
<para>
</para>
@clock:
@internal:
@Returns:
<!-- ##### FUNCTION gst_clock_set_time_adjust ##### -->
<para>
</para>
@clock:
@adjust:
<!-- ##### FUNCTION gst_clock_id_get_time ##### -->
<para>
@ -326,3 +403,30 @@ Get the clock flags
@id:
<!-- ##### FUNCTION gst_clock_id_compare_func ##### -->
<para>
</para>
@id1:
@id2:
@Returns:
<!-- ##### FUNCTION gst_clock_id_ref ##### -->
<para>
</para>
@id:
@Returns:
<!-- ##### FUNCTION gst_clock_id_unref ##### -->
<para>
</para>
@id:

View file

@ -147,6 +147,16 @@ and gst_element_set_clock(). You can wait for the clock to reach a given
@get_query_types:
@query:
<!-- ##### ENUM GstElementFlags ##### -->
<para>
This enum defines the standard flags that an element may have.
</para>
@GST_ELEMENT_LOCKED_STATE:
@GST_ELEMENT_IS_SINK:
@GST_ELEMENT_UNPARENTING:
@GST_ELEMENT_FLAG_LAST:
<!-- ##### MACRO GST_NUM_STATES ##### -->
<para>
The maximun number of states.
@ -220,14 +230,102 @@ The Element is going from the READY state to the NULL state.
<!-- ##### ENUM GstElementFlags ##### -->
<!-- ##### MACRO GST_STATE_BROADCAST ##### -->
<para>
This enum defines the standard flags that an element may have.
</para>
@GST_ELEMENT_LOCKED_STATE:
@GST_ELEMENT_IS_SINK:
@GST_ELEMENT_FLAG_LAST:
@elem:
<!-- ##### MACRO GST_STATE_ERROR ##### -->
<para>
</para>
@obj:
<!-- ##### MACRO GST_STATE_FINAL ##### -->
<para>
</para>
@obj:
<!-- ##### MACRO GST_STATE_GET_COND ##### -->
<para>
</para>
@elem:
<!-- ##### MACRO GST_STATE_GET_LOCK ##### -->
<para>
</para>
@elem:
<!-- ##### MACRO GST_STATE_LOCK ##### -->
<para>
</para>
@elem:
<!-- ##### MACRO GST_STATE_NO_PREROLL ##### -->
<para>
</para>
@obj:
<!-- ##### MACRO GST_STATE_SIGNAL ##### -->
<para>
</para>
@elem:
<!-- ##### MACRO GST_STATE_TIMED_WAIT ##### -->
<para>
</para>
@elem:
@timeval:
<!-- ##### MACRO GST_STATE_TRYLOCK ##### -->
<para>
</para>
@elem:
<!-- ##### MACRO GST_STATE_UNLOCK ##### -->
<para>
</para>
@elem:
<!-- ##### MACRO GST_STATE_WAIT ##### -->
<para>
</para>
@elem:
<!-- ##### MACRO GST_ELEMENT_NAME ##### -->
<para>
@ -275,6 +373,61 @@ Get the pads of this elements.
@message:
<!-- ##### MACRO GST_ELEMENT_BUS ##### -->
<para>
</para>
@obj:
<!-- ##### MACRO GST_ELEMENT_WARNING ##### -->
<para>
</para>
@el:
@domain:
@code:
@text:
@debug:
<!-- ##### MACRO GST_ELEMENT_IS_LOCKED_STATE ##### -->
<para>
</para>
@obj:
<!-- ##### FUNCTION gst_element_abort_preroll ##### -->
<para>
</para>
@element:
@Returns:
<!-- ##### FUNCTION gst_element_abort_state ##### -->
<para>
</para>
@element:
<!-- ##### FUNCTION gst_element_add_pad ##### -->
<para>
</para>
@element:
@pad:
@Returns:
<!-- ##### FUNCTION gst_element_class_add_pad_template ##### -->
<para>
@ -284,6 +437,25 @@ Get the pads of this elements.
@templ:
<!-- ##### FUNCTION gst_element_class_get_pad_template ##### -->
<para>
</para>
@element_class:
@name:
@Returns:
<!-- ##### FUNCTION gst_element_class_get_pad_template_list ##### -->
<para>
</para>
@element_class:
@Returns:
<!-- ##### FUNCTION gst_element_class_install_std_props ##### -->
<para>
@ -303,46 +475,81 @@ Get the pads of this elements.
@details:
<!-- ##### MACRO gst_element_get_name ##### -->
<!-- ##### FUNCTION gst_element_commit_state ##### -->
<para>
Gets the name of the element.
</para>
@elem:
@Returns: the name of the element.
@element:
<!-- link -->
<!-- ##### MACRO gst_element_set_name ##### -->
<!-- ##### FUNCTION gst_element_create_all_pads ##### -->
<para>
Sets the name of the element, getting rid of the old name if there was one.
</para>
@elem: a #GstElement to set the name of.
@name: the new name of the element.
@element:
<!-- ##### MACRO gst_element_get_parent ##### -->
<!-- ##### FUNCTION gst_element_factory_can_sink_caps ##### -->
<para>
Gets the parent of an element.
</para>
@elem: a #GstElement to get the parent of.
@Returns: the #GstObject parent of the element.
@factory:
@caps:
@Returns:
<!-- ##### MACRO gst_element_set_parent ##### -->
<!-- ##### FUNCTION gst_element_factory_can_src_caps ##### -->
<para>
Sets the parent of an element.
</para>
@elem: a #GstElement to set the parent of.
@parent: the new #GstObject parent of the object.
@factory:
@caps:
@Returns:
<!-- ##### FUNCTION gst_element_requires_clock ##### -->
<!-- ##### FUNCTION gst_element_factory_get_static_pad_templates ##### -->
<para>
</para>
@factory:
@Returns:
<!-- ##### FUNCTION gst_element_finish_preroll ##### -->
<para>
</para>
@element:
@pad:
@Returns:
<!-- ##### FUNCTION gst_element_found_tags ##### -->
<para>
</para>
@element:
@list:
<!-- ##### FUNCTION gst_element_found_tags_for_pad ##### -->
<para>
</para>
@element:
@pad:
@list:
<!-- ##### FUNCTION gst_element_get_base_time ##### -->
<para>
</para>
@ -351,7 +558,7 @@ Sets the parent of an element.
@Returns:
<!-- ##### FUNCTION gst_element_provides_clock ##### -->
<!-- ##### FUNCTION gst_element_get_bus ##### -->
<para>
</para>
@ -369,101 +576,6 @@ Sets the parent of an element.
@Returns:
<!-- ##### FUNCTION gst_element_set_clock ##### -->
<para>
</para>
@element:
@clock:
<!-- ##### FUNCTION gst_element_is_indexable ##### -->
<para>
</para>
@element:
@Returns:
<!-- ##### FUNCTION gst_element_set_index ##### -->
<para>
</para>
@element:
@index:
<!-- ##### FUNCTION gst_element_get_index ##### -->
<para>
</para>
@element:
@Returns:
<!-- ##### FUNCTION gst_element_add_pad ##### -->
<para>
</para>
@element:
@pad:
@Returns:
<!-- ##### FUNCTION gst_element_remove_pad ##### -->
<para>
</para>
@element:
@pad:
@Returns:
<!-- ##### FUNCTION gst_element_get_pad ##### -->
<para>
</para>
@element:
@name:
@Returns: GList of #GstPads
<!-- ##### FUNCTION gst_element_get_static_pad ##### -->
<para>
</para>
@element:
@name:
@Returns:
<!-- ##### FUNCTION gst_element_get_request_pad ##### -->
<para>
</para>
@element:
@name:
@Returns:
<!-- ##### FUNCTION gst_element_release_request_pad ##### -->
<para>
</para>
@element:
@pad:
<!-- ##### FUNCTION gst_element_get_compatible_pad ##### -->
<para>
@ -485,6 +597,141 @@ Sets the parent of an element.
@Returns:
<!-- ##### FUNCTION gst_element_get_factory ##### -->
<para>
</para>
@element:
@Returns:
<!-- ##### FUNCTION gst_element_get_index ##### -->
<para>
</para>
@element:
@Returns:
<!-- ##### MACRO gst_element_get_name ##### -->
<para>
Gets the name of the element.
</para>
@elem:
@Returns: the name of the element.
<!-- link -->
<!-- ##### FUNCTION gst_element_get_pad ##### -->
<para>
</para>
@element:
@name:
@Returns: GList of #GstPads
<!-- ##### MACRO gst_element_get_parent ##### -->
<para>
Gets the parent of an element.
</para>
@elem: a #GstElement to get the parent of.
@Returns: the #GstObject parent of the element.
<!-- ##### FUNCTION gst_element_get_query_types ##### -->
<para>
</para>
@element:
@Returns:
<!-- ##### FUNCTION gst_element_get_request_pad ##### -->
<para>
</para>
@element:
@name:
@Returns:
<!-- ##### FUNCTION gst_element_get_state ##### -->
<para>
</para>
@element:
@state:
@pending:
@timeout:
@Returns:
<!-- ##### FUNCTION gst_element_get_static_pad ##### -->
<para>
</para>
@element:
@name:
@Returns:
<!-- ##### FUNCTION gst_element_is_indexable ##### -->
<para>
</para>
@element:
@Returns:
<!-- ##### FUNCTION gst_element_is_locked_state ##### -->
<para>
</para>
@element:
@Returns:
<!-- ##### FUNCTION gst_element_iterate_pads ##### -->
<para>
</para>
@element:
@Returns:
<!-- ##### FUNCTION gst_element_iterate_sink_pads ##### -->
<para>
</para>
@element:
@Returns:
<!-- ##### FUNCTION gst_element_iterate_src_pads ##### -->
<para>
</para>
@element:
@Returns:
<!-- ##### FUNCTION gst_element_link ##### -->
<para>
@ -506,25 +753,6 @@ Sets the parent of an element.
@Returns:
<!-- ##### FUNCTION gst_element_unlink ##### -->
<para>
</para>
@src:
@dest:
<!-- ##### FUNCTION gst_element_unlink_many ##### -->
<para>
</para>
@element_1:
@element_2:
@Varargs:
<!-- ##### FUNCTION gst_element_link_pads ##### -->
<para>
@ -537,7 +765,7 @@ Sets the parent of an element.
@Returns:
<!-- ##### FUNCTION gst_element_unlink_pads ##### -->
<!-- ##### FUNCTION gst_element_link_pads_filtered ##### -->
<para>
</para>
@ -546,41 +774,53 @@ Sets the parent of an element.
@srcpadname:
@dest:
@destpadname:
@filter:
@Returns:
<!-- pad manipulation -->
<!-- ##### FUNCTION gst_element_send_event ##### -->
<!-- ##### FUNCTION gst_element_lost_state ##### -->
<para>
</para>
@element:
@event:
@Returns:
<!-- ##### FUNCTION gst_element_seek ##### -->
<!-- ##### FUNCTION gst_element_message_full ##### -->
<para>
</para>
@element:
@rate:
@format:
@flags:
@cur_type:
@cur:
@stop_type:
@stop:
@type:
@domain:
@code:
@text:
@debug:
@file:
@function:
@line:
<!-- ##### FUNCTION gst_element_no_more_pads ##### -->
<para>
</para>
@element:
<!-- ##### FUNCTION gst_element_post_message ##### -->
<para>
</para>
@element:
@message:
@Returns:
<!-- # Unused Parameters # -->
@seek_type:
@offset:
<!-- ##### FUNCTION gst_element_get_query_types ##### -->
<!-- ##### FUNCTION gst_element_provides_clock ##### -->
<para>
</para>
@ -603,7 +843,51 @@ Sets the parent of an element.
@value:
<!-- ##### FUNCTION gst_element_is_locked_state ##### -->
<!-- ##### FUNCTION gst_element_query_convert ##### -->
<para>
</para>
@element:
@src_format:
@src_val:
@dest_fmt:
@dest_val:
@Returns:
<!-- ##### FUNCTION gst_element_query_position ##### -->
<para>
</para>
@element:
@format:
@cur:
@end:
@Returns:
<!-- ##### FUNCTION gst_element_release_request_pad ##### -->
<para>
</para>
@element:
@pad:
<!-- ##### FUNCTION gst_element_remove_pad ##### -->
<para>
</para>
@element:
@pad:
@Returns:
<!-- ##### FUNCTION gst_element_requires_clock ##### -->
<para>
</para>
@ -612,6 +896,71 @@ Sets the parent of an element.
@Returns:
<!-- ##### FUNCTION gst_element_seek ##### -->
<para>
</para>
@element:
@rate:
@format:
@flags:
@cur_type:
@cur:
@stop_type:
@stop:
@Returns:
<!-- # Unused Parameters # -->
@seek_type:
@offset:
<!-- ##### FUNCTION gst_element_send_event ##### -->
<para>
</para>
@element:
@event:
@Returns:
<!-- ##### FUNCTION gst_element_set_base_time ##### -->
<para>
</para>
@element:
@time:
<!-- ##### FUNCTION gst_element_set_bus ##### -->
<para>
</para>
@element:
@bus:
<!-- ##### FUNCTION gst_element_set_clock ##### -->
<para>
</para>
@element:
@clock:
<!-- ##### FUNCTION gst_element_set_index ##### -->
<para>
</para>
@element:
@index:
<!-- ##### FUNCTION gst_element_set_locked_state ##### -->
<para>
@ -622,25 +971,22 @@ Sets the parent of an element.
@Returns:
<!-- ##### FUNCTION gst_element_sync_state_with_parent ##### -->
<!-- ##### MACRO gst_element_set_name ##### -->
<para>
Sets the name of the element, getting rid of the old name if there was one.
</para>
@element:
@Returns:
@elem: a #GstElement to set the name of.
@name: the new name of the element.
<!-- ##### FUNCTION gst_element_get_state ##### -->
<!-- ##### MACRO gst_element_set_parent ##### -->
<para>
Sets the parent of an element.
</para>
@element:
@state:
@pending:
@timeout:
@Returns:
@elem: a #GstElement to set the parent of.
@parent: the new #GstObject parent of the object.
<!-- ##### FUNCTION gst_element_set_state ##### -->
@ -662,7 +1008,7 @@ Sets the parent of an element.
@Returns:
<!-- ##### FUNCTION gst_element_get_factory ##### -->
<!-- ##### FUNCTION gst_element_sync_state_with_parent ##### -->
<para>
</para>
@ -671,11 +1017,36 @@ Sets the parent of an element.
@Returns:
<!-- ##### FUNCTION gst_element_no_more_pads ##### -->
<!-- ##### FUNCTION gst_element_unlink ##### -->
<para>
</para>
@element:
@src:
@dest:
<!-- ##### FUNCTION gst_element_unlink_many ##### -->
<para>
</para>
@element_1:
@element_2:
@Varargs:
<!-- ##### FUNCTION gst_element_unlink_pads ##### -->
<para>
</para>
@src:
@srcpadname:
@dest:
@destpadname:
<!-- pad manipulation -->

View file

@ -92,3 +92,11 @@ A format definition
@Returns:
<!-- ##### FUNCTION gst_format_iterate_definitions ##### -->
<para>
</para>
@Returns:

View file

@ -45,3 +45,22 @@ Pseudo link pads
@Returns:
<!-- ##### FUNCTION gst_ghost_pad_get_target ##### -->
<para>
</para>
@gpad:
@Returns:
<!-- ##### FUNCTION gst_ghost_pad_new_notarget ##### -->
<para>
</para>
@name:
@dir:
@Returns:

View file

@ -182,6 +182,13 @@ output with the function name of the message.
</para>
<!-- ##### USER_FUNCTION GstDebugFuncPtr ##### -->
<para>
</para>
<!-- ##### USER_FUNCTION GstLogFunction ##### -->
<para>
@ -465,6 +472,13 @@ output with the function name of the message.
@Returns:
<!-- ##### MACRO GST_CAT_DEFAULT ##### -->
<para>
</para>
<!-- ##### MACRO GST_CAT_LEVEL_LOG ##### -->
<para>
GST_CAT_LEVEL_LOG:

View file

@ -172,8 +172,10 @@ GstIterator
</para>
@it:
@result:
@elem:
@Returns:
<!-- # Unused Parameters # -->
@result:
<!-- ##### FUNCTION gst_iterator_resync ##### -->

View file

@ -36,6 +36,23 @@ GstMiniObject
@GST_MINI_OBJECT_FLAG_STATIC:
@GST_MINI_OBJECT_FLAG_LAST:
<!-- ##### USER_FUNCTION GstMiniObjectCopyFunction ##### -->
<para>
</para>
@Param1:
@Returns:
<!-- ##### USER_FUNCTION GstMiniObjectFinalizeFunction ##### -->
<para>
</para>
@Param1:
<!-- ##### MACRO GST_MINI_OBJECT_FLAGS ##### -->
<para>
@ -71,6 +88,22 @@ GstMiniObject
@flag:
<!-- ##### MACRO GST_MINI_OBJECT_REFCOUNT ##### -->
<para>
</para>
@obj:
<!-- ##### MACRO GST_MINI_OBJECT_REFCOUNT_VALUE ##### -->
<para>
</para>
@obj:
<!-- ##### FUNCTION gst_mini_object_new ##### -->
<para>

View file

@ -218,6 +218,78 @@ Acquire a reference to the mutex of this object.
@obj: Object to get the mutex of.
<!-- ##### MACRO GST_OBJECT_IS_DESTROYED ##### -->
<para>
</para>
@obj:
<!-- ##### MACRO GST_OBJECT_IS_DISPOSING ##### -->
<para>
</para>
@obj:
<!-- ##### MACRO GST_OBJECT_IS_FLOATING ##### -->
<para>
</para>
@obj:
<!-- ##### MACRO GST_OBJECT_REFCOUNT ##### -->
<para>
</para>
@obj:
<!-- ##### MACRO GST_OBJECT_REFCOUNT_VALUE ##### -->
<para>
</para>
@obj:
<!-- ##### MACRO GST_CLASS_GET_LOCK ##### -->
<para>
</para>
@obj:
<!-- ##### MACRO GST_CLASS_LOCK ##### -->
<para>
</para>
@obj:
<!-- ##### MACRO GST_CLASS_TRYLOCK ##### -->
<para>
</para>
@obj:
<!-- ##### MACRO GST_CLASS_UNLOCK ##### -->
<para>
</para>
@obj:
<!-- ##### FUNCTION gst_object_set_name ##### -->
<para>
@ -264,6 +336,24 @@ Acquire a reference to the mutex of this object.
@object:
<!-- ##### FUNCTION gst_object_get_name_prefix ##### -->
<para>
</para>
@object:
@Returns:
<!-- ##### FUNCTION gst_object_set_name_prefix ##### -->
<para>
</para>
@object:
@name_prefix:
<!-- ##### FUNCTION gst_object_default_deep_notify ##### -->
<para>
@ -275,6 +365,16 @@ Acquire a reference to the mutex of this object.
@excluded_props:
<!-- ##### FUNCTION gst_object_default_error ##### -->
<para>
</para>
@source:
@error:
@debug:
<!-- ##### FUNCTION gst_object_check_uniqueness ##### -->
<para>

View file

@ -397,6 +397,159 @@ Indicates when this pad will become available.
@GST_PAD_REQUEST: the pad is only available on request with
gst_element_request_pad_by_name() or gst_element_request_compatible_pad().
<!-- ##### ENUM GstFlowReturn ##### -->
<para>
</para>
@GST_FLOW_RESEND:
@GST_FLOW_OK:
@GST_FLOW_NOT_LINKED:
@GST_FLOW_WRONG_STATE:
@GST_FLOW_UNEXPECTED:
@GST_FLOW_NOT_NEGOTIATED:
@GST_FLOW_ERROR:
@GST_FLOW_NOT_SUPPORTED:
<!-- ##### ENUM GstActivateMode ##### -->
<para>
</para>
@GST_ACTIVATE_NONE:
@GST_ACTIVATE_PUSH:
@GST_ACTIVATE_PULL:
<!-- ##### MACRO GST_PREROLL_BROADCAST ##### -->
<para>
</para>
@pad:
<!-- ##### MACRO GST_PREROLL_GET_COND ##### -->
<para>
</para>
@pad:
<!-- ##### MACRO GST_PREROLL_GET_LOCK ##### -->
<para>
</para>
@pad:
<!-- ##### MACRO GST_PREROLL_LOCK ##### -->
<para>
</para>
@pad:
<!-- ##### MACRO GST_PREROLL_SIGNAL ##### -->
<para>
</para>
@pad:
<!-- ##### MACRO GST_PREROLL_TIMED_WAIT ##### -->
<para>
</para>
@pad:
@timeval:
<!-- ##### MACRO GST_PREROLL_TRYLOCK ##### -->
<para>
</para>
@pad:
<!-- ##### MACRO GST_PREROLL_UNLOCK ##### -->
<para>
</para>
@pad:
<!-- ##### MACRO GST_PREROLL_WAIT ##### -->
<para>
</para>
@pad:
<!-- ##### MACRO GST_STREAM_GET_LOCK ##### -->
<para>
</para>
@pad:
<!-- ##### MACRO GST_STREAM_LOCK ##### -->
<para>
</para>
@pad:
<!-- ##### MACRO GST_STREAM_LOCK_FULL ##### -->
<para>
</para>
@pad:
@t:
<!-- ##### MACRO GST_STREAM_TRYLOCK ##### -->
<para>
</para>
@pad:
<!-- ##### MACRO GST_STREAM_UNLOCK ##### -->
<para>
</para>
@pad:
<!-- ##### MACRO GST_STREAM_UNLOCK_FULL ##### -->
<para>
</para>
@pad:
<!-- ##### MACRO GST_FLOW_IS_FATAL ##### -->
<para>
</para>
@ret:
<!-- ##### FUNCTION gst_pad_new ##### -->
<para>
@ -1062,9 +1215,11 @@ gst_element_request_pad_by_name() or gst_element_request_compatible_pad().
@pad:
@src_format:
@src_val:
@dest_fmt:
@dest_format:
@dest_val:
@Returns:
<!-- # Unused Parameters # -->
@dest_fmt:
<!-- ##### FUNCTION gst_pad_set_internal_link_function ##### -->

View file

@ -182,6 +182,15 @@ Flags for the padtemplate
@templ:
<!-- ##### FUNCTION gst_static_pad_template_get_caps ##### -->
<para>
</para>
@templ:
@Returns:
<!-- ##### FUNCTION gst_pad_template_get_caps ##### -->
<para>

View file

@ -44,6 +44,14 @@ the pipeline, use gst_object_unref() to free its resources.
</para>
<!-- ##### ENUM GstPipelineFlags ##### -->
<para>
</para>
@GST_PIPELINE_FLAG_FIXED_CLOCK:
@GST_PIPELINE_FLAG_LAST:
<!-- ##### FUNCTION gst_pipeline_new ##### -->
<para>
@ -53,3 +61,65 @@ the pipeline, use gst_object_unref() to free its resources.
@Returns:
<!-- ##### FUNCTION gst_pipeline_auto_clock ##### -->
<para>
</para>
@pipeline:
<!-- ##### FUNCTION gst_pipeline_get_bus ##### -->
<para>
</para>
@pipeline:
@Returns:
<!-- ##### FUNCTION gst_pipeline_get_clock ##### -->
<para>
</para>
@pipeline:
@Returns:
<!-- ##### FUNCTION gst_pipeline_get_last_stream_time ##### -->
<para>
</para>
@pipeline:
@Returns:
<!-- ##### FUNCTION gst_pipeline_set_clock ##### -->
<para>
</para>
@pipeline:
@clock:
<!-- ##### FUNCTION gst_pipeline_set_new_stream_time ##### -->
<para>
</para>
@pipeline:
@time:
<!-- ##### FUNCTION gst_pipeline_use_clock ##### -->
<para>
</para>
@pipeline:
@clock:

View file

@ -97,3 +97,171 @@ A Query Type definition
@Param1:
<!-- ##### MACRO gst_query_copy ##### -->
<para>
</para>
@msg:
<!-- ##### FUNCTION gst_query_get_structure ##### -->
<para>
</para>
@query:
@Returns:
<!-- ##### MACRO gst_query_make_writable ##### -->
<para>
</para>
@msg:
<!-- ##### FUNCTION gst_query_new_application ##### -->
<para>
</para>
@type:
@structure:
@Returns:
<!-- ##### FUNCTION gst_query_new_convert ##### -->
<para>
</para>
@src_fmt:
@value:
@dest_fmt:
@Returns:
<!-- ##### FUNCTION gst_query_new_position ##### -->
<para>
</para>
@format:
@Returns:
<!-- ##### FUNCTION gst_query_parse_convert ##### -->
<para>
</para>
@query:
@src_format:
@src_value:
@dest_format:
@dest_value:
<!-- ##### FUNCTION gst_query_parse_position ##### -->
<para>
</para>
@query:
@format:
@cur:
@end:
<!-- ##### FUNCTION gst_query_parse_seeking_query ##### -->
<para>
</para>
@query:
@format:
<!-- ##### FUNCTION gst_query_parse_seeking_response ##### -->
<para>
</para>
@query:
@format:
@seekable:
@segment_start:
@segment_end:
<!-- ##### MACRO gst_query_ref ##### -->
<para>
</para>
@msg:
<!-- ##### FUNCTION gst_query_set_convert ##### -->
<para>
</para>
@query:
@src_format:
@src_value:
@dest_format:
@dest_value:
<!-- ##### FUNCTION gst_query_set_formats ##### -->
<para>
</para>
@query:
@n_formats:
@Varargs:
<!-- ##### FUNCTION gst_query_set_position ##### -->
<para>
</para>
@query:
@format:
@cur:
@end:
<!-- ##### FUNCTION gst_query_set_seeking ##### -->
<para>
</para>
@query:
@format:
@seekable:
@segment_start:
@segment_end:
<!-- ##### FUNCTION gst_query_type_iterate_definitions ##### -->
<para>
</para>
@Returns:
<!-- ##### MACRO gst_query_unref ##### -->
<para>
</para>
@msg:

View file

@ -35,6 +35,17 @@ Generic structure containing fields of names and values
@Returns:
<!-- ##### USER_FUNCTION GstStructureMapFunc ##### -->
<para>
</para>
@field_id:
@value:
@user_data:
@Returns:
<!-- ##### FUNCTION gst_structure_empty_new ##### -->
<para>
@ -362,6 +373,36 @@ Generic structure containing fields of names and values
@field:
<!-- ##### FUNCTION gst_structure_map_in_place ##### -->
<para>
</para>
@structure:
@func:
@user_data:
@Returns:
<!-- ##### FUNCTION gst_structure_nth_field_name ##### -->
<para>
</para>
@structure:
@index:
@Returns:
<!-- ##### FUNCTION gst_structure_set_parent_refcount ##### -->
<para>
</para>
@structure:
@refcount:
<!-- ##### FUNCTION gst_structure_to_string ##### -->
<para>

View file

@ -67,6 +67,251 @@ List of tags and values used to describe media metadata
@src:
<!-- ##### MACRO GST_TAG_TITLE ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_ARTIST ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_ALBUM ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_DATE ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_GENRE ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_COMMENT ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_TRACK_NUMBER ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_TRACK_COUNT ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_ALBUM_VOLUME_NUMBER ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_ALBUM_VOLUME_COUNT ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_LOCATION ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_DESCRIPTION ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_VERSION ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_ISRC ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_ORGANIZATION ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_COPYRIGHT ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_CONTACT ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_LICENSE ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_PERFORMER ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_DURATION ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_CODEC ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_VIDEO_CODEC ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_AUDIO_CODEC ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_BITRATE ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_NOMINAL_BITRATE ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_MINIMUM_BITRATE ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_MAXIMUM_BITRATE ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_SERIAL ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_ENCODER ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_ENCODER_VERSION ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_TRACK_GAIN ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_TRACK_PEAK ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_ALBUM_GAIN ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_ALBUM_PEAK ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_LANGUAGE_CODE ##### -->
<para>
</para>
<!-- ##### FUNCTION gst_tag_register ##### -->
<para>
@ -610,248 +855,3 @@ List of tags and values used to describe media metadata
@Returns:
<!-- ##### MACRO GST_TAG_TITLE ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_ARTIST ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_ALBUM ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_DATE ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_GENRE ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_COMMENT ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_TRACK_NUMBER ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_TRACK_COUNT ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_ALBUM_VOLUME_NUMBER ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_ALBUM_VOLUME_COUNT ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_LOCATION ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_DESCRIPTION ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_VERSION ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_ISRC ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_ORGANIZATION ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_COPYRIGHT ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_CONTACT ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_LICENSE ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_PERFORMER ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_DURATION ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_CODEC ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_VIDEO_CODEC ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_AUDIO_CODEC ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_BITRATE ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_NOMINAL_BITRATE ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_MINIMUM_BITRATE ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_MAXIMUM_BITRATE ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_SERIAL ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_ENCODER ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_ENCODER_VERSION ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_TRACK_GAIN ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_TRACK_PEAK ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_ALBUM_GAIN ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_ALBUM_PEAK ##### -->
<para>
</para>
<!-- ##### MACRO GST_TAG_LANGUAGE_CODE ##### -->
<para>
</para>

View file

@ -186,6 +186,13 @@ The main tracing object
@trace:
<!-- ##### FUNCTION gst_alloc_trace_print_live ##### -->
<para>
</para>
<!-- ##### FUNCTION gst_alloc_trace_set_flags ##### -->
<para>

View file

@ -17,62 +17,6 @@ various utility functions
<!-- ##### SECTION Stability_Level ##### -->
<!-- ##### FUNCTION gst_util_set_value_from_string ##### -->
<para>
</para>
@value:
@value_str:
<!-- ##### FUNCTION gst_util_set_object_arg ##### -->
<para>
</para>
@object:
@name:
@value:
<!-- ##### FUNCTION gst_util_dump_mem ##### -->
<para>
</para>
@mem:
@size:
<!-- ##### FUNCTION gst_print_pad_caps ##### -->
<para>
</para>
@buf:
@indent:
@pad:
<!-- ##### FUNCTION gst_print_element_args ##### -->
<para>
</para>
@buf:
@indent:
@element:
<!-- ##### FUNCTION gst_bin_watch_for_state_change ##### -->
<para>
</para>
@bin:
<!-- ##### MACRO GST_BOILERPLATE_WITH_INTERFACE ##### -->
<para>
@ -99,6 +43,10 @@ various utility functions
parent_type_as_macro:
@\
parent_type_as_macro:
@\
parent_type_as_macro:
@\
parent_type_as_macro:
@\
parent_type_as_macro:
@interface_type:
@ -121,6 +69,10 @@ various utility functions
interface_as_function:
@\
interface_as_function:
@\
interface_as_function:
@\
interface_as_function:
@\
interface_as_function:
@ -336,3 +288,77 @@ various utility functions
@num:
<!-- ##### FUNCTION gst_atomic_int_set ##### -->
<para>
</para>
@atomic_int:
@value:
<!-- ##### FUNCTION gst_bin_watch_for_state_change ##### -->
<para>
</para>
@bin:
<!-- ##### FUNCTION gst_flow_get_name ##### -->
<para>
</para>
@ret:
@Returns:
<!-- ##### FUNCTION gst_print_element_args ##### -->
<para>
</para>
@buf:
@indent:
@element:
<!-- ##### FUNCTION gst_print_pad_caps ##### -->
<para>
</para>
@buf:
@indent:
@pad:
<!-- ##### FUNCTION gst_util_dump_mem ##### -->
<para>
</para>
@mem:
@size:
<!-- ##### FUNCTION gst_util_set_object_arg ##### -->
<para>
</para>
@object:
@name:
@value:
<!-- ##### FUNCTION gst_util_set_value_from_string ##### -->
<para>
</para>
@value:
@value_str:

View file

@ -122,6 +122,22 @@ Checks if the give GValue contains a FRACTION value.
@x: the #GValue to check
<!-- ##### MACRO GST_VALUE_HOLDS_ARRAY ##### -->
<para>
</para>
@x:
<!-- ##### MACRO GST_VALUE_HOLDS_MINI_OBJECT ##### -->
<para>
</para>
@value:
<!-- ##### MACRO GST_VALUE_LESS_THAN ##### -->
<para>
Indicates that the first value provided to a comparison function
@ -441,6 +457,32 @@ GST_VALUE_GREATER_THAN or GST_VALUE_UNORDERED
@denominator:
<!-- ##### MACRO gst_value_get_buffer ##### -->
<para>
</para>
@v:
<!-- ##### MACRO gst_value_set_buffer ##### -->
<para>
</para>
@v:
@b:
<!-- ##### MACRO gst_value_take_buffer ##### -->
<para>
</para>
@v:
@b:
<!-- ##### FUNCTION gst_value_fraction_multiply ##### -->
<para>

View file

@ -36,6 +36,94 @@ XML save/restore operations of pipelines
@arg1:
@arg2:
<!-- ##### USER_FUNCTION GstXMLRegistryClose ##### -->
<para>
</para>
@registry:
@Returns:
<!-- ##### USER_FUNCTION GstXMLRegistryGetPerms ##### -->
<para>
</para>
@registry:
<!-- ##### USER_FUNCTION GstXMLRegistryLoad ##### -->
<para>
</para>
@registry:
@dest:
@size:
@Returns:
<!-- ##### ENUM GstXMLRegistryMode ##### -->
<para>
</para>
@GST_XML_REGISTRY_READ:
@GST_XML_REGISTRY_WRITE:
<!-- ##### USER_FUNCTION GstXMLRegistryOpen ##### -->
<para>
</para>
@registry:
@mode:
@Returns:
<!-- ##### USER_FUNCTION GstXMLRegistryParser ##### -->
<para>
</para>
@context:
@tag:
@text:
@text_len:
@registry:
@error:
@Returns:
<!-- ##### USER_FUNCTION GstXMLRegistrySave ##### -->
<para>
</para>
@registry:
@format:
@Varargs:
@Returns:
<!-- ##### ENUM GstXMLRegistryState ##### -->
<para>
</para>
@GST_XML_REGISTRY_NONE:
@GST_XML_REGISTRY_TOP:
@GST_XML_REGISTRY_PATHS:
@GST_XML_REGISTRY_PATH:
@GST_XML_REGISTRY_PATHS_DONE:
@GST_XML_REGISTRY_PLUGIN:
@GST_XML_REGISTRY_FEATURE:
@GST_XML_REGISTRY_PADTEMPLATE:
@GST_XML_REGISTRY_CAPS:
@GST_XML_REGISTRY_STRUCTURE:
@GST_XML_REGISTRY_PROPERTIES:
<!-- ##### FUNCTION gst_xml_write ##### -->
<para>

View file

@ -496,7 +496,8 @@ gst_base_sink_handle_object (GstBaseSink * basesink, GstPad * pad,
&basesink->segment_base);
if (format != GST_FORMAT_TIME) {
GST_DEBUG ("received non time %d DISCONT %" G_GINT64_FORMAT
GST_DEBUG_OBJECT (basesink,
"received non time %d NEW_SEGMENT %" G_GINT64_FORMAT
" -- %" G_GINT64_FORMAT ", base %" G_GINT64_FORMAT,
format, basesink->segment_start, basesink->segment_stop,
basesink->segment_base);
@ -507,7 +508,8 @@ gst_base_sink_handle_object (GstBaseSink * basesink, GstPad * pad,
basesink->segment_stop = -1;
basesink->segment_base = -1;
} else {
GST_DEBUG ("received DISCONT %" GST_TIME_FORMAT " -- %"
GST_DEBUG_OBJECT (basesink,
"received DISCONT %" GST_TIME_FORMAT " -- %"
GST_TIME_FORMAT ", base %" GST_TIME_FORMAT,
GST_TIME_ARGS (basesink->segment_start),
GST_TIME_ARGS (basesink->segment_stop),
@ -551,13 +553,21 @@ gst_base_sink_handle_object (GstBaseSink * basesink, GstPad * pad,
* range since the sink might be able to clip the sample. */
if (GST_CLOCK_TIME_IS_VALID (end) &&
GST_CLOCK_TIME_IS_VALID (basesink->segment_start)) {
if (end <= basesink->segment_start)
if (end <= basesink->segment_start) {
GST_DEBUG ("buffer end %" GST_TIME_FORMAT " <= segment start %"
GST_TIME_FORMAT ", dropping buffer", GST_TIME_ARGS (end),
GST_TIME_ARGS (basesink->segment_start));
goto dropping;
}
}
if (GST_CLOCK_TIME_IS_VALID (start) &&
GST_CLOCK_TIME_IS_VALID (basesink->segment_stop)) {
if (basesink->segment_stop <= start)
if (basesink->segment_stop <= start) {
GST_DEBUG ("buffer start %" GST_TIME_FORMAT " >= segment stop %"
GST_TIME_FORMAT ", dropping buffer", GST_TIME_ARGS (start),
GST_TIME_ARGS (basesink->segment_stop));
goto dropping;
}
}
}
basesink->preroll_queued++;
@ -675,9 +685,6 @@ dropping:
buf = GST_BUFFER (g_queue_pop_tail (basesink->preroll_queue));
GST_DEBUG ("dropping sample outside of segment boundaries %"
GST_TIME_FORMAT, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
gst_buffer_unref (buf);
GST_PREROLL_UNLOCK (pad);

View file

@ -759,6 +759,30 @@ gst_base_transform_event (GstPad * pad, GstEvent * event)
GST_STREAM_LOCK (pad);
unlock = TRUE;
break;
case GST_EVENT_NEWSEGMENT:
{
GstFormat format;
gdouble rate;
gint64 start, stop, base;
GST_STREAM_LOCK (pad);
gst_event_parse_newsegment (event, &rate, &format, &start, &stop, &base);
if (format == GST_FORMAT_TIME) {
GST_DEBUG_OBJECT (trans, "received NEW_SEGMENT %" GST_TIME_FORMAT
" -- %" GST_TIME_FORMAT ", base %" GST_TIME_FORMAT,
start, stop, base);
trans->have_newsegment = TRUE;
trans->segment_start = start;
trans->segment_stop = stop;
trans->segment_base = base;
trans->segment_rate = rate;
} else {
GST_DEBUG_OBJECT (trans,
"received NEW_SEGMENT in non-time format, ignoring");
}
GST_STREAM_UNLOCK (pad);
break;
}
default:
break;
}

View file

@ -59,6 +59,13 @@ struct _GstBaseTransform {
gboolean delay_configure;
gboolean pending_configure;
gboolean have_newsegment;
gdouble segment_rate;
gint64 segment_start;
gint64 segment_stop;
gint64 segment_base;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
};

View file

@ -496,7 +496,8 @@ gst_base_sink_handle_object (GstBaseSink * basesink, GstPad * pad,
&basesink->segment_base);
if (format != GST_FORMAT_TIME) {
GST_DEBUG ("received non time %d DISCONT %" G_GINT64_FORMAT
GST_DEBUG_OBJECT (basesink,
"received non time %d NEW_SEGMENT %" G_GINT64_FORMAT
" -- %" G_GINT64_FORMAT ", base %" G_GINT64_FORMAT,
format, basesink->segment_start, basesink->segment_stop,
basesink->segment_base);
@ -507,7 +508,8 @@ gst_base_sink_handle_object (GstBaseSink * basesink, GstPad * pad,
basesink->segment_stop = -1;
basesink->segment_base = -1;
} else {
GST_DEBUG ("received DISCONT %" GST_TIME_FORMAT " -- %"
GST_DEBUG_OBJECT (basesink,
"received DISCONT %" GST_TIME_FORMAT " -- %"
GST_TIME_FORMAT ", base %" GST_TIME_FORMAT,
GST_TIME_ARGS (basesink->segment_start),
GST_TIME_ARGS (basesink->segment_stop),
@ -551,13 +553,21 @@ gst_base_sink_handle_object (GstBaseSink * basesink, GstPad * pad,
* range since the sink might be able to clip the sample. */
if (GST_CLOCK_TIME_IS_VALID (end) &&
GST_CLOCK_TIME_IS_VALID (basesink->segment_start)) {
if (end <= basesink->segment_start)
if (end <= basesink->segment_start) {
GST_DEBUG ("buffer end %" GST_TIME_FORMAT " <= segment start %"
GST_TIME_FORMAT ", dropping buffer", GST_TIME_ARGS (end),
GST_TIME_ARGS (basesink->segment_start));
goto dropping;
}
}
if (GST_CLOCK_TIME_IS_VALID (start) &&
GST_CLOCK_TIME_IS_VALID (basesink->segment_stop)) {
if (basesink->segment_stop <= start)
if (basesink->segment_stop <= start) {
GST_DEBUG ("buffer start %" GST_TIME_FORMAT " >= segment stop %"
GST_TIME_FORMAT ", dropping buffer", GST_TIME_ARGS (start),
GST_TIME_ARGS (basesink->segment_stop));
goto dropping;
}
}
}
basesink->preroll_queued++;
@ -675,9 +685,6 @@ dropping:
buf = GST_BUFFER (g_queue_pop_tail (basesink->preroll_queue));
GST_DEBUG ("dropping sample outside of segment boundaries %"
GST_TIME_FORMAT, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)));
gst_buffer_unref (buf);
GST_PREROLL_UNLOCK (pad);

View file

@ -759,6 +759,30 @@ gst_base_transform_event (GstPad * pad, GstEvent * event)
GST_STREAM_LOCK (pad);
unlock = TRUE;
break;
case GST_EVENT_NEWSEGMENT:
{
GstFormat format;
gdouble rate;
gint64 start, stop, base;
GST_STREAM_LOCK (pad);
gst_event_parse_newsegment (event, &rate, &format, &start, &stop, &base);
if (format == GST_FORMAT_TIME) {
GST_DEBUG_OBJECT (trans, "received NEW_SEGMENT %" GST_TIME_FORMAT
" -- %" GST_TIME_FORMAT ", base %" GST_TIME_FORMAT,
start, stop, base);
trans->have_newsegment = TRUE;
trans->segment_start = start;
trans->segment_stop = stop;
trans->segment_base = base;
trans->segment_rate = rate;
} else {
GST_DEBUG_OBJECT (trans,
"received NEW_SEGMENT in non-time format, ignoring");
}
GST_STREAM_UNLOCK (pad);
break;
}
default:
break;
}

View file

@ -59,6 +59,13 @@ struct _GstBaseTransform {
gboolean delay_configure;
gboolean pending_configure;
gboolean have_newsegment;
gdouble segment_rate;
gint64 segment_start;
gint64 segment_stop;
gint64 segment_base;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
};