Commit graph

225 commits

Author SHA1 Message Date
Sebastian Dröge
8d5c77535e event: Add step event quark 2009-11-18 08:00:45 +01:00
Sebastian Dröge
82f66b4036 event: Add a FIXME 0.11 for having flush events that don't reset running time 2009-11-04 18:59:23 +01:00
Edward Hervey
43dba6cefc miniobjects: Don't chain up to empty finalize method.
If ever we do anything in mini_object_finalize, we should make sure the 4
core miniobject finalize methods chain back up again.
2009-06-24 11:00:27 +02:00
Wim Taymans
386c516e51 add new API for framestepping
Add new STEP event and methods for creating/parsing the event
Update design docs.
Add new STEP_DONE message and method to create/parse.

API: GstEvent::gst_event_new_step()
API: GstEvent::gst_event_parse_step()
API: GstMessage::gst_message_new_step_done()
API: GstMessage::gst_message_parse_step_done()
2009-06-01 13:36:49 +02:00
Tim-Philipp Müller
c8acbbfde0 structure: add gst_structure_id_new() convenience function
Add convenience wrapper for gst_structure_id_empty_new() plus
gst_structure_id_set() and use it in a few places.

API: gst_structure_id_new()
2009-05-29 19:28:10 +01:00
Tim-Philipp Müller
bc7c7e9836 micro-optimisation: use GST_QUARK in more places
Use gst_structure_id_empty_new() in combination with GST_QUARK
rather than gst_structure_id_new() when creating message, event,
query and taglist structures. Mostly just because we can.
2009-05-29 19:27:43 +01:00
Wim Taymans
f7c5767559 docs: update docs for stream_time->running_time
Change some instances where we wrongly refer to stream time where it should have
been running time.
2009-05-21 17:32:00 +02:00
Sebastian Dröge
e7ccf786c3 gst: Use G_DEFINE_TYPE and friends or at least g_once_init_* in the _get_type() functions 2009-04-04 10:20:36 +02:00
Andy Wingo
5f5fbbdd7d Add sequence numbers to events and messages. See #559250.
Original commit message from CVS:
2008-11-04  Andy Wingo  <wingo@pobox.com>

Add sequence numbers to events and messages. See #559250.

* gst/gstutils.c (gst_util_seqnum_next, gst_util_seqnum_compare):
New functions.

* gst/gstevent.h:
* gst/gstevent.c (_gst_event_copy, gst_event_new): Initialize new
events with a new sequence number, and copy it when copying.
(gst_event_get_seqnum, gst_event_set_seqnum): Accessors for an
event's sequence number.

* gst/gstmessage.h:
* gst/gstmessage.c (_gst_message_copy, gst_message_new_custom):
(gst_event_get_seqnum, gst_event_set_seqnum): As with events, so
with messages.

