[gst-devel] Wim's week 2 progress mail
Andy Wingo
wingo at pobox.com
Tue Mar 29 01:41:23 CEST 2005
Hey all,
For some reason wim's smtp server is being blocked by sf.net. So here's
his week 2 status mail in all its glory.
Cheers,
Wingo.
>From wim at fluendo.com Tue Mar 29 11:39:18 2005
Subject: HEAD merging week2
Hi fellows,
A little summary of the merging done last week. This week will fix HEAD
again so we can start on porting over plugins.
Wim
Week2 summary
-------------
Second week THREADED->HEAD porting is focussing on adding the new
subsystems and removing old ones. This all in preparation for the
final week where the branch should start working again.
Removed GstThread
Reworked GstQueue
Removed schedulers
Removed cothreads
Added GstBus, GstMessage
Added GstTask as simple thread wrapper.
- Documentation updates
- GstBus design
- GstBin design
- events design
- pipeline design
- general
- state changes not yet implemented.
- Added GstBus subsystem. Plugged in element error handling.
- Added GstMessage for sending over the bus
- Changed GstPipeline to distribute the clock.
- HEAD status
- compiles.
- testcases in check directory work
- pad linking thread safe now, negotiation removed.
- running a pipeline does not work because the state changes are not
implemented yet.
- plugin/pluginfeatures/elementfactory etc still expose Glists in the
API
and are generally not threadsafe.
- removed function
- GstBin Flags removed: GST_BIN_FLAG_MANAGER,
GST_BIN_SELF_SCHEDULABLE,
GST_BIN_STATE_LOCKED. No more manager bin or self schedulable bins
concepts exist. The STATE_LOCKED flag was a workaround for
recursive
state changes.
- gst_bin_iterate(): removed, scheduling will happen automatically
now.
The "iterate" signal was removed too.
- gst_bin_sync_children_state(): removed, useless since
gst_element_set_state() will do exactly this.
- gst_bin_child_state_change(): internal useless function.
- GstElement Flags removed: GST_ELEMENT_DECOUPLED,
GST_ELEMENT_INFINITE_LOOP,
GST_ELEMENT_NEW_LOOPFUNC, GST_ELEMENT_EVENT_AWARE: does not matter
anymore,
Elements don't have a loop function anymore, ELEMENT_AWARE is a
pad thing.
- GST_ELEMENT_IN_ERROR: deprecated.
- "error", "eos", "found-tags" signals removed as they are now
performed with
messages on the bus.
- gst_element_clock_wait(), gst_element_get_time(),
gst_element_wait(),
gst_element_set_time(), gst_element_set_time_delay(),
gst_element_adjust_time(): old clock functions, elements should
use the
clock directly for now. Some helper function could be implemented
in
gstutils.c later.
- gst_element_set_loop_function(): no more loop function on an
element.
- gst_element_release_locks(), gst_element_yield(),
gst_element_interrupt():
old scheduler hooks.
- gst_element_get_managing_bin(): deprecated, no bin is manager
anymore.
- gst_element_default_error(): errors reported on the bus now.
- gst_element_wait_state_change(): removed, gst_element_get_state()
can
perform a blocking wait.
- gst_element_set_eos(): deprecated, use the bus to post an EOS
message.
- gst_element_found_tags(): removed, post a tag message on the bus.
- gst_element_found_tags_for_pad(): post on the bus and push_event
the
tags.
- gst_element_factory_can_src/sink_caps(): deprecated. appeared
unused
and is something for gstutils.c
- GST_EVENT_EMPTY: not needed.
- GST_EVENT_SEEK_SEGMENT: all seeks have endposition now.
- GST_EVENT_SEGMENT_DONE: posted on the bus.
- GST_EVENT_FILLER: not needed with new scheduling.
- GST_EVENT_TS_OFFSET: not needed.
- GST_EVENT_INTERRUPT: not needed with new scheduling.
- gst_event_new_filler_stamped(), gst_event_filler_get_duration():
not needed with new scheduling.
- gst_pad_proxy_getcaps(), gst_pad_proxy_fixate(): moved to utils.
- gst_pad_set_explicit_caps(), gst_pad_use_explicit_caps: utils
- gst_pad_renegotiate(), gst_pad_unnegotiate(): deprecated.
- gst_pad_try_relink_filtered(), gst_pad_try_set_caps(),
gst_pad_try_set_caps_nonfixed(): no more trying.
- gst_pad_caps_change_notify(): deprecated
- gst_pad_recover_caps_error(): deprecated
- gst_pad_check_compatibility: utils.
- gst_pad_is_negotiated(): deprecated.
- gst_pad_collectv(), gst_pad_collect(), gst_pad_collect_valist():
removed, might end up in equivalent utils.
- gst_pad_call_chain_function(), gst_pad_call_get_function():
deprecated.
- gstscheduler.c: most function removed as the scheduler is not
needed
anymore.
- changed functions
- gst_element_get_state(): signature changed to atomically get
current
and pending state with timeout.
- gst_event_new_flush(): requires a boolean now to indicate if the
flush
starts or ends.
- GstPadChainFunction and GstPadGetRangeFunction return a
GstFlowReturn
so that data elements know when to stop pushing data.
- GstPadLinkReturn returns a wider range of errors, not only related
to
capsnego.
- GstPadLinkFunction: is now called when a pad is linked. This has
nothing
to do with capsnego.
- GstPadBufferAllocFunction: requires a GstCaps as an arg so that
the peer
knows the suggested format of the buffer.
- gst_pad_link(), gst_pad_link_filtered(), gst_pad_relink_filtered()
return
a GstPadLinkReturn
- gst_pad_unlink() returns a gboolean to indicated success.
- replaced functions
- gst_element_error_full() -> gst_element_message_full(): more
general.
- gst_element_default_deep_notify() ->
gst_object_default_deep_notify():
more general.
- GstPadGetFunction -> GstPadGetRangeFunction: only support ranges
when
pulling in data. This simplifies scheduling, makes things harder
when
they don't make sense and make things faster when they make sense.
gst_pad_set_get_function() -> gst_pad_set_getrange_function()
gst_pad_pull() -> gst_pad_pull_range()
- GstPadFixateFunction -> GstPadFixateCapsFunction: changed name for
consistency.
also gst_pad_set_fixate_function() ->
gst_pad_set_fixatecaps_function()
- new functions
- gst_element_get/set_manager(): get/set manager on an element
- gst_element_get/set_bus(): get/set bus on an element.
- gst_element_post_message(): post a message on the bus of this
element.
- gst_element_abort_state(), gst_element_commit_state(),
gst_element_lost_state(): function for ASYNC element state
changes.
- GstPadSetCapsFunction: explicitly make a pad use caps. This used
to
be the linkfunction. also gst_pad_set_setcaps_function()
- GstPadAcceptCapsFunction: check if a pad can accept a given caps.
also gst_pad_set_acceptcaps_function()
- gst_pad_set_blocked(), gst_pad_set_blocked_async(),
gst_pad_is_blocked()
to block dataflow on a pad.
- gst_pad_set_activate_function(): called when a pad becomes active.
- GstPadLoopFunction: the loopfunction is now attached to a pad.
- gst_pad_set_loop_function(): to set the loopfunction on a pad.
- gst_pad_get_filter_caps(): get the filtercaps on a pad link.
- gst_pad_push_event(): for plugins to send an event to the peer.
- gst_pad_peer_accept_caps(): check if the peer accepts a caps.
- gst_pipeline_get_scheduler(), gst_pipeline_get_bus(): convenience
function for getting scheduler and bus of a pipeline. Might be
removed in the future as gst_element_get_*() has equivalent
behaviour.
More information about the gstreamer-devel
mailing list