* docs/gst/gstreamer-sections.txt: Add new functions to the docs.
2008-11-04 12:22:53 +00:00
Wim Taymans
97ec47cabb docs/design/part-TODO.txt: Remove item from the todo list because it was fixed with the latency state change rewrites.
Original commit message from CVS:
* docs/design/part-TODO.txt:
Remove item from the todo list because it was fixed with the latency
state change rewrites.
* docs/design/part-seeking.txt:
* docs/design/part-segments.txt:
Update some docs.
* gst/gstevent.c: (gst_event_new_new_segment_full),
(gst_event_parse_new_segment_full), (gst_event_new_buffer_size),
(gst_event_parse_buffer_size), (gst_event_new_qos),
(gst_event_parse_qos), (gst_event_new_seek),
(gst_event_parse_seek), (gst_event_new_latency),
(gst_event_parse_latency):
Use quarks to construct and parse events.
* gst/gstquark.c: (_priv_gst_quarks_initialize):
* gst/gstquark.h:
Add some more quarks to the table.
Emit a warning when the quark tables are not in sync.
* tests/check/gst/gstbus.c: (GST_START_TEST):
Add an assert.
2008-10-13 17:19:25 +00:00
Stefan Kost
f2da156af7 gst/gstevent.c: Use gst_format_get_name() to improve debug output.
Original commit message from CVS:
* gst/gstevent.c:
Use gst_format_get_name() to improve debug output.
* gst/gstpreset.c:
Remove #ifdef'ed code. Add TODO comment.
* gst/gstsegment.c:
Add debug output to ease spotting format != segment.format assertions.
2008-07-01 05:53:32 +00:00
Wim Taymans
0fff6fa810 gst/gstevent.c: Add some assert and docs for invalid input to the qos function.
Original commit message from CVS:
* gst/gstevent.c: (gst_event_new_qos):
Add some assert and docs for invalid input to the qos function.
2008-06-04 11:31:15 +00:00
Tim-Philipp Müller
9ac2434c1a gst/gstevent.c: Document that gst_event_new_tag() and gst_event_new_navigation() take ownership of the taglist/struct...
Original commit message from CVS:
* gst/gstevent.c:
Document that gst_event_new_tag() and gst_event_new_navigation()
take ownership of the taglist/structure passed to them. (#533635).
2008-05-18 11:35:43 +00:00
Wim Taymans
cf45b88349 Add method to conveniently check the name of a custom event with gst_event_has_name().
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstevent.c: (gst_event_has_name):
* gst/gstevent.h:
* tests/check/gst/gstevent.c: (GST_START_TEST):
Add method to conveniently check the name of a custom event with
gst_event_has_name().
Reformat the event docs so that related methods are put together instead
of the default alphabetical sort.
Update unit test with new method.
API: GstEvent::gst_event_has_name()
2008-04-29 11:23:51 +00:00
Sebastian Dröge
109511b55b Properly chain up finalize functions to the parent class.
Original commit message from CVS:
* gst/gstbuffer.c: (gst_buffer_class_init), (gst_buffer_finalize):
* gst/gstevent.c: (gst_event_class_init), (gst_event_finalize):
* gst/gstmessage.c: (gst_message_class_init),
(gst_message_finalize):
* gst/gstquery.c: (gst_query_class_init), (gst_query_finalize):
* plugins/elements/gstfilesrc.c: (gst_mmap_buffer_class_init),
(gst_mmap_buffer_finalize):
Properly chain up finalize functions to the parent class.
2008-02-12 12:04:43 +00:00
Stefan Kost
d8e77f9bf8 gst/gstevent.c: Little documentation improvment.
Original commit message from CVS:
* gst/gstevent.c:
Little documentation improvment.
* gst/gstpreset.c:
More TODO cleanups. Remove c++ comments.
* libs/gst/controller/gstcontroller.c:
Add TODO and use quark from static string.
* tests/check/gst/gstmessage.c:
* tests/check/gst/gststructure.c:
Use quark from static string.
2007-11-17 17:50:21 +00:00
Tim-Philipp Müller
99a41cefe3 g_type_class_ref() other types as well, see #349410 and #64764.
Original commit message from CVS:
* gst/gst.c: (init_post):
* gst/gstevent.c: (_gst_event_initialize):
* gst/gstquery.c: (_gst_query_initialize):
* libs/gst/dataprotocol/dataprotocol.c (gst_dp_init):
g_type_class_ref() other types as well, see #349410 and #64764.
* gst/gstbuffer.c: (_gst_buffer_initialize):
* gst/gstmessage.c: (_gst_message_initialize):
Simplify existing g_type_class_ref().
2007-11-01 21:50:05 +00:00
Tim-Philipp Müller
06f054445b Typo fixes; minor docs addition.
Original commit message from CVS:
* docs/design/part-events.txt:
* docs/design/part-overview.txt:
* gst/gstevent.c:
* gst/gsturi.c:
* gst/gsturi.h:
* libs/gst/base/gstbasesink.c:
Typo fixes; minor docs addition.
2007-04-28 11:29:54 +00:00
Wim Taymans
74da6ad937 docs/gst/gstreamer-sections.txt: Add docs for new methods.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
Add docs for new methods.
* gst/gstevent.c: (gst_event_new_latency),
(gst_event_parse_latency):
* gst/gstevent.h:
Add new LATENCY event to configure latency in a pipeline.
API: gst_event_new_latency
API: gst_event_parse_latency
* gst/gstmessage.c: (gst_message_new_buffering),
(gst_message_new_lost_preroll), (gst_message_new_prerolled),
(gst_message_new_latency), (gst_message_parse_buffering),
(gst_message_parse_lost_preroll):
* gst/gstmessage.h:
Added messages used in draft-latency.
API: gst_message_new_lost_preroll
API: gst_message_parse_lost_preroll
API: gst_message_new_prerolled
API: gst_message_new_latency
* gst/gstquery.c: (gst_query_new_latency), (gst_query_set_latency),
(gst_query_parse_latency):
* gst/gstquery.h:
Implemented new latency query as in design doc.
API: gst_query_new_latency
API: gst_query_set_latency
API: gst_query_parse_latency
2007-02-02 11:48:48 +00:00
Wim Taymans
ececbda2b2 gst/gstevent.*: Reserve LATENCY event.
Original commit message from CVS:
* gst/gstevent.c:
* gst/gstevent.h:
Reserve LATENCY event.
2007-01-10 10:21:47 +00:00
Wim Taymans
42d34f86ba Update some docs regarding reverse playback.
Original commit message from CVS:
* docs/design/part-trickmodes.txt:
* gst/gstevent.c:
Update some docs regarding reverse playback.
2006-10-16 11:46:04 +00:00
Yves Lefebvre
1b417192e6 gst/gstelement.h: Clarify _NO_PREROLL a bit more.
Original commit message from CVS:
* gst/gstelement.h:
Clarify _NO_PREROLL a bit more.
* gst/gstevent.c:
Fix docs.
* gst/gstpad.c: (gst_pad_link_check_hierarchy),
(gst_pad_get_caps_unlocked), (gst_pad_save_thyself),
(handle_pad_block), (gst_pad_push_event), (gst_pad_send_event):
Patch by: Yves Lefebvre <ivanohe at abacom dot com> Fix possible deadlock
due to wrong locking order. Fixes #361769.
Remove some redundant/misplaced checks in pad_block.
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_position):
For negative rates, count backwards from the duration.
2006-10-13 13:27:46 +00:00
Wim Taymans
0a53651b1f gst/gstevent.c: Rename some more @cur to @start to fix docs.
Original commit message from CVS:
* gst/gstevent.c: (gst_event_new_seek), (gst_event_parse_seek):
Rename some more @cur to @start to fix docs.
* gst/gstsegment.c: (gst_segment_set_seek):
Fix typo.
time and start must always stay in sync as defined in design doc.
* gst/gsttaglist.c: (gst_tag_list_is_empty):
Rename param to fix docs.
* tests/check/gst/gstsegment.c: (GST_START_TEST):
Check that start and time are in sync.
* tests/check/pipelines/parse-launch.c:
(gst_parse_test_element_change_state):
Activate pad before adding to the element.
2006-10-09 17:15:39 +00:00
Wim Taymans
89814eed61 docs/design/part-qos.txt: Fix typo.
Original commit message from CVS:
* docs/design/part-qos.txt:
Fix typo.
* gst/gstevent.c:
* gst/gstevent.h:
Update seek event docs regarding negative rates.
Rename @cur to @start.
* gst/gstsegment.c: (gst_segment_set_seek):
* gst/gstsegment.h:
Update set_seek docs regarding negative rates.
Correctly update last_stop to @stop when dealing with negative
rates.
Rename @cur to @start.
* tests/check/gst/gstpad.c: (GST_START_TEST):
Activate pads before trying to use them.
* tests/check/gst/gstsegment.c: (GST_START_TEST),
(gst_segment_suite):
Add simple check for segments and negative rates.
2006-10-09 16:33:29 +00:00
Alessandro Decina
86a6abe32d gst/gstevent.c: Fix gst_mini_object_make_writable() and gst_event_copy() for events with event structures by setting ...
Original commit message from CVS:
Patch by: Alessandro Decina  <alessandro at nnva org>
* gst/gstevent.c: (_gst_event_copy):
Fix gst_mini_object_make_writable() and gst_event_copy() for events
with event structures by setting the parent refcount address of the
copied structure to the address of the refcount member of the newly
copied event rather than the address of the refcount member of the
original event. Fixes #358737.
* tests/check/gst/gstevent.c: (GST_START_TEST):
Unit test for the above.
2006-10-02 08:37:24 +00:00
Wim Taymans
84fc21c3c1 gst/gstbin.c: Update documentation.
Original commit message from CVS:
* gst/gstbin.c:
Update documentation.
* gst/gstelement.c: (gst_element_class_init),
(gst_element_release_request_pad), (gst_element_set_clock),
(gst_element_get_index), (gst_element_add_pad),
(gst_element_remove_pad), (gst_element_get_random_pad),
(gst_element_send_event), (gst_element_get_query_types),
(gst_element_query), (gst_element_post_message),
(gst_element_message_full), (gst_element_continue_state),
(gst_element_lost_state), (gst_element_save_thyself),
(gst_element_restore_thyself):
Documentation updates.
Rename last bit of the new-pad -> pad-added signal rename.
Fix the case where an element query would only work if the source
pad was linked.
Avoid some useless type checking in message handling.
* gst/gstevent.c:
* gst/gstevent.h:
* gst/gstutils.c:
Documentation updates.
2006-09-15 08:32:57 +00:00
Wim Taymans
ff240086e0 docs/design/part-qos.txt: Bring docs in line with the code. Mostly the sign of the jitter was wrong in the docs.
Original commit message from CVS:
* docs/design/part-qos.txt:
Bring docs in line with the code. Mostly the sign of the jitter was
wrong in the docs.
* gst/gstclock.c:
Fix the docs for the jitter.
* gst/gstevent.c: (gst_event_new_custom), (gst_event_new_tag),
(gst_event_parse_tag), (gst_event_new_buffer_size),
(gst_event_parse_buffer_size), (gst_event_parse_qos),
(gst_event_new_seek), (gst_event_parse_seek),
(gst_event_new_navigation):
Make sure the GstStructure has no parent when creating custom
events.
Add some more argument checking so that we avoid 0.0 rates.
Flesh out the docs for the QoS event some more.
2006-08-11 13:05:30 +00:00
Stefan Kost
eb006ba645 gst/: constify quark registration strings. Fixes #344115
Original commit message from CVS:
Patch by: Stefan Kost <ensonic at sonicpulse dot de>
* gst/gstevent.c: (gst_event_get_type):
* gst/gstmessage.c:
* gst/gstpad.c: (gst_pad_chain_unchecked), (gst_pad_chain),
(gst_pad_push):
constify quark registration strings. Fixes #344115
Avoid unneeded type checking is _pad_push() by internally
calling gst_pad_chain_unchecked().
2006-06-12 09:28:35 +00:00
Thomas Vander Stichele
98b69a8c0d debug change
Original commit message from CVS:
debug change
2006-06-02 09:13:56 +00:00
Tim-Philipp Müller
d619a982a8 Minor docs fixes.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstevent.c:
* gst/gstevent.h:
* gst/gstmessage.h:
Minor docs fixes.
2006-05-14 19:25:51 +00:00
Thomas Vander Stichele
b4e05d624b gst/: make sure some essential types used by events are registered as part of gst_init()
Original commit message from CVS:
* gst/gstevent.c: (_gst_event_initialize):
* gst/gstformat.c: (_gst_format_initialize):
make sure some essential types used by events are registered
as part of gst_init()
* gst/gstvalue.c: (gst_value_serialize_flags):
if no flags are set, serialize them to a value that represents NONE
so that deserializing them works
* tests/check/gst/gstvalue.c: (GST_START_TEST), (gst_value_suite):
add tests for serialization and deserialization of flags
2006-05-10 14:05:46 +00:00
Wim Taymans
b9dbb55105 docs/design/part-overview.txt: Make upsteam/downstream concepts more clear.
Original commit message from CVS:
* docs/design/part-overview.txt:
Make upsteam/downstream concepts more clear.
Give an example of serialized/non-serialized events.
* docs/design/part-events.txt:
* docs/design/part-streams.txt:
Mention applied_rate.
* docs/design/part-trickmodes.txt:
Mention applied rate, flesh out some more use cases.
* gst/gstevent.c: (gst_event_new_new_segment),
(gst_event_parse_new_segment), (gst_event_new_new_segment_full),
(gst_event_parse_new_segment_full), (gst_event_new_tag),
(gst_event_parse_tag), (gst_event_new_buffer_size),
(gst_event_parse_buffer_size), (gst_event_new_qos),
(gst_event_parse_qos), (gst_event_parse_seek),
(gst_event_new_navigation):
* gst/gstevent.h:
Add applied_rate field to NEWSEGMENT event.
API: gst_event_new_new_segment_full()
API: gst_event_parse_new_segment_full()
* gst/gstsegment.c: (gst_segment_init), (gst_segment_set_seek),
(gst_segment_set_newsegment), (gst_segment_set_newsegment_full),
(gst_segment_to_stream_time), (gst_segment_to_running_time):
* gst/gstsegment.h:
Add applied_rate to GstSegment structure.
Make calculation of stream_time and running_time more correct
wrt rate/applied_rate.
Add some more docs.
API: GstSegment::applied_rate field
API: gst_segment_set_newsegment_full();
* libs/gst/base/gstbasesink.c: (gst_base_sink_configure_segment),
(gst_base_sink_get_sync_times), (gst_base_sink_get_position):
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_sink_eventfunc),
(gst_base_transform_handle_buffer):
Parse and use applied_rate in the GstSegment field.
* tests/check/gst/gstevent.c: (GST_START_TEST):
Add check for applied_rate field.
* tests/check/gst/gstsegment.c: (GST_START_TEST),
(gstsegments_suite):
Add more checks for various GstSegment operations.
2006-05-08 09:52:33 +00:00
James Andrewartha
5deab8d3c3 Make sure gstprivate.h and/or config.h are always included first, otherwise some of our defines (like _FILE_OFFSET_BI...
Original commit message from CVS:
Patch by: James Andrewartha <trs80 at tartarus uwa edu au>
* gst/gst.c:
* gst/gstbus.c:
* gst/gstclock.c:
* gst/gstevent.c:
* gst/gstformat.c:
* gst/gstmessage.c:
* gst/gstparse.c:
* gst/gstquery.c:
* gst/gstutils.c:
* gst/parse/Makefile.am:
* libs/gst/base/gstadapter.c:
* libs/gst/base/gstbasesrc.c:
* libs/gst/base/gstpushsrc.c:
* libs/gst/base/gsttypefindhelper.c:
* plugins/elements/gstfakesrc.c:
* plugins/elements/gstidentity.c:
Make sure gstprivate.h and/or config.h are
always included first, otherwise some of our
defines (like _FILE_OFFSET_BITS) might be
redefined in the system headers. Fixes build
on opensolaris (#340016).
2006-05-04 15:20:14 +00:00
Wim Taymans
7a88e2a762 docs/libs/gstreamer-libs-sections.txt: Added basesink new methods.
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
Added basesink new methods.
* gst/gstevent.c:
* gst/gstevent.h:
Docs updates. Flesh out the QoS docs.
* libs/gst/base/gstadapter.c:
Small doc clarification about ownership and flushing.
* libs/gst/base/gstbasesink.c: (gst_base_sink_set_sync),
(gst_base_sink_get_sync), (gst_base_sink_set_max_lateness),
(gst_base_sink_get_max_lateness), (gst_base_sink_set_property),
(gst_base_sink_get_property), (gst_base_sink_do_sync):
* libs/gst/base/gstbasesink.h:
Added new methods to allow subclass to control max-lateness
and sync.
Generate very basic QoS events based on last sync observation.
Updated docs, fix typo, added some QoS blurb.
* libs/gst/base/gstbasesrc.c:
Remove obsolete _get_state() calls from docs.
2006-03-07 16:21:02 +00:00
Wim Taymans
b37766658e docs/design/part-TODO.txt: Updated TODO list, basesrc supports seeking to non-bytes formats.
Original commit message from CVS:
* docs/design/part-TODO.txt:
Updated TODO list, basesrc supports seeking to non-bytes
formats.

* docs/design/part-element-sink.txt:
Update docs.

* gst/gstbin.c: (bin_replace_message),
(gst_bin_handle_message_func):
* gst/gstbus.c: (gst_bus_post), (gst_bus_pop):
* gst/gstevent.c: (gst_event_finalize):
* gst/gstpad.c: (gst_pad_event_default_dispatch),
(gst_pad_send_event):
Use shiny new _TYPE_NAME macros.

* libs/gst/base/gstbasesrc.c: (gst_base_src_get_range):
Move debug statement up.

* gst/gstelement.c: (gst_element_set_locked_state):
Add some debugging.
2006-02-13 11:52:43 +00:00
Stefan Kost
a53172d79d doc fixes, to link to function, just write gst_cool_function(), don't prefix with '#'
Original commit message from CVS:
* gst/gstcaps.c:
* gst/gstelement.c: (gst_element_send_event):
* gst/gstevent.c:
* gst/gstinfo.c:
* gst/gstiterator.c:
* gst/gstiterator.h:
* gst/gstpad.c: (gst_pad_send_event):
* gst/gststructure.c:
* gst/gsturi.c:
* gst/gstutils.c:
* gst/gstvalue.c:
* libs/gst/base/gstadapter.c:
doc fixes, to link to function, just write gst_cool_function(), don't
prefix with '#'
2006-01-27 22:34:51 +00:00
Stefan Kost
b352cee4f7 added code for downstream events, reviewed docs in gstevent.c
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstbin.c: (bin_element_is_src), (src_iterator_filter),
(gst_bin_iterate_sources), (gst_bin_send_event):
* gst/gstbin.h:
* gst/gstelement.c: (gst_element_send_event):
* gst/gstevent.c:
* gst/gstpad.c: (gst_pad_send_event):
added code for downstream events, reviewed docs in gstevent.c
2006-01-26 06:57:14 +00:00
Jan Schmidt
14816cdb49 gst/gstevent.c: Fix docs typo
Original commit message from CVS:
* gst/gstevent.c:
Fix docs typo

* plugins/elements/gstqueue.c: (gst_queue_handle_sink_event),
(gst_queue_chain), (gst_queue_push_one), (gst_queue_loop):
Do some refactoring. Doesn't actually change functionality,
but makes landing the DRAIN event easier later.
2006-01-19 13:30:31 +00:00
Thomas Vander Stichele
288f61d21f expand tabs
Original commit message from CVS:
expand tabs
2005-12-06 19:29:15 +00:00
Thomas Vander Stichele
3ea45adb90 gst/gstevent.*: fix #320529 - clean up new_segment API and structure.
Original commit message from CVS:

* gst/gstevent.c: (gst_event_new_new_segment),
(gst_event_parse_new_segment):
* gst/gstevent.h:
fix #320529 - clean up new_segment API and structure.
Let's hope everyone was using the methods, and not the structure.
2005-11-29 17:23:56 +00:00
Wim Taymans
a9f7f7b7b6 Doc fixes.
Original commit message from CVS:
Doc fixes.
2005-11-24 09:44:07 +00:00
Andy Wingo
19858fd9f0 gst/gstevent.h (gst_event_new_new_segment) (gst_event_parse_new_segment, gst_event_new_buffer_size)
Original commit message from CVS:
2005-11-22  Andy Wingo  <wingo@pobox.com>

* gst/gstevent.h (gst_event_new_new_segment)
(gst_event_parse_new_segment, gst_event_new_buffer_size)
(gst_event_parse_buffer_size, gst_ghost_pad_new_no_target):
Renamed from *_newsegment, *_buffersize, *_notarget.

* scripts/update-funcnames: New script, performs the changes
listed above.
2005-11-22 11:48:58 +00:00
Andy Wingo
e4b8378ba4 gst/gstevent.h (GST_EVENT_FILLER): Removed. Can be added back during the stable series if we need it. Fixes #319178.
Original commit message from CVS:
2005-11-21  Andy Wingo  <wingo@pobox.com>

* gst/gstevent.h (GST_EVENT_FILLER): Removed. Can be added back
during the stable series if we need it. Fixes #319178.

* gst/gstevent.c (gst_event_new_filler): Removed.

* check/gst/gstevent.c: Update comment about filler events.
2005-11-21 13:03:36 +00:00
Andy Wingo
33d5749b88 gst/gstevent.h (GstEventTypeFlags): New data type, the flags of the event type (upstream, downstream, serialized). Re...
Original commit message from CVS:
2005-11-21  Andy Wingo  <wingo@pobox.com>

* gst/gstevent.h (GstEventTypeFlags): New data type, the flags of
the event type (upstream, downstream, serialized). Renamed
GST_EVDIR_* and GST_EVSER to GST_EVENT_TYPE_*.
(GstEventType): Use GstEventTypeFlags. Rename CUSTOM_UP to
CUSTOM_UPSTREAM, CUSTOM_DS to CUSTOM_DOWNSTREAM, etc.

* gst/gstevent.c: Update for new CUSTOM event names.

* check/gst/gstevent.c: Update check for new CUSTOM event names.

* gst/gstevent.h:
* gst/gstevent.c (gst_event_type_get_flags): New function. Fixes
bug #319392.
2005-11-21 11:06:42 +00:00
Wim Taymans
30bb9cee7e gst/gstevent.c: Small doc update.
Original commit message from CVS:
* gst/gstevent.c:
Small doc update.
2005-11-15 18:34:28 +00:00
Wim Taymans
b204604572 gst/base/gstbasesink.c: Don't use invalid stream_time.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_get_position):
Don't use invalid stream_time.

* gst/gstevent.c: (gst_event_new_newsegment):
stream_time in newsegment cannot be undefined.
2005-10-25 10:15:45 +00:00
Wim Taymans
e1a166a584 And 2% more doc coverage.
Original commit message from CVS:
* docs/gst/gstreamer-docs.sgml:
* docs/gst/gstreamer-sections.txt:
* gst/gstelement.h:
* gst/gstevent.c:
* gst/gstevent.h:
* gst/gstmessage.h:
* gst/gstpad.h:
* gst/gstparse.h:
* gst/gsttask.c: (gst_task_finalize), (gst_task_func):
* gst/gsttask.h:
* gst/gstutils.c:
* gst/gstutils.h:
And 2% more doc coverage.
2005-10-21 11:36:32 +00:00
Andy Wingo
839de99850 gst/base/gstcollectpads.c (gst_collectpads_chain): Slight cleanup.
Original commit message from CVS:
2005-10-17  Andy Wingo  <wingo@pobox.com>

* gst/base/gstcollectpads.c (gst_collectpads_chain): Slight
cleanup.

* gst/Makefile.am (gstenumtypes.c): Threadsafe now.

* gst/gstevent.c (gst_event_new, gst_event_finalize): LOG.

* gst/gstelement.c (gst_element_get_state_func): s/INFO/DEBUG/.
(gst_element_get_state_func): Better debug message.
(gst_element_commit_state): s/INFO/DEBUG/.
(gst_element_lost_state, gst_element_change_state):

* gst/gstmessage.c (gst_message_init): s/INFO/LOG/.
(gst_message_new_custom): s/INFO/LOG/.
2005-10-17 18:09:32 +00:00
Thomas Vander Stichele
bef56ce78d various style fixes
Original commit message from CVS:
various style fixes
2005-10-15 16:01:57 +00:00
Thomas Vander Stichele
2dd1598c56 whitespace fixes
Original commit message from CVS:
whitespace fixes
2005-10-15 15:30:24 +00:00
Wim Taymans
cc28efc239 check/: Moved sinks2 testcode in sinks check.
Original commit message from CVS:
* check/Makefile.am:
* check/states/sinks.c: (GST_START_TEST), (gst_object_suite):
* check/states/sinks2.c:
Moved sinks2 testcode in sinks check.

* gst/gstbin.c: (gst_bin_provide_clock_func), (gst_bin_add_func),
(gst_bin_remove_func), (gst_bin_recalc_state),
(gst_bin_change_state_func), (bin_bus_handler):
Fix potential race condition when _get_state() iterated over an
ASYNC element right before it posted a state completion.

* gst/gstclock.h:
Do proper cast here.

* gst/gstevent.c: (gst_event_new_newsegment),
(gst_event_parse_newsegment):
A playback rate of 0.0 is not allowed.
2005-10-12 08:38:06 +00:00
Wim Taymans
c97e237a14 Added extra flag to newsegment for future API freeze.
Original commit message from CVS:
* check/gst/gstevent.c: (GST_START_TEST):
* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_change_state):
* gst/base/gstbasesrc.c: (gst_base_src_default_newsegment):
* gst/base/gstbasetransform.c: (gst_base_transform_event):
* gst/elements/gstfilesink.c: (gst_file_sink_event):
* gst/gstevent.c: (gst_event_new_newsegment),
(gst_event_parse_newsegment):
* gst/gstevent.h:
Added extra flag to newsegment for future API freeze.
Updated check and base elements.
2005-10-11 16:28:49 +00:00
Wim Taymans
4dd6c2a587 gst/gstbin.*: Prepare to make current EOS message queue more generic.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_init), (gst_bin_provide_clock_func),
(is_eos), (gst_bin_add_func), (gst_bin_remove_func),
(gst_bin_recalc_state), (gst_bin_change_state_func),
(gst_bin_dispose), (bin_bus_handler):
* gst/gstbin.h:
Prepare to make current EOS message queue more generic.
Fix some typos.

* gst/gstevent.c: (gst_event_new_newsegment),
(gst_event_parse_newsegment):
* gst/gstevent.h:
Rename base to stream_time.

* gst/gstmessage.h:
Fix typo in docs.
2005-10-11 15:05:55 +00:00
Thomas Vander Stichele
2b7c3ac5e5 gst/: doc updates
Original commit message from CVS:

* gst/gstcaps.c:
* gst/gstevent.c:
doc updates
* gst/gstvalue.c: (gst_value_deserialize_int_helper):
don't use long long, it's not portable.  Replacing with
gint64 seems to work; let's hope no skeletons fall out of the closet.
2005-10-10 09:48:21 +00:00
Stefan Kost
f9c812c51c more docs, fix compilation
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstevent.c:
* gst/gstevent.h:
* gst/gstinfo.c:
* gst/gstinfo.h:
* gst/gstmessage.c: (gst_message_parse_state_changed):
* gst/gstpad.c:
* gst/gstpad.h:
more docs, fix compilation
2005-10-09 20:49:46 +00:00
Stefan Kost
796a232d59 more docs
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstelementfactory.c:
* gst/gstevent.c:
* gst/gsttaglist.c:
more docs
2005-10-08 18:07:20 +00:00
Wim Taymans
bed8c238f0 gst/gstevent.*: Fix event quark registration.
Original commit message from CVS:
* gst/gstevent.c:
* gst/gstevent.h:
Fix event quark registration.
Add some space between events so we can insert them in the
right groups.
2005-10-08 16:13:50 +00:00
Wim Taymans
c6ae655d0a gst/gstevent.*: New event for future idea.
Original commit message from CVS:
* gst/gstevent.c: (gst_event_new_buffersize),
(gst_event_parse_buffersize):
* gst/gstevent.h:
New event for future idea.
2005-10-07 18:02:14 +00:00
Thomas Vander Stichele
2effd1018d initialize quarks
Original commit message from CVS:
initialize quarks
2005-10-06 14:20:15 +00:00
Thomas Vander Stichele
37c3c87edb gst/gstevent.*: add string representations for event types
Original commit message from CVS:

* gst/gstevent.c: (gst_event_type_get_name),
(gst_event_type_to_quark), (gst_event_finalize), (gst_event_new):
* gst/gstevent.h:
add string representations for event types
2005-10-06 13:55:43 +00:00
Wim Taymans
84770e8437 Various documentation updates.
Original commit message from CVS:
* docs/design/part-events.txt:
* docs/design/part-gstbus.txt:
* docs/design/part-gstpipeline.txt:
* docs/design/part-messages.txt:
* docs/design/part-overview.txt:
* docs/design/part-segments.txt:
* gst/gstbin.c:
* gst/gstbuffer.c:
* gst/gstclock.c:
* gst/gstelement.c:
* gst/gstevent.c:
* gst/gstfilter.c:
* gst/gstiterator.c:
Various documentation updates.
2005-09-24 14:14:03 +00:00
Michael Smith
4e78d6183f Various fixes for unseekable, unmmapable, and non-normal files, so that fallback to read() rather than mmap() works.
Original commit message from CVS:
Various fixes for unseekable, unmmapable, and non-normal files, so that
fallback to read() rather than mmap() works.

Allow newsegment events with start == end, so that cases where that's
correct work (e.g. filesrc on a zero-size file).
2005-09-08 17:23:57 +00:00
Wim Taymans
8099c34220 gst/base/gstbasesink.*: Handle newsegments more correctly.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_event), (gst_base_sink_do_sync),
(gst_base_sink_handle_event):
* gst/base/gstbasesink.h:
Handle newsegments more correctly.

* gst/gstbus.c:
Fix docs.

* gst/gstevent.c: (gst_event_new_newsegment):
A newsegment cannot have a start_time of -1
2005-09-01 18:12:18 +00:00
Thomas Vander Stichele
e5d298f4f4 docs/faq/gst-uninstalled: add -good
Original commit message from CVS:

* docs/faq/gst-uninstalled:
add -good
* gst/gstevent.c:
* gst/gstevent.h:
remove wrong docs
* gst/gstutils.c: (gst_element_link_filtered):
* gst/gstutils.h:
add gst_element_link_filtered
2005-08-31 15:27:55 +00:00
Stefan Kost
a28d63431a gst/gstbin.h: removed ';' from the end of macro defs
Original commit message from CVS:
* gst/gstbin.h:
removed ';' from the end of macro defs
* docs/gst/gstreamer-docs.sgml:
* docs/gst/gstreamer-sections.txt:
* docs/gst/tmpl/.cvsignore:
* gst/gstbus.h:
* gst/gstelement.c: (gst_element_class_init),
(gst_element_set_state), (activate_pads),
(gst_element_save_thyself):
* gst/gstevent.c: (gst_event_new_newsegment):
* gst/gstevent.h:
* gst/gstiterator.c:
* gst/gstiterator.h:
* gst/gstpad.c:
* 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)
2005-08-25 23:17:18 +00:00
Wim Taymans
bc3dfd5d55 gst/gstevent.*: Some more debugging output and doc cleanups.
Original commit message from CVS:
* gst/gstevent.c: (_gst_event_copy), (gst_event_new_custom),
(gst_event_new_newsegment), (gst_event_parse_newsegment),
(gst_event_new_tag), (gst_event_parse_tag), (gst_event_new_qos),
(gst_event_parse_qos), (gst_event_new_seek),
(gst_event_parse_seek):
* gst/gstevent.h:
Some more debugging output and doc cleanups.

* gst/gstqueue.c: (gst_queue_handle_sink_event):
Fix possible deadlock.
2005-08-23 18:17:01 +00:00
Stefan Kost
33e36f56a4 inlined remaining docs, added missing doc comments
Original commit message from CVS:
* docs/gst/tmpl/gstevent.sgml:
* gst/gstevent.c:
* gst/gstevent.h:
inlined remaining docs, added missing doc comments
2005-08-22 10:37:02 +00:00
Wim Taymans
66d7070ef1 Some docs updates
Original commit message from CVS:
* CHANGES-0.9:
* docs/design/part-TODO.txt:
* docs/design/part-events.txt:
Some docs updates

* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_event), (gst_base_sink_do_sync),
(gst_base_sink_activate_push), (gst_base_sink_activate_pull):
* gst/base/gstbasesrc.c: (gst_base_src_send_discont),
(gst_base_src_do_seek), (gst_base_src_event_handler),
(gst_base_src_loop):
* gst/base/gstbasetransform.c: (gst_base_transform_transform_caps),
(gst_base_transform_configure_caps), (gst_base_transform_setcaps),
(gst_base_transform_get_size), (gst_base_transform_buffer_alloc),
(gst_base_transform_event), (gst_base_transform_handle_buffer),
(gst_base_transform_set_passthrough),
(gst_base_transform_is_passthrough):
* gst/elements/gstfakesink.c: (gst_fake_sink_event):
* gst/elements/gstfilesink.c: (gst_file_sink_event):
Event updates.

* gst/gstbuffer.h:
Use faster casts.

* gst/gstelement.c: (gst_element_seek):
* gst/gstelement.h:
Update gst_element_seek.

* gst/gstevent.c: (gst_event_finalize), (_gst_event_copy),
(gst_event_new), (gst_event_new_custom), (gst_event_get_structure),
(gst_event_new_flush_start), (gst_event_new_flush_stop),
(gst_event_new_eos), (gst_event_new_newsegment),
(gst_event_parse_newsegment), (gst_event_new_tag),
(gst_event_parse_tag), (gst_event_new_filler), (gst_event_new_qos),
(gst_event_parse_qos), (gst_event_new_seek),
(gst_event_parse_seek), (gst_event_new_navigation):
* gst/gstevent.h:
Make GstEvent use GstStructure. Add parsing code, make sure the
API is sufficiently generic.
Mark possible directions of events and serialization.

* gst/gstmessage.c: (gst_message_init), (gst_message_finalize),
(_gst_message_copy), (gst_message_new_segment_start),
(gst_message_new_segment_done), (gst_message_new_custom),
(gst_message_parse_segment_start),
(gst_message_parse_segment_done):
Small cleanups.

* gst/gstpad.c: (gst_pad_get_caps_unlocked), (gst_pad_accept_caps),
(gst_pad_set_caps), (gst_pad_send_event):
Update for new events.
Catch events sent in wrong directions.

* gst/gstqueue.c: (gst_queue_link_src),
(gst_queue_handle_sink_event), (gst_queue_chain), (gst_queue_loop),
(gst_queue_handle_src_query):
Event updates.

* gst/gsttag.c:
* gst/gsttag.h:
Remove event code from this file.

* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packet_from_event),
(gst_dp_event_from_packet):
Event updates.
2005-07-27 18:33:03 +00:00
Wim Taymans
2b1ce5f29e docs/design/: Some more docs in the works.
Original commit message from CVS:
* docs/design/part-dynamic.txt:
* docs/design/part-events.txt:
* docs/design/part-seeking.txt:
Some more docs in the works.

* gst/base/gstbasetransform.c: (gst_base_transform_transform_caps),
(gst_base_transform_getcaps), (gst_base_transform_configure_caps),
(gst_base_transform_setcaps), (gst_base_transform_get_size),
(gst_base_transform_buffer_alloc), (gst_base_transform_event),
(gst_base_transform_handle_buffer),
(gst_base_transform_sink_activate_push),
(gst_base_transform_src_activate_pull),
(gst_base_transform_set_passthrough),
(gst_base_transform_is_passthrough):
Refcounting fixes.

* gst/gstbus.c: (gst_bus_source_dispatch), (gst_bus_poll):
Cleanups.

* gst/gstevent.c: (gst_event_finalize):
Set SRC to NULL.

* gst/gstutils.c: (gst_element_unlink),
(gst_pad_get_parent_element), (gst_pad_proxy_getcaps),
(gst_pad_proxy_setcaps):
* gst/gstutils.h:
Add _get_parent_element() to get a pads parent as an element.
2005-07-18 08:28:48 +00:00
Thomas Vander Stichele
bd728f0b2c doc fixes
Original commit message from CVS:
doc fixes
2005-06-29 12:23:35 +00:00
Andy Wingo
f2cf753b17 gst/base/gsttypefindhelper.c (gst_type_find_helper): Unref any remaining buffer.
Original commit message from CVS:
2005-06-27  Andy Wingo  <wingo@pobox.com>

* gst/base/gsttypefindhelper.c (gst_type_find_helper): Unref any
remaining buffer.

* gst/gsttrace.c (gst_alloc_trace_list_sorted): New helper,
returns a sorted copy of the trace list.
(gst_alloc_trace_print_live): New API, only prints traces with
live objects. Sort the list.
(gst_alloc_trace_print_all): Sort the list.
(gst_alloc_trace_print): Align columns.

* gst/elements/gstttypefindelement.c:
* gst/elements/gsttee.c:
* gst/base/gstbasesrc.c:
* gst/base/gstbasesink.c:
* gst/base/gstbasetransform.c:
* gst/gstqueue.c: Adapt for pad activation changes.

* gst/gstpipeline.c (gst_pipeline_init): Unref after parenting
sched.
(gst_pipeline_dispose): Drop ref on sched.

* gst/gstpad.c (gst_pad_init): Set the default activate func.
(gst_pad_activate_default): Push mode by default.
(pre_activate_switch, post_activate_switch): New stubs, things to
do before and after switching activation modes on pads.
(gst_pad_set_active): Take a boolean and not a mode, dispatch to
the pad's activate function to choose which mode to activate.
Shortcut on deactivation and call the right function directly.
(gst_pad_activate_pull): New API, (de)activates a pad in pull
mode.
(gst_pad_activate_push): New API, same for push mode.
(gst_pad_set_activate_function)
(gst_pad_set_activatepull_function)
(gst_pad_set_activatepush_function): Setters for new API.

* gst/gstminiobject.c (gst_mini_object_new, gst_mini_object_free):
Trace all miniobjects.
(gst_mini_object_make_writable): Unref the arg if we copy, like
gst_caps_make_writable.

* gst/gstmessage.c (_gst_message_initialize): No trace init.

* gst/gstghostpad.c (gst_proxy_pad_do_activate)
(gst_proxy_pad_do_activatepull, gst_proxy_pad_do_activatepush):
Adapt for new pad API.

* gst/gstevent.c (_gst_event_initialize): Don't initialize trace.

* gst/gstelement.h:
* gst/gstelement.c (gst_element_iterate_src_pads)
(gst_element_iterate_sink_pads): New API functions.

* gst/gstelement.c (iterator_fold_with_resync): New utility,
should fold into gstiterator.c in some form.
(gst_element_pads_activate): Simplified via use of fold and
delegation of decisions to gstpad->activate.

* gst/gstbus.c (gst_bus_source_finalize): Set the bus to NULL,
help in debugging.

* gst/gstbuffer.c (_gst_buffer_initialize): Ref the buffer type
class once in init, like gstmessage. Didn't run into this issue
but it seems correct. Don't initialize a trace, gstminiobject does
that.

* check/pipelines/simple_launch_lines.c (test_stop_from_app): New
test, runs fakesrc ! fakesink, stopping on ::handoff via a message
to the bus.
(assert_live_count): New util function, uses alloc traces to check
cleanup.

* check/gst/gstghostpad.c (test_ghost_pads): More refcount checks.
To be modified when unlink drops the internal pad.
2005-06-27 18:35:05 +00:00
David Schleef
e134f7f75b check/Makefile.am: remove GstData checks
Original commit message from CVS:
* check/Makefile.am: remove GstData checks
* check/gst-libs/gdp.c: (START_TEST): fix for API changes
* gst/Makefile.am: add miniobject, remove data
* gst/gst.h: add miniobject, remove data
* gst/gstdata.c: remove
* gst/gstdata.h: remove
* gst/gstdata_private.h: remove
* gst/gsttypes.h: remove GstEvent and GstMessage
* gst/gstelement.c: (gst_element_post_message): fix for API changes
* gst/gstmarshal.list: change BOXED -> OBJECT
Implement GstMiniObject.
* gst/gstminiobject.c:
* gst/gstminiobject.h:
Modify to be subclasses of GstMiniObject.
* gst/gstbuffer.c: (_gst_buffer_initialize), (gst_buffer_get_type),
(gst_buffer_class_init), (gst_buffer_finalize), (_gst_buffer_copy),
(gst_buffer_init), (gst_buffer_new), (gst_buffer_new_and_alloc),
(gst_subbuffer_get_type), (gst_subbuffer_init),
(gst_buffer_create_sub), (gst_buffer_is_span_fast),
(gst_buffer_span):
* gst/gstbuffer.h:
* gst/gstevent.c: (_gst_event_initialize), (gst_event_get_type),
(gst_event_class_init), (gst_event_init), (gst_event_finalize),
(_gst_event_copy), (gst_event_new):
* gst/gstevent.h:
* gst/gstmessage.c: (_gst_message_initialize),
(gst_message_get_type), (gst_message_class_init),
(gst_message_init), (gst_message_finalize), (_gst_message_copy),
(gst_message_new), (gst_message_new_error),
(gst_message_new_warning), (gst_message_new_tag),
(gst_message_new_state_changed), (gst_message_new_application):
* gst/gstmessage.h:
* gst/gstprobe.c: (gst_probe_perform),
(gst_probe_dispatcher_dispatch):
* gst/gstprobe.h:
* gst/gstquery.c: (_gst_query_initialize), (gst_query_get_type),
(gst_query_class_init), (gst_query_finalize), (gst_query_init),
(_gst_query_copy), (gst_query_new):
Update elements for GstData -> GstMiniObject changes
* gst/gstquery.h:
* gst/gstqueue.c: (gst_queue_finalize), (gst_queue_locked_flush),
(gst_queue_chain), (gst_queue_loop):
* gst/elements/gstbufferstore.c:
(gst_buffer_store_add_buffer_func),
(gst_buffer_store_cleared_func), (gst_buffer_store_get_buffer):
* gst/elements/gstfakesink.c: (gst_fakesink_class_init),
(gst_fakesink_render):
* gst/elements/gstfakesrc.c: (gst_fakesrc_class_init):
* gst/elements/gstfilesrc.c: (gst_mmap_buffer_get_type),
(gst_mmap_buffer_class_init), (gst_mmap_buffer_init),
(gst_mmap_buffer_finalize), (gst_filesrc_map_region),
(gst_filesrc_create_read):
* gst/elements/gstidentity.c: (gst_identity_class_init):
* gst/elements/gsttypefindelement.c:
(gst_type_find_element_src_event), (free_entry_buffers),
(gst_type_find_element_handle_event):
* libs/gst/dataprotocol/dataprotocol.c:
(gst_dp_header_from_buffer):
* libs/gst/dataprotocol/dataprotocol.h:
* libs/gst/dataprotocol/dp-private.h:
2005-05-16 20:21:55 +00:00
Wim Taymans
71359c38a0 gst/: Better debugging of clocking info.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_basesink_base_init),
(gst_basesink_pad_getcaps), (gst_basesink_init),
(gst_basesink_do_sync):
* gst/gstclock.c: (gst_clock_entry_new):
* gst/gstevent.c: (gst_event_discont_get_value):
* gst/gstpipeline.c: (pipeline_bus_handler),
(gst_pipeline_change_state):
* gst/gstsystemclock.c: (gst_system_clock_id_wait_unlocked):
Better debugging of clocking info.
Allow NULL values when getting discont values.
2005-04-28 16:28:28 +00:00
David Schleef
46e13eb5e2 Convert everything from GstAtomicInt to g_atomic_int_*, and remove gstatomic.
Original commit message from CVS:
Convert everything from GstAtomicInt to g_atomic_int_*, and
remove gstatomic.
* gst/Makefile.am:
* gst/gstatomic.c:
* gst/gstatomic.h:
* gst/gstatomic_impl.h:
* gst/gstbuffer.c:
* gst/gstcaps.c:
* gst/gstcaps.h:
* gst/gstclock.c:
* gst/gstclock.h:
* gst/gstdata.c:
* gst/gstdata.h:
* gst/gstdata_private.h:
* gst/gstevent.c:
* gst/gstinfo.c:
* gst/gstinfo.h:
* gst/gstmessage.c:
* gst/gstobject.c:
* gst/gstobject.h:
* gst/gststructure.c:
* gst/gststructure.h:
* gst/gstutils.c: Add gst_atomic_int_set() compaitibility function.
* gst/gstutils.h:
2005-04-24 22:49:45 +00:00
Wim Taymans
3cfdcab18b gst/: Added rate to the discont event to prepare for variable speed and reverse playback.
Original commit message from CVS:
* gst/gstevent.c: (gst_event_new_discontinuous_valist),
(gst_event_new_discontinuous), (gst_event_discont_get_value):
* gst/gstevent.h:
* gst/gstpad.c: (gst_pad_set_active), (gst_pad_peer_set_active),
(gst_pad_pull_range):
Added rate to the discont event to prepare for variable speed
and reverse playback.
2005-03-31 09:46:28 +00:00
Wim Taymans
c2f41a8906 Next big merge.
Original commit message from CVS:
Next big merge.
Added GstBus for mainloop integration.
Added GstMessage for sending notifications on the bus.
Added GstTask as an abstraction for pipeline entry points.
Removed GstThread.
Removed Schedulers.
Simplified GstQueue for multithreaded core.
Made _link threadsafe, removed old capsnego.
Added STREAM_LOCK and PREROLL_LOCK in GstPad.
Added pad blocking functions.
Reworked scheduling functions in GstPad to prepare for
scheduling updates soon.
Moved events out of data stream.
Simplified GstEvent types.
Added return values to push/pull.
Removed clocking from GstElement.
Added prototypes for state change function for next merge.
Removed iterate from bins and state change management.
Fixed some elements, disabled others for now.
Fixed -inspect and -launch.
Added check for GstBus.
2005-03-21 17:34:02 +00:00
Ronald S. Bultje
58efb5a941 gst/gstevent.c: Reference source object when copying events, since it'll be dereferenced on event dereferencing as well.
Original commit message from CVS:
* gst/gstevent.c: (_gst_event_copy):
Reference source object when copying events, since it'll be
dereferenced on event dereferencing as well.
2005-01-08 21:33:03 +00:00
Ronald S. Bultje
66d5da4f17 Add two new functions for filler events (which are used to synchronize streams if one of them is not having any data ...
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* docs/gst/tmpl/gstevent.sgml:
* gst/gstevent.c: (gst_event_new_filler_stamped),
(gst_event_filler_get_duration):
* gst/gstevent.h:
Add two new functions for filler events (which are used to
synchronize streams if one of them is not having any data
for a while) without interrupting the actual data-stream.
Basically a no-op.
* gst/gstqueue.c: (gst_queue_init), (gst_queue_getcaps),
(gst_queue_link_sink), (gst_queue_link_src),
(gst_queue_change_state):
Allow for renegotiation while filled. Required for stream
switching while playing.
2005-01-08 18:10:50 +00:00
Thomas Vander Stichele
56e7e557ae debugging fixes
Original commit message from CVS:
debugging fixes
2004-07-07 16:50:30 +00:00
Thomas Vander Stichele
f55a8091a6 remove gst_info remove gstlog.h, fold back to gstinfo.h update translations
Original commit message from CVS:
remove gst_info
remove gstlog.h, fold back to gstinfo.h
update translations
2004-05-03 16:03:24 +00:00
Thomas Vander Stichele
e40680565f fixing typos
Original commit message from CVS:
fixing typos
2004-04-21 10:06:37 +00:00
Thomas Vander Stichele
7baa6c18e7 don't mix tabs and spaces
Original commit message from CVS:
don't mix tabs and spaces
2004-03-15 19:27:17 +00:00
Thomas Vander Stichele
a967370df5 gst-indent run on core
Original commit message from CVS:
gst-indent run on core
2004-03-13 15:27:01 +00:00
Thomas Vander Stichele
e0c63736c6 comment fix whitespace fixes
Original commit message from CVS:
comment fix
whitespace fixes
2004-03-12 17:59:00 +00:00
Johan Dahlin
2db697154b gst/: Use gst_data_copy, instead of ref, since some applications that uses GBoxed routines depends on a function that...
Original commit message from CVS:
* gst/gstbuffer.c (_gst_buffer_initialize):
* gst/gstdata.c (gst_data_get_type):
* gst/gstevent.c (_gst_event_initialize): Use gst_data_copy,
instead of ref, since some applications that uses GBoxed
routines depends on a function that actually returns a copy.
2004-03-01 12:10:16 +00:00
Benjamin Otte
7155cfae35 gst/gstevent.c: copy navigation event correctly. Check freeing tag lists.
Original commit message from CVS:
2004-02-20  Benjamin Otte  <otte@gnome.org>

* gst/gstevent.c: (_gst_event_copy), (_gst_event_free):
copy navigation event correctly. Check freeing tag lists.
* gst/gstthread.c: (gst_thread_change_state):
don't abort() on state changing mess - it might happen because of
bugs.
* gst/gstvalue.c: (gst_value_set_caps), (gst_value_get_caps):
use boxed functions
* gst/gstvalue.h:
fix GST_VALUE_HOLDS_CAPS
2004-02-20 00:38:24 +00:00
Julien Moutte
c168ad6b4e gst/gstevent.c: Sometimes a tag event arrives but the structure does not contain a valid tag list. Adding a safety ch...
Original commit message from CVS:
2004-02-10  Julien MOUTTE <julien@moutte.net>

* gst/gstevent.c: (_gst_event_free): Sometimes a tag event arrives but
the structure does not contain a valid tag list. Adding a safety check
to remove a noisy warning in that case.
2004-02-10 11:57:27 +00:00
Benjamin Otte
92e2c686c4 gst/gstevent.c: actually break; inside the switch statement
Original commit message from CVS:
2004-02-04  Benjamin Otte  <in7y118@public.uni-hamburg.de>

* gst/gstevent.c: (_gst_event_free):
actually break; inside the switch statement
* gst/parse/grammar.y:
fix memleak where GValues weren't unset
2004-02-04 17:24:23 +00:00
Jan Schmidt
c1d837b9d5 gst/gstcaps.c: Move the poisoning to allow a NULL structure
Original commit message from CVS:
* gst/gstcaps.c: (gst_caps_append_structure):
Move the poisoning to allow a NULL structure
* gst/gstevent.c: (_gst_event_free):
When freeing a navigation event, free the structure
also
2004-01-05 16:25:31 +00:00
David Schleef
b061d65ecc change gst_event_new_discontinuousv to gst_event_new_discontinuous_valist (again)
Original commit message from CVS:
change gst_event_new_discontinuousv to gst_event_new_discontinuous_valist (again)
2003-12-02 04:29:47 +00:00
David Schleef
dd597cd485 change gst_event_new_discontinuousv to gst_event_new_discontinuous_valist
Original commit message from CVS:
change gst_event_new_discontinuousv to gst_event_new_discontinuous_valist
2003-12-02 04:28:26 +00:00
Benjamin Otte
385b9ee5c4 merge in tagging
Original commit message from CVS:
merge in tagging
Includes:
- gsttag.[ch] - The definition of GstTagList and tag registering/querying
- gsttaginterface.[ch] - Interface for elements that can handle setting of tags
- updates and merges to gststructure.[ch] and gstvalue.[ch]
- testsuite/tags - some tests for tagging
- bugfixes
- updates to make make distcheck work
- updates the version number to 0.7.2.1

Does not include:
- including tagging stuff in docs
- extensive tests
2003-11-24 02:09:23 +00:00
Benjamin Otte
8461453b10 add valist function for gst_event_new_discontinuous original patch from Brett Kosinski fixes #117348
Original commit message from CVS:
add valist function for gst_event_new_discontinuous
original patch from Brett Kosinski
fixes #117348
2003-07-16 19:25:11 +00:00
Benjamin Otte
803ce6bf48 GST_DEBUG reorganization containing loads of stuff:
Original commit message from CVS:
GST_DEBUG reorganization
This is a big diff (ca 450k), containing loads of stuff:
- gstinfo.[ch] complete rewrite
- changing of all GST_DEBUG messages to reflect that change
- reorganization of subsystem disabling
- addition of gstconfig.h.in so we can track the disablings
- <gst/gst.h> does not include <unistd.h> and <config.h> anymore
- documentation updated for gstinfo stuff (build the docs yourself to know what changed)
- bugfixes for making of the docs (files from CVS are not deleted anymore
- testsuite for debugging changes in testsuite/debug

expect breakage
2003-06-29 14:05:49 +00:00
Ronald S. Bultje
1c17e4700b Get rid of NEW_MEDIA event, EOS is supposed to handle that
Original commit message from CVS:
Get rid of NEW_MEDIA event, EOS is supposed to handle that
2003-06-07 00:15:18 +00:00
Thomas Vander Stichele
04471c9cdd fix format test
Original commit message from CVS:
fix format test
2003-06-05 22:01:13 +00:00
Wim Taymans
b41c935ff7 Use GstMemChunk to allocate events
Original commit message from CVS:
Use GstMemChunk to allocate events
2003-05-10 12:15:58 +00:00
Benjamin Otte
a68e0b8324 fix and better comment gst_event_new_discontinuous. Nice memory leak there
Original commit message from CVS:
fix and better comment gst_event_new_discontinuous. Nice memory leak there
2003-04-26 01:54:01 +00:00
Martin Schulze
df2f947370 gst/gstelementfactory.c: Add "g_free (dp->license)" in gst_element_details_free().
Original commit message from CVS:
2003-03-29  Martin Schulze  <MHL.Schulze@t-online.de>

* gst/gstelementfactory.c: Add "g_free (dp->license)" in
gst_element_details_free().
* gst/gstevent.[ch]: Add function gst_event_get_type() to
support c++ language binding. Make macros gst_event_ref[_by_count]
return a GstEvent* instead of a GstData*.
* gst/gstbuffer.[ch]: Add functions gst_buffer[_pool]_get_type()
to support c++ language binding.
2003-03-29 11:58:15 +00:00
Benjamin Otte
17b8c5d004 added new function gst_event_has_new_media
Original commit message from CVS:
added new function gst_event_has_new_media
2003-03-16 18:29:45 +00:00
Wim Taymans
b030b5cef2 - Add more --disable options
Original commit message from CVS:
- Add more --disable options
- fix makefiles to only compile non-disabled features
- some compile fixes.
- removed extratypes, added gsturitype
- make get/set clock on a bin overridable
- some portability fixes for GUINT64
- separate pools from gstregistry.[ch] into gstregistrypool.[ch]
- make gstobject size fixed, even if we disabled load/save
- don't use 'new' as a variable as it is not a valib C++ variable
2003-02-10 20:32:32 +00:00
Wim Taymans
fe83917b5c - replace old tracing with common GstTrace
Original commit message from CVS:
- replace old tracing with common GstTrace
2003-02-02 19:40:10 +00:00
Wim Taymans
8a2381a8ad Some more debugging info
Original commit message from CVS:
Some more debugging info
2003-01-23 19:36:47 +00:00
Wim Taymans
347505bcb9 - major API breakage (one of the last, I promise...)
Original commit message from CVS:
- major API breakage (one of the last, I promise...)
- GST_PAD_QUERY -> GST_QUERY
- GstPadQuery -> GstQuery
- Move query definitions to gstquery.h to allow for future dynamic
query types.
- remove _pad_handles_* in favour of extra format/event functions to
make the same checks.
- fix elements
- Implemented missing query/event/formats functions in gstelement
2002-12-30 17:42:11 +00:00
Wim Taymans
b7ee3bebf5 Added g_return_if_fail
Original commit message from CVS:
Added g_return_if_fail
2002-11-22 23:15:14 +00:00
Wim Taymans
ac94f1f879 - A regular seek event sets the endoffset to -1 to indicate that the value should be ignored.
Original commit message from CVS:
- A regular seek event sets the endoffset to -1 to indicate
that the value should be ignored.
- A segment seek only takes start < stop
2002-10-31 18:41:18 +00:00
Wim Taymans
e3c9576f3c Fix some wrong prototypes and funtion args
Original commit message from CVS:
Fix some wrong prototypes and funtion args
2002-07-28 01:06:16 +00:00
Wim Taymans
e9f84e2738 - Documentation updates, renamed some _ methods because gtkdoc didn't want to generate docs for them.
Original commit message from CVS:
- Documentation updates, renamed some _ methods because gtkdoc didn't
want to generate docs for them.
- Add some more events for future use.
2002-07-13 23:12:22 +00:00
Wim Taymans
fcb10a6c85 - Removed bufferpool code and move that to gstbuffer.c
Original commit message from CVS:
- Removed bufferpool code and move that to gstbuffer.c
- implemented refcounting on GstData
- implemented new buffer code based on Company's work in the EVENTS2 branch
- added boxed types for GstData/GstEvent/GstBuffer/GstBufferPool
- added refcounting to bufferpools and events
- use lockfree allocation for buffers
- simplified the clock, use lockfree allocation
- use GQueue in GstQueue for faster access to the tail element
- update core plugins to the new event API
2002-07-08 19:22:02 +00:00
Wim Taymans
9286f126e2 Added a size event to optimize buffer sizes make filesrc update its blocksize when it receives a size event
Original commit message from CVS:
Added a size event to optimize buffer sizes
make filesrc update its blocksize when it receives a size event
2002-06-13 22:27:40 +00:00
Wim Taymans
c8e8981be8 Documentation updates
Original commit message from CVS:
Documentation updates
Make spider forward bufferpools
Remove some old registry code
2002-06-12 22:26:36 +00:00
Wim Taymans
a599a5b1df Created an overridable method for seeking on an element, along with a default implementation.
Original commit message from CVS:
Created an overridable method for seeking on an element, along with a default
implementation.
make queue flush on discont (not entirely correct)
removed the new_media from the discont event.
2002-05-30 19:03:30 +00:00
Wim Taymans
6f96a24d2e - The clock_wait now returns the difference between requested time and unlock time.
Original commit message from CVS:
- The clock_wait now returns the difference between requested time and
unlock time.
- Misc defines like GST_SECOND in gstclock.h
- remove pre/post in gstelement.c until fixed.
- added release_locks to gstelement so that the element can unlock itself
- added some more predefined events.
- added folowing functions to gstpad:
- convert function: get the relation between formats on this pad
- query function: get stats about the pad (position/total/latency)
- internal connect function: find out how this pad connects to other
pad internally to the element.
- generic pad_dispatcher.
- removed the last bits of pullregion
- use release_locks on the queue.
- added some events to queue
- make gstthread use the new release_locks function
- make the scheduler use the new clock_wait functions
- added events to fakesink
- added query functions to filesrc
- swap type and offset in the bytestream seek API to match fseek
- added some event handling in bytestream.
2002-05-26 21:54:27 +00:00
Wim Taymans
086de421dc Totally rewritten registry handling.
Original commit message from CVS:
Totally rewritten registry handling.
- move the registry save/load code into a gstregistry subclass, this
will make it possible to use other registries (flat file, web based,
RDBMS type, etc..)
- a simple GMarkup xml registry is implemented
- use standard statically linked plugins for core elements.
- GstPlugin has a very well defined set of functions now
A little bytestream hack..
Added more info to -inspect.
Some more debugging info for clocking.
Small cleanups

I use ./gst-register --gst-plugin-path=/opt/src/sourceforge/gst-plugins/gst-libs:/opt/src/sourceforge/gst-plugins/
to register core and gst-plugins now.
2002-05-08 20:40:48 +00:00
Benjamin Otte
8ae7350492 fix all compiler warnings
Original commit message from CVS:
fix all compiler warnings
2002-04-04 19:28:23 +00:00
Wim Taymans
b792a2af1f Added gst_event_copy
Original commit message from CVS:
Added gst_event_copy
2002-02-23 13:57:09 +00:00
Wim Taymans
8a9a74d370 Added SET/CUR/END seek types.
Original commit message from CVS:
Added SET/CUR/END seek types.
2002-01-26 18:28:26 +00:00
Wim Taymans
0a74077dcc API doc updates.
Original commit message from CVS:
API doc updates.
2002-01-01 15:58:51 +00:00
Wim Taymans
6c538d527b Fix an event leak
Original commit message from CVS:
Fix an event leak
Ne need to save signals on longjmp
2001-12-23 14:50:44 +00:00
Wim Taymans
f5affde61c - Reclaim cothread state even if the cothread was never activated after the free.
Original commit message from CVS:
- Reclaim cothread state even if the cothread was never activated after
the free.
- fix the bin state change when there are no more children.
- use a real method to signal the parent bin of a state change.
- move the state change policy in the scheduler.
- remove the unused and ridiculous state change event
- don't free the cothread state when the element is disabled. only free it
when the element is removed from the scheduler.
2001-12-20 20:03:10 +00:00
Wim Taymans
56d3cdf64a - Elements can now send events to their parent.
Original commit message from CVS:
- Elements can now send events to their parent.
- remove the g_signals from the core for parent<->child communication
- the application can easily get element info by listening for an event
signal from the toplevel bin.
- added gst_element_info()/_error().
- fakesrc and fakesink use the info event instead of g_print.
- GST_TYPE_* causes segfaults with elect fence, rever to G_TYPE_POINTER
until we know what's wrong.
- various leaks fixed wrt element destroy.
- The object that created the event is now stored as GST_EVENT_SRC
2001-12-18 19:03:07 +00:00
Christian Schaller
d6b9ae8b63 aye ladie, no more ugly // comments here, even if Taaz gets upset about it
Original commit message from CVS:
aye ladie, no more ugly // comments here, even if Taaz gets upset about it
2001-12-14 22:59:21 +00:00
wrobell
08eaa11259 - some fixes to int2float making automake 1.5 happy (gst now requires automake1.5). It's still not perfect but it bui...
Original commit message from CVS:
- added playondemand plugin by Leif Morgan Johnson <lmjohns3@eos.ncsu.edu>
- some fixes to int2float
- aplied a patch from wrobell <wrobell@ite.pl> that is a first attempt at
making automake 1.5 happy (gst now requires automake1.5). It's still not
perfect but it builds.
- Made the schedulers plugable. The default scheduler now lives inside a
plugin.
- Added a new mpeg1/2 parser/demuxer.
- Fixed some compiler warnings in the core libs.
- substantial work to GstThread (hopefully less race conditions). simplified
the code in GstThread a bit. A state change can now also happen in the
thread context.
- reworked the state semantics of a bin. it'll now automatically get the
highest state of its children.
- the autoplugger now nests the threads so that a state change failure of
one thread doesn't make its upstream thread lock.
- GstQueue refuses to go to PLAYING if the sinkpad is not connected. This
way the queue will not wedge in the _get lock.
- GstQueue unlocks its mutexes when going to PAUSED.
- make sure that when all elements in a bin/thread go to PAUSED, the bin
is set to PAUSED too.
- make a parent bin wait for its children to PAUSE before ending the
iteration with FALSE (EOS)
- Some changes to GstPlay to deal with EOS.
- aplied the latest patch from Zeenix to gstrtp.

end result: GstPlay doesn't crash on EOS and the pipeline is now shut down
properly.
2001-12-04 22:12:50 +00:00
Wim Taymans
cccc097ca5 API docs. revived _buffer_ref_by_count fast types for scheduler and bin.
Original commit message from CVS:
API docs.
revived _buffer_ref_by_count
fast types for scheduler and bin.
error checking on plugin features;
removed some prototypes that were not implemented (gst_pipeline_iterate
comes to mind)
remove gst_pad_event until we know what it's supposed to do.
remove sinesrc, it wasn't compiles anymore, so...
updates to various elements that used the old event API.
2001-10-21 18:00:31 +00:00
Erik Walthinsen
d574ab8126 merge from EVENTS1 on 20011016
Original commit message from CVS:
merge from EVENTS1 on 20011016
2001-10-17 10:21:27 +00:00