Original commit message from CVS:
* docs/manual/basics-bins.xml:
* docs/manual/basics-bus.xml:
* docs/manual/basics-pads.xml:
Some typo fixes, some additions, some clarifications.
Original commit message from CVS:
* tools/gst-inspect.c: (main):
* tools/gst-launch.c: (main):
* tools/gst-run.c: (main):
* tools/gst-typefind.c: (main):
* tools/gst-xmlinspect.c: (main):
Use the string passed to g_option_context_new() for
what it's intended for - the program name is already
printed elsewhere.
Original commit message from CVS:
* tools/Makefile.am:
* tools/gst-inspect.c: (main):
* tools/gst-launch.c: (main):
* tools/gst-xmlinspect.c: (main):
* tools/tools.h:
Add back --version command line option (#340460).
* tools/gst-typefind.c: (have_type_handler), (typefind_file), (main):
Add --version option and use GOption for argument parsing; refactor a
bit; accept directories as arguments and recurse into them; lastly,
print a decent error message when things go wrong.
Original commit message from CVS:
* gst/gstbuffer.h:
* gst/gstminiobject.c:
Add note about refcounting and miniobject/buffer writeability
to docs. Fixes#340604
* gst/gstelementfactory.h:
Added some explanation about @klass.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_init), (gst_pad_configure_sink),
(gst_pad_configure_src), (gst_pad_push):
Restore acceptcaps checking behaviour now that good plugins have
been released.
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).
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
API: addition: gst_adapter_take_buffer()
* libs/gst/base/gstadapter.c: (gst_adapter_push),
(gst_adapter_peek), (gst_adapter_take), (gst_adapter_take_buffer),
(gst_adapter_available_fast):
* libs/gst/base/gstadapter.h:
Prepare for optimizing the hell out of this hugely inefficient
piece of code.
Added gst_adapter_take_buffer() so we can at least start thinking
about subbuffering and merging.
Added some comments.
* tests/check/Makefile.am:
* tests/check/libs/adapter.c: (GST_START_TEST),
(gst_adapter_suite), (main):
Added GstAdapter check.
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
make sure GstBaseTransformClass shows up in the docs
* libs/gst/base/gstbasetransform.c:
* libs/gst/base/gstbasetransform.h:
move docs so gtk-doc picks it up now
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_event):
back out the newsegment handling change, see #340060 for ongoing
discussion
Original commit message from CVS:
* tools/gst-run.c: (get_candidates), (main):
Fix wrong g_file_test() usage (see glib docs for why it doesn't
work); fix typo in error message. Fixes#340079.
Original commit message from CVS:
2006-04-29 Thomas Vander Stichele <thomas at apestaart dot org>
* tests/check/gst/gstghostpad.c: (GST_START_TEST):
add more asserts on refcounts
do more cleanup at end of tests
fix test leaks showing in FC5
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_handle_event):
reverted wrong change and reflowed code to avoid others falling into
this trap
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_event):
fix changelog entry about last collectpads change,
add notes about proper fix
Original commit message from CVS:
* gst/gst.c:
* gst/gstregistry.c: (gst_registry_scan_path_level),
(gst_registry_scan_path):
* gst/gstregistry.h:
only write out registry if it has changed, fixes#338339
Original commit message from CVS:
* gst/gst.c:
* gst/gstregistry.c: (gst_registry_scan_path_level),
(gst_registry_scan_path):
* gst/gstregistry.h:
only write out registry if it has changed, fixes#338339
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_event):
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_base_init),
(gst_collect_pads_is_collected), (gst_collect_pads_event):
more detailed debug and formatting cleanup
Original commit message from CVS:
* libs/gst/controller/gstcontroller.c:
(gst_controller_sync_values):
some little tuning
* tests/check/libs/controller.c: (GST_START_TEST),
(gst_controller_suite):
a new test for live value handling
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_serialize_flags):
Avoid NULL dereference when trying to serialize flags containing
invalid values.
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_handle_event):
If we get EOS before any data is accumulated, don't use
uninitialised local variables.
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packet_from_event),
(gst_dp_event_from_packet):
Fixes in reading/writing events over GDP (not currently used?) -
dereferencing NULL events for unknown/invalid event types, memory
leak, and change g_warning to GST_WARNING.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_is_too_late),
(gst_base_sink_do_render_stats), (gst_base_sink_render_object),
(gst_base_sink_get_position), (gst_base_sink_change_state):
When frame dropping is enabled, we should not ignore frames
without a duration.
Update some documentation.
Original commit message from CVS:
* plugins/elements/gstfdsink.c: (gst_fd_sink_render),
(gst_fd_sink_check_fd), (gst_fd_sink_update_fd):
handle EAGAIN, EINTR and short writes correctly. Also clean
up some error cases, avoid a deadlock on bad file descriptors and
use GST_DEBUG_OBJECT.
Fixes#339843
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_serialize_buffer),
(gst_value_deserialize_buffer):
Don't try to serialize a GValue with a NULL buffer.
Fixes#339821.
* tests/check/gst/gstvalue.c: (GST_START_TEST), (gst_value_suite):
Added check for serialisation of NULL buffers.
Original commit message from CVS:
* gst/gstminiobject.c: (gst_value_take_mini_object):
Taking a NULL miniobject is valid, fix the case where
we try to unref the NULL miniobject.
Original commit message from CVS:
Patch by: Stefan Kost <ensonic at sonicpulse dot de>
* gst/gstbin.c: (gst_bin_handle_message_func):
Update docs.
Don't leak bin refcount when a state recalc is
in progress and we delay another one #339808.
Original commit message from CVS:
* docs/design/part-TODO.txt:
Mention QoS as an ongoing work item.
* docs/design/part-buffering.txt:
New doc about buffering that needs to be fleshed out
at some point.
* docs/design/part-qos.txt:
More QoS policy for decoders/demuxers/transforms
* docs/design/part-trickmodes.txt:
Small update.
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/controller/gstcontroller.c: (gst_controller_unset),
(gst_controller_unset_all):
* libs/gst/controller/gstcontroller.h:
Added new method _unset_all() and fixed _unset()
* tests/check/libs/controller.c: (GST_START_TEST),
(gst_controller_suite):
Added two testcases for new and fixed method
Original commit message from CVS:
* libs/gst/net/gstnettimepacket.c: (gst_net_time_packet_send):
MSG_DONTWAIT is not defined on Cygwin, so work
around that (fixes#317048).
Original commit message from CVS:
* gst/gstelementfactory.c: (gst_element_register),
(gst_element_factory_create), (gst_element_factory_make):
Some cleanups.
Fixed a FIXME.
Updated docs (Fixes#131079)
* gst/gstpluginfeature.c: (gst_plugin_feature_load):
Small cleanups.
* tests/check/gst/gstelement.c: (GST_START_TEST),
(gst_element_suite):
Added testcase for elementfactory class field.
Original commit message from CVS:
* gst/gstsegment.c:
Added some more docs.
* libs/gst/base/gstbasesink.c: (gst_base_sink_perform_qos),
(gst_base_sink_reset_qos):
Calculate more accurate rate values.
Original commit message from CVS:
* gst/gst_private.h:
add a new #ifdef to use __declspec(dllimport) only for
other modules and not for gstreamer core
* gst/gstbasesink.c: (gst_base_sink_perform_qos):
use gst_guint64_to_gdouble for conversion
* win32/common/libgstreamer.def:
add new exported functions
* win32/vs6/gst_inspect.dsp:
* win32/vs6/gst_launch.dsp:
* win32/vs6/libgstbase.dsp:
* win32/vs6/libgstcontroller.dsp:
* win32/vs6/libgstcoreelements.dsp:
* win32/vs6/libgstdataprotocol.dsp:
* win32/vs6/libgstnet.dsp:
update project files
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_link):
Must set peer pads before calling the link function, otherwise
a task started from a link function might get a flow-not-linked
result when trying to push because the other thread where the
linking happens hasn't had a chance to set the peers yet. This
might happen for example when a queue gets linked to a downstream
element, as queue starts a streaming task when its source pad
gets linked. Happens in real life when playing back flac/musepack
files in playbin (#332390).
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times):
Be a bit nicer to badly behaving upstream elements that expect
us to deal with non TIME segments and timestamps (such as fakesrc
in the testsuite).
Original commit message from CVS:
* gst/gstbus.c:
Small documentation clarification about the signal watch.
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times),
(gst_base_sink_wait_clock), (gst_base_sink_do_sync),
(gst_base_sink_perform_qos), (gst_base_sink_reset_qos),
(gst_base_sink_do_render_stats), (gst_base_sink_render_object),
(gst_base_sink_get_position_last),
(gst_base_sink_get_position_paused), (gst_base_sink_change_state):
Convert and store timestamps in stream time and running time, the
raw timestamps are not usefull, also document this better.
Use different window sizes for good and bad QoS observations so
we react to badness a little quicker.
Keep track of the amount of rendered and dropped buffers.
Send QoS timestamps in running time.
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_sink_eventfunc),
(gst_base_transform_handle_buffer):
Compare QoS timestamps against running time.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_set_property):
Use g_value_get_object() instead of g_value_dup_gst_object(),
to avoid double-reffing the pad template (which we then sink,
so this worked previously if (and only if) the pad template
was floating.
* gst/gstpadtemplate.c: (gst_pad_template_init),
(gst_pad_template_pad_created):
Never return floating references to pad templates, create
them as initially-sunken.
Document an extra function (and make this stop sinking our
pad template, since that is now guaranteed to do nothing,
since we created it sunken).
* gst/gstghostpad.c:
Fix docs typo.
Original commit message from CVS:
* gst/parse/grammar.y:
Fix a leak in parse-launch for any source-or-sink named element
references used.
* tests/check/pipelines/parse-launch.c: (expected_fail_pipe):
Unref the pipeline if it exists after we've failed parsing.
Original commit message from CVS:
* gst/gstpipeline.c: (gst_pipeline_init):
When we create a pipeline bus, initially create it in flushing mode.
Fixes leaks in at least one test, and makes a new pipeline work the
same as one that has gone to READY and then back to NULL.
* gst/gstelement.c:
Typo fix in docs.
Original commit message from CVS:
* tests/check/gst/gstghostpad.c: (GST_START_TEST):
Unref a pad we reffed.
* tests/check/gst/gstutils.c: (GST_START_TEST):
Unref bins
Original commit message from CVS:
* gst/gstquery.c: (gst_query_set_formats),
(gst_query_set_formatsv):
Fix leaking GValues in queries, as shown by valgrind/testsuite.
Original commit message from CVS:
* tests/check/generic/sinks.c: (GST_START_TEST):
Fix a variety of memleaks in sinks check, which are only sometimes
shown by running the tests under valgrind (weird?).
Original commit message from CVS:
2006-04-05 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* gst/gstinfo.c: (__gst_in_valgrind): Use printf instead of
VALGRIND_PRINTF
Original commit message from CVS:
2006-04-05 Andy Wingo <wingo@pobox.com>
* gst/gstpad.c (gst_pad_set_blocked_async): More debug.
* libs/gst/base/gstbasetransform.c
(gst_base_transform_sink_eventfunc): When resetting our segment on
FLUSH_STOP, also update the flag saying we haven't seen a
newsegment.
Original commit message from CVS:
Patch by: Paolo Borelli <pborelli at katamail dot com>
* gst/gstplugin.c: (gst_plugin_finalize), (gst_plugin_class_init),
(gst_plugin_check_license):
minor clean-ups: G_DEFINE_TYPE already takes care of the
parent_class stuff, no need to do it twice. Mark array of
license strings as constant. (#337103)
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at skynet dot be>
* plugins/elements/gstfilesink.c: (gst_file_sink_render):
Don't error out on empty buffers (#336945).
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
* gst/gsttaglist.c:
* libs/gst/base/gstbasesink.c:
* libs/gst/base/gstbasesink.h:
* libs/gst/base/gstbasesrc.c:
* libs/gst/base/gstbasesrc.h:
Documentation updates. Make BaseSink and BaseSrc docs contain the
class structure so that people can actually see the prototypes for
virtual functions they're supposed to be overriding.
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_chain):
More debug info; when skipping typefinding, send cached
events in all cases.
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_chain):
Do not typefind content if the buffers already have caps.
Neccesary for icydemux (#333657), and the right thing to do anyway.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_init),
(gst_base_sink_finalize), (gst_base_sink_set_qos_enabled),
(gst_base_sink_is_qos_enabled), (gst_base_sink_do_sync),
(gst_base_sink_record_qos_observation),
(gst_base_sink_perform_qos), (gst_base_sink_reset_qos),
(gst_base_sink_is_too_late), (gst_base_sink_render_object),
(gst_base_sink_change_state):
More QoS measurements as described in the design doc.
Get rid of ringbuffer with observations, running average is
more simple and equally good.
Calculates valid proportion now.
Added beginning of flood measurement.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_finalize),
(gst_base_src_send_event), (gst_base_src_loop),
(gst_base_src_change_state):
Perform the EOS logic when we reach the segment stop position.
Fix compilation on gcc4.1
Original commit message from CVS:
Patch by Tommi Myöhänen <ext-tommi dot myohanen at nokia dot com>
* plugins/elements/gstqueue.c: (gst_queue_init),
(gst_queue_locked_flush), (gst_queue_handle_sink_event),
(gst_queue_set_property):
* plugins/elements/gstqueue.h:
In queue, when EOS is received, if minimum threshold > max_size -
current_level, there is chance that queue blocks forever in conditional item
del wait. This is because the queue is not emptied completely due to minimum
threshold.
Here is another approach. Instead of setting cur_levels to max in EOS, just
zero all minimum threshold levels. This should make sure that queue gives out
all data. When going to READY (stop) state, just reset the original minimum
threshold levels.
Fixes#336336.
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c: (stop_typefinding),
(gst_type_find_element_handle_event),
(gst_type_find_element_send_cached_events),
(gst_type_find_element_change_state):
* plugins/elements/gsttypefindelement.h:
When typefinding is done in push mode, we should cache
events we receive during typefinding instead of just
dropping them (e.g. newsegment, custom events from
dvdreadsrc etc.) and then send them out once we've
determined the type of the stream (and decodebin
has had a chance to plug in a decoder/demuxer).
Original commit message from CVS:
Inspired by a patch of: Lutz Mueller <lutz at topfrose dot de>
* libs/gst/base/gstbasesrc.c: (gst_base_src_finalize),
(gst_base_src_send_event), (gst_base_src_change_state):
Handle element seek correctly when we are streaming.
Fixes#326998.
Original commit message from CVS:
* docs/faq/gst-uninstalled:
Set up LD_LIBRARY_PATH to point at all the gstreamer libs. This will
allow you to correctly run intalled applications built against old core, using plugins that require updated core (e.g. running
installed totem against a full uninstalled gstreamer stack)
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
Rearrange the order of the methods so that related methods
are grouped together in sections.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_class_init),
(gst_base_sink_init), (gst_base_sink_finalize),
(gst_base_sink_set_qos_enabled), (gst_base_sink_is_qos_enabled),
(gst_base_sink_set_property), (gst_base_sink_get_property),
(gst_base_sink_commit_state), (gst_base_sink_get_sync_times),
(gst_base_sink_wait_clock), (gst_base_sink_do_sync),
(gst_base_sink_add_qos_observation), (gst_base_sink_send_qos),
(gst_base_sink_perform_qos), (gst_base_sink_reset_qos),
(gst_base_sink_is_too_late), (gst_base_sink_render_object),
(gst_base_sink_preroll_object), (gst_base_sink_event),
(gst_base_sink_chain_unlocked), (gst_base_sink_get_position_last),
(gst_base_sink_get_position_paused), (gst_base_sink_get_position),
(gst_base_sink_query), (gst_base_sink_change_state):
Decouple max-lateness and the fact that QoS messages are generated
with a new property (qos).
Add vmethod so subclasses can be notified of ASYNC playing
state changes.
Collect timestamp start and stop to report better current
position in EOS/PLAYING/PAUSED/READY/NULL.
Refactor QoS/frame dropping and other measurements.
API: GstBaseSrc::qos
* libs/gst/base/gstbasesink.h:
Added Private struct.
API: gst_base_sink_set_qos_enabled
API: gst_base_sink_is_qos_enabled
Original commit message from CVS:
* gst/gstregistryxml.c: (gst_registry_xml_read_cache):
If compiling against GLib-2.8 or newer, try to read the
registry file using GMappedFile first before falling back
to fopen() + fread() (#332151).
Original commit message from CVS:
* gst/gstelement.c: (gst_element_set_locked_state),
(gst_element_dispose):
Cleanup the error case.
* gst/gstobject.c: (gst_object_dispose):
print a critical when some object was disposed with
a parent, also revive the object since it might
crash the parent.
Original commit message from CVS:
* configure.ac:
* tests/check/Makefile.am:
disable some tests when we don't have a registry
* tests/check/gst/gstutils.c: (gst_utils_suite):
don't build the part that needs parsing
Original commit message from CVS:
* tools/Makefile.am:
* tools/gst-md5sum.1.in:
* tools/gst-md5sum.c:
Remove gst-md5sum and man page (the md5sink element
required was removed ages ago)
Original commit message from CVS:
* gst/gststructure.c: (gst_structure_id_set_value):
Make sure that string fields in structures/taglists
contain valid UTF-8 - we don't want to pass rubbish to
applications because of a buggy plugin (cp. #334167).
Original commit message from CVS:
Patch by: Loïc Minier <lool + gnome at via dot ecp dot fr>
* pkgconfig/gstreamer-check-uninstalled.pc.in:
* pkgconfig/gstreamer-check.pc.in:
Use @CHECK_LIBS@ here instead of hard-coding -lcheck (#334109).
Original commit message from CVS:
* gst/gstbuffer.h:
* gst/gstevent.h:
* gst/gstmessage.h:
gst_[buffer|event|message]_ref() macros are replaced by a static
inline functions because gcc-4.1 will about if the return value
isn't used.
* tests/check/gst/gstevent.c: (event_probe):
gst_event_ref now has to be given a GstEvent* , fix check accordingly.
Original commit message from CVS:
* gst/gstutils.h:
Add G_UNLIKELY to our boilerplate to optimise the 'already registered
the type' case. (Closes: #335195 for now). In the future, when we
depend on GLib 2.10, we could also intern the type name using
g_intern_static_string()
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_handle_message_func),
(bin_query_max_init), (bin_query_position_fold),
(bin_query_position_done), (gst_bin_query):
Position query should also take max of all streams.
Original commit message from CVS:
* plugins/elements/gstfakesrc.c: (gst_fake_src_class_init),
(gst_fake_src_finalize):
Fix leaks in fakesrc.
* tests/check/pipelines/parse-launch.c: (GST_START_TEST):
Fix leaks in the testcase.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_accept_caps), (gst_pad_alloc_buffer_full),
(gst_pad_push):
Don't leak buffers, caps and pads on negotiation errors.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_accept_caps), (gst_pad_alloc_buffer_full),
(gst_pad_push):
Don't pound the cpu to pieces by checking get_caps when accept_caps
is called with the same caps as the pad already has.
Use GST_DEBUG_OBJECT when outputting caps change information.
Original commit message from CVS:
* gst/gstbuffer.h:
Documentation fix.
* gst/gstpad.c: (gst_pad_init), (gst_pad_acceptcaps_default),
(gst_pad_accept_caps), (gst_pad_configure_sink),
(gst_pad_configure_src), (gst_pad_chain), (gst_pad_push):
Make the default acceptcaps behaviour be to check the requested
caps against the gst_pad_get_caps output.
Ensure that gst_pad_accept_caps is used to check caps when a pad
doesn't have a setcaps function, so that pads automatically refuse
caps that they don't allow in their pad template. (Fixes#332986)
When a buffer with attached caps is pushed, ensure that the source
pad receives those caps even if the element didn't call
gst_pad_set_caps first.
Original commit message from CVS:
* win32/common/libgstbase.def:
* win32/common/libgstcontroller.def:
* win32/common/libgstreamer.def:
Add a whole bunch of missing functions (#334434).
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_configure_segment),
(gst_base_sink_get_sync_times), (gst_base_sink_wait_clock),
(gst_base_sink_do_sync), (gst_base_sink_do_qos):
Better debug info when we receive a segment event.
Reorganize a bit so we can pass the get_times() results around.
Use the segment format when calculating the running time.
Don't do QoS is sync is disabled or we have no clock or the
element does not want us to sync to the clock.
Don't drop buffers if QoS is disabled for now.
Original commit message from CVS:
* gst/gstclock.c: (gst_clock_class_init), (do_linear_regression):
Marked the stats property as unimplemented so people don't get
wild ideas.
Add debug message when regression goes wrong.
Added some more docs.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times):
Can't use gst_segment_to_running_time() when the segment
is not in GST_TIME_FORMAT (like with filesink, for example).
Stops flac encoding pipelines from spewing critical warnings
at EOS (#331248).
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_do_sync),
(gst_base_sink_do_qos):
Separate QoS calculation.
Only drop buffers when lateness is bigger than the
duration of the buffer.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_init),
(gst_base_sink_do_sync):
Small cleanups.
Use QOS debug category.
Original commit message from CVS:
2006-03-12 Julien MOUTTE <julien@moutte.net>
* gst/gsttaglist.c: Fix rubbish docs that are encouraging
us to leak strings...
Original commit message from CVS:
Patch by: Julio M. Merino Vidal <jmmv at netbsd org>
* configure.ac:
Don't check for libgnomeui (leftover from old examples
that aren't built or disted any longer) (#334303).
Original commit message from CVS:
* plugins/elements/gstfdsink.c: (gst_fd_sink_render):
* plugins/elements/gstfilesink.c: (gst_file_sink_render):
Emit RESOURCE_NO_SPACE_LEFT error here as well when
there's no space left on the device.
Original commit message from CVS:
* gst/gstclock.h:
Fix GST_CLOCK_TIME_IS_VALID signedness issues - we need
to cast the input to GstClockTime before comparing with
another GstClockTime value.
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c:
Fix docs for dataprocotol to not get the return types completely
wrong for a few functions.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstpipeline.c: (gst_pipeline_class_init),
(gst_pipeline_init), (gst_pipeline_set_property),
(gst_pipeline_get_property), (gst_pipeline_change_state),
(gst_pipeline_set_auto_flush_bus),
(gst_pipeline_get_auto_flush_bus):
* gst/gstpipeline.h:
Add new API: gst_pipeline_set_auto_flush_bus() and
gst_pipeline_get_auto_flush_bus() to disable automatic
flushing of the pipeline's GstBus when going from READY
to NULL state (#332045).
Original commit message from CVS:
* gst/gstclock.c: (gst_clock_entry_new),
(gst_clock_id_compare_func), (gst_clock_id_wait),
(gst_clock_id_wait_async), (gst_clock_id_unschedule),
(gst_clock_init), (gst_clock_get_internal_time),
(gst_clock_set_master), (do_linear_regression),
(gst_clock_add_observation), (gst_clock_set_property):
* gst/gstclock.h:
Review docs.
Small cleanups.
Fix a possible segfault when the window-size is made smaller.
Calculate jitter before performing the clock wait. Ideally
the clock implementation should calculate jitter but we need
API breakage for that.
* gst/gstsystemclock.c: (gst_system_clock_init):
Docs review.
* libs/gst/base/gstbasesink.c: (gst_base_sink_do_sync):
Remove leftover else
* tests/check/gst/gstsystemclock.c: (GST_START_TEST),
(gst_systemclock_suite):
Added check to test GST_CLOCK_DIFF.
Original commit message from CVS:
* libs/gst/base/gsttypefindhelper.c: (helper_find_get_length),
(gst_type_find_helper_get_range):
If we are provided with the size, we should implement
GstTypeFind::get_length, so that typefind functions who
want to can actually peek at the middle of a file.
Original commit message from CVS:
* docs/manual/advanced-dataaccess.xml:
Add some very very basic error checking.
* docs/pwg/appendix-checklist.xml:
Some updates to the list of things to check when writing an element.
Original commit message from CVS:
* docs/design/part-element-transform.txt:
Added some docs about the design of tranform elements.
* libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek),
(gst_base_src_loop), (gst_base_src_change_state):
Mark buffers with the DISCONT flag.
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_transform_caps),
(gst_base_transform_transform_size),
(gst_base_transform_prepare_output_buffer),
(gst_base_transform_get_unit_size),
(gst_base_transform_buffer_alloc),
(gst_base_transform_handle_buffer),
(gst_base_transform_change_state):
Cleanups, separate normal flow from errors, add sensible
DEBUG lines.
Don't try to renegotiate when allocating an output buffer.
Also copy DISCONT buffer flag when copying a buffer.
Reset the transform after we finish streaming, not during.
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.
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/base/gstbasetransform.h:
Fix#333669, Add pad accessor defines for GstBaseTransform
Fix docs for GstBaseSrc.
Original commit message from CVS:
* gst/gstvalue.c:
Document thread-unsafety of gst_value_register_foo_func()
when used at the same time as gst_value_foo() (#322628).
Original commit message from CVS:
* libs/gst/base/gstpushsrc.c: (gst_push_src_class_init),
(gst_push_src_check_get_range):
Push sources don't support pull mode by default.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_class_init),
(gst_base_src_init), (gst_base_src_pad_check_get_range),
(gst_base_src_default_check_get_range):
* libs/gst/base/gstbasesrc.h:
Add ::check_get_range() vfunc to GstBaseSrc (#332611),
provide default implementation, and rename
gst_base_src_check_get_range() to
gst_base_src_pad_check_get_range() for clarity.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_class_init),
(gst_base_sink_init), (gst_base_sink_set_property),
(gst_base_sink_get_property), (gst_base_sink_do_sync):
* libs/gst/base/gstbasesink.h:
Make max-lateness a property.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_wait_clock),
(gst_base_sink_do_sync), (gst_base_sink_render_object):
Don't ever draw a frame that is >10ms late.
Original commit message from CVS:
* gst/gstmessage.c: (_gst_message_copy):
When copying a message, set the parent_refcount of the enclosed
structure to point at the copy, not the original message.
Original commit message from CVS:
* gst/gstutils.h:
Do proper cast here to make GST_BOILERPLATE_WITH_INTERFACE
usable in c++ code (#333417; patch by: Christophe Fergeau)
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_transform_caps):
Make sure caps are writable before passing them to
gst_caps_append().
Original commit message from CVS:
* gst/gst.c:
Add a check and output a g_warning when GStreamer is built
against GLib 2.6 but running against 2.8 or higher, and vice
versa. (Closes: #323542)
Original commit message from CVS:
* gst/parse/parse.l:
Commit patch for parse_launch syntax from #331255. Removes
support for quoted strings and mimetypes when writing filtered
caps. See the bug report for more details - I'm pretty sure this
obscure feature is not in use by _anyone_ anywhere.
With this simple change, the size of the gstreamer.so here
drops from 2193KB to 1565KB.
Original commit message from CVS:
* plugins/elements/gsttypefindelement.h:
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_src_event), (start_typefinding),
(stop_typefinding), (gst_type_find_element_handle_event),
(gst_type_find_element_chain),
(gst_type_find_element_chain_do_typefinding):
Use gst_type_find_helper_for_buffer() for chain-based
typefinding.
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_class_init),
(gst_type_find_element_set_property),
(gst_type_find_element_get_property):
Deprecate "maximum" property (not only was it only taken into
account for typefinding in push-mode anyway, it also was never
actually possible to set it in the first place because the
property was registered with the numeric property ID for the
"minimum" property). Register "maximum" property correctly,
for the sake of future copy'n'pasters. Remove some cruft
from property get/set functions.
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_activate):
Use gst_type_find_helper_get_range() here, so we
can honour the min-probability property and also emit
the signal with the correct probability of the found caps.
Original commit message from CVS:
* gst/gstregistryxml.c: (load_feature):
Asserting on a failure to read part of the registry is Not Cool.
Just log a warning and return NULL (which is already handled)
Original commit message from CVS:
* win32/common/libgstbase.def:
added export of gst_type_find_helper_for_buffer
* win32/common/libgstbase.def:
added some exports : gst_bin_iterate_elements, gst_iterator_resync,
gst_ghost_pad_get_target
Original commit message from CVS:
* docs/design/draft-klass.txt:
We use Filter now.
Added Connector to mark elements that are only used to
allow pipeline connections.
Moved Debug to extra feature since most of them are
functionally something else.
Original commit message from CVS:
* docs/design/draft-klass.txt:
Proposal for klass field values.
* docs/design/part-streams.txt:
Start of a doc describing stream anatomy.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_get_type), (gst_bin_handle_message_func):
Help the compiler a bit with type registration.
Use existing forward cod path instead of duplicating it when
handling a message.
* gst/gstbus.c: (gst_bus_get_type):
* gst/gstcaps.c: (gst_caps_get_type), (gst_static_caps_get_type):
* gst/gstchildproxy.c: (gst_child_proxy_get_type):
* gst/gstclock.c: (gst_clock_get_type):
* gst/gstelement.c: (gst_element_get_type),
* gst/gstelementfactory.c: (gst_element_factory_get_type):
* gst/gstindexfactory.c: (gst_index_factory_get_type):
* gst/gstminiobject.c: (gst_mini_object_get_type):
* gst/gstpad.c: (gst_pad_get_type):
* gst/gstsegment.c: (gst_segment_get_type):
* gst/gststructure.c: (gst_structure_get_type):
* gst/gstsystemclock.c: (gst_system_clock_get_type):
* gst/gsttask.c: (gst_task_get_type), (gst_task_join):
* gst/gstvalue.c:
Help compiler with type registration.
* plugins/elements/gstqueue.c: (gst_queue_handle_sink_event):
Small doc update.
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_handle_event):
When we get an EOS event and have not found a type yet
(most likely because we had not yet accumulated
TYPE_FIND_MIN_SIZE of data yet), try to determine the
type given the data we have so far. Fixes typefinding
for very short streams again, most notably quicktime
redirections as used on Apple's trailer site (#331701).
Original commit message from CVS:
* libs/gst/base/gsttypefindhelper.c: (type_find_factory_rank_cmp),
(gst_type_find_helper):
Try typefinding factories with the highest rank first.
Original commit message from CVS:
* docs/libs/gstreamer-libs-docs.sgml:
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/base/gsttypefindhelper.c:
Add section for typefind helper and add documentation
for the old and the new function.
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_activate):
Use gst_pad_check_pull_range() before _activate_pull()
to avoid unnecessary open/close (see #331690).
Original commit message from CVS:
* tests/check/Makefile.am:
* tests/check/libs/basesrc.c: (eos_event_counter),
(basesrc_eos_events_pull), (basesrc_eos_events_push),
(basesrc_eos_events_push_live_op), (basesrc_eos_events_pull_live_op),
(gst_basesrc_suite), (main):
... and add some tests for the base source EOS stuff.
Original commit message from CVS:
* tests/check/gst/gstutils.c: (test_buffer_probe_n_times):
Test case originally showed the problem fixed below,
but was then amended. Add checks back at the place
where they used to be.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_class_init),
(gst_base_src_init), (gst_base_src_loop),
(gst_base_src_activate_push), (gst_base_src_activate_pull),
(gst_base_src_change_state):
* libs/gst/base/gstbasesrc.h:
Don't unconditionally send EOS when going from PAUSED to
READY state, esp. make sure we don't send two EOS events
in some cases (e.g. one when reaching EOS and one when
going from PAUSED to READY). Also, we don't want to send
EOS events when operating in pull mode. However, we do
want to send an EOS event when shutting down a live
source explicitly, for example (fixes#330996).
Original commit message from CVS:
* plugins/elements/gstfilesrc.c: (gst_file_src_create_read):
Update src->read_position after a seek when not using mmap.
Fixes#332277, patch by: Renchi Raju <renchi gmail com>
Original commit message from CVS:
* gst/Makefile.am:
* gst/gstparse.h:
* gst/gstutils.c:
* gst/gstutils.h:
Make things work with --disable-parse as they do with
--disable-load-save - the symbols involved disappear, but the
header is still installed and GST_DISABLE_PARSE is included via
gstconfig.h
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_change_state): Fix a stupid bug. I was
sure i compiled that.
------------------------------------------------------
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_set_blocked_async):
* gst/gstutils.c: (gst_pad_add_data_probe),
(gst_pad_add_event_probe), (gst_pad_add_buffer_probe),
(gst_pad_remove_data_probe), (gst_pad_remove_event_probe),
(gst_pad_remove_buffer_probe): Make those function act on the
ghostpad target when it's a ghostpad. (Closes#331727)
------------------------------------------------------
Original commit message from CVS:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_change_state): Make basetransform reusable.
(Closes#331898)
------------------------------------------------------
Original commit message from CVS:
* docs/random/release:
Move the current documentation of how to do a release to the top
of the file.
* gst/gstbin.c: (gst_bin_class_init),
(gst_bin_handle_message_func):
Allow multiple state-recalculation threads. (Closes#328873)
Original commit message from CVS:
2006-02-19 Julien MOUTTE <julien@moutte.net>
* gst/gstinfo.h: Add GST_STR_NULL to the second string.
* gst/gstpad.c: (gst_pad_set_event_function),
(gst_pad_set_query_function), (gst_pad_set_query_type_function),
(gst_pad_set_getcaps_function): GST_DEBUG_PAD_NAME evaluates to
2 strings. You can't use the STR_NULL macro on that.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_set_event_function),
(gst_pad_set_query_function), (gst_pad_set_query_type_function),
(gst_pad_set_getcaps_function)
* gst/parse/grammar.y: (gst_parse_found_pad), (gst_parse_perform_delayed_link)
Fixed NULL pointer used in GST_CAT_DEBUG using GST_STR_NULL macro
So now, we can use --gst-debug-level=5 on Windows
* win32/common/libgstcontroller.def:
Added export of gst_controller_init
* win32/vs6/libgstcontroller.dsp:
Fixed Release post build configuration
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c: (find_peek):
We can do peeks at non-zero offsets, as long as they
fall within the buffer we have.
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_chain):
When typefinding is unsuccessful in the chain function, don't
error out immediately. Only error out with NO_CAPS_FOUND if
the amount of data is at least MAX_TYPEFIND_SIZE bytes,
otherwise simply wait for more data so we can try typefinding
again with more data later. Also, don't attempt to typefind
if we have less than MIN_TYPEFIND_SIZE data available. Overall,
this should improve typefinding from network sources where the
size of the first buffer can be somewhat random.
Original commit message from CVS:
* gst/gstregistry.c: (gst_registry_get_default),
(_gst_registry_cleanup):
Protect default registry with lock and ref/sink it.
Fixes#324818, patch by Torsten Schoenfeld.
Original commit message from CVS:
* tests/check/gst/gstutils.c: (data_probe), (buffer_probe),
(event_probe), (GST_START_TEST):
Only events up to the pipeline EOS are counted, there are
some more when going to NULL currently which we don't care
about for now.
Original commit message from CVS:
2006-02-10 Andy Wingo <wingo@pobox.com>
* gst/gstbus.c (gst_bus_class_init): Declare our private data
structure.
(gst_bus_init): Cache the location of the private data in the
instance structure.
(gst_bus_enable_sync_message_emission)
(gst_bus_disable_sync_message_emission): Implement new public
functions.
(gst_bus_post): Emit the sync-message signal if the user asked for
it. Fixes#330684.
* gst/gstbus.h (GstBus): Use a padding pointer to cache the
location of the bus-private structuure.
(gst_bus_enable_sync_message_emission)
(gst_bus_disable_sync_message_emission): New public functions.
Original commit message from CVS:
=== release 0.10.3 ===
2006-02-08 Jan Schmidt <thaytan@mad.scientist.com>
* configure.ac:
releasing 0.10.3, "Like a virgin"
Original commit message from CVS:
2006-02-07 Andy Wingo <wingo@pobox.com>
* libs/gst/base/gstcollectpads.c (gst_collect_pads_chain): Only
update last_stop if we're in TIME format and the timestamp is
valid.
* libs/gst/base/gstcollectpads.c (gst_collect_pads_event)
* libs/gst/base/gstbasetransform.c (gst_base_transform_eventfunc):
* libs/gst/base/gstbasesink.c (gst_base_sink_configure_segment):
If we get a new newsegment with a different format, adapt
accordingly.
* gst/gstclock.c (gst_clock_set_calibration): Accept a numerator
of 0. Not a problem, really.
Original commit message from CVS:
2006-02-07 Andy Wingo <wingo@pobox.com>
* libs/gst/base/gstbasesink.c (gst_base_sink_chain_unlocked): Only
warn if sync=true.
Original commit message from CVS:
* win32/vs7:
project files updated to the default vs7 configuration
* win32/common/libgstbase.def:
* win32/common/libgstreamer.def:
added new symbols,
removed empty lines,
sorted all exported symbols alphabetically
* win32/common/dirent.c:
* win32/common/dirent.h:
* win32/common/gchar.h:
use windows line end.
Original commit message from CVS:
2006-02-05 Julien MOUTTE <julien@moutte.net>
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_finalize),
(gst_collect_pads_add_pad), (gst_collect_pads_remove_pad),
(gst_collect_pads_start), (gst_collect_pads_stop),
(gst_collect_pads_event): Collectpads now holds a reference
to the GstPad that was added. Indeed we don't want to look
at pads that might just go away with no warning...
Original commit message from CVS:
* tests/check/gst/gstutils.c: (test_parse_bin_from_description),
(gst_utils_suite):
Add some simple tests for gst_parse_bin_from_description() and
gst_bin_find_unconnected_pad() (#329069).
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_activate):
Post TYPE_NOT_FOUND error message when typefinding
is unsuccessful in the activate function as well.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_do_sync),
(gst_base_sink_render_object),
(gst_base_sink_queue_object_unlocked):
Only keep track of prerollable items when we are
prerolling.
Before rendering after preroll, always check if we
have queued items.
Added some more debugging.
Original commit message from CVS:
* gst/gstelement.c: (gst_element_continue_state),
(gst_element_set_state_func), (gst_element_change_state):
Fixed#326576, been running this for quite some time with
no regressions at all.
Original commit message from CVS:
* docs/design/part-element-sink.txt:
Updated document.
* libs/gst/base/gstbasesink.c: (gst_base_sink_init),
(gst_base_sink_finalize), (gst_base_sink_preroll_queue_flush),
(gst_base_sink_configure_segment), (gst_base_sink_commit_state),
(gst_base_sink_get_sync_times), (gst_base_sink_wait_clock),
(gst_base_sink_do_sync), (gst_base_sink_render_object),
(gst_base_sink_preroll_object),
(gst_base_sink_queue_object_unlocked),
(gst_base_sink_queue_object), (gst_base_sink_event),
(gst_base_sink_chain_unlocked), (gst_base_sink_chain),
(gst_base_sink_loop), (gst_base_sink_activate_pull),
(gst_base_sink_get_position), (gst_base_sink_change_state):
* libs/gst/base/gstbasesink.h:
Totally refactored matching the design doc.
Use two segments, one to clip incomming buffers and another to
perform sync.
Handle queueing correctly, bypass the queue when playing.
Make EOS cancelable.
Handle errors correctly when operating in pull based mode.
* tests/check/elements/fakesink.c: (GST_START_TEST),
(fakesink_suite):
Added new check for sinks.
Original commit message from CVS:
* gst/gstbin.c: (bin_remove_messages), (bin_query_duration_done):
Don't cache duration messages if we're not going to use or
free them.
Original commit message from CVS:
* docs/manual/advanced-dparams.xml:
* docs/pwg/advanced-dparams.xml:
more dparam docs
* gst/gstindex.c:
fix docs
* libs/gst/controller/lib.c: (gst_controller_init):
init just once
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_init),
(gst_base_sink_preroll_queue_empty), (gst_base_sink_commit_state),
(gst_base_sink_handle_object), (gst_base_sink_event),
(gst_base_sink_is_prerolled), (gst_base_sink_wait),
(gst_base_sink_do_sync), (gst_base_sink_handle_event),
(gst_base_sink_handle_buffer), (gst_base_sink_set_flushing),
(gst_base_sink_deactivate), (gst_base_sink_activate),
(gst_base_sink_activate_pull), (gst_base_sink_get_position),
(gst_base_sink_query), (gst_base_sink_change_state):
Basesink cleanups, remove some old code.
Handle the case where a subclass can preroll in the render
method (mostly audiosinks).
Handle more events.
Remove some locks around variables that are now protected
with the PREROLL_LOCK (clock_id, flushing, ..).
Optimize position query some more, do correct locking.
Remove old code to push queue in state change, this is not
needed anymore since preroll blocks on all prerollable items
now.
Almost implemented as described in design doc.
Original commit message from CVS:
* win32/common/libgstbase.def:
* win32/common/libgstreamer.def:
export some new symbols: gst_base_src_set_format,
gst_iterator_next, gst_structure_set_valist
Original commit message from CVS:
2006-01-29 Julien MOUTTE <julien@moutte.net>
* gst/gstghostpad.c: (gst_proxy_pad_set_target_unlocked):
Set pad functions unconditionally. Fixes#329105.
Original commit message from CVS:
* plugins/elements/gsttee.c: (gst_tee_do_push),
(gst_tee_handle_buffer):
Always prefer an actual return value from a src
pad in place of NOT_LINKED. This means we return
WRONG_STATE when all src pads are WRONG_STATE
instead of NOT_LINKED.
Lock when replacing the last message to prevent
racing with the get_property method.
Add debug output
Original commit message from CVS:
* tests/check/Makefile.am:
* tests/check/gst/gstquery.c: (GST_START_TEST), (gstquery_suite),
(main):
Add a very simple check that should have caught the memleak I fixed
last night (if not for the slice allocator hiding it)
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_dispose), (gst_bin_provide_clock_func),
(gst_bin_remove_func), (gst_bin_handle_message_func),
(bin_query_duration_fold), (bin_query_generic_fold):
Clean up references to the clock provider when disposed or when
handling a clock-lost message from it.
Unref sinks when performing a query via gst_iterator_fold, as the
gst_bin_iterate_sinks iterator refs each item. (Fixes#323874)
* gst/gstclock.c: (gst_clock_class_init), (gst_clock_dispose),
(gst_clock_set_master):
Drop our reference to the master clock, if any, when we are disposed.
* gst/gsttypefindfactory.c: (gst_type_find_factory_dispose):
Chain up in dispose.
Original commit message from CVS:
2006-01-26 Julien MOUTTE <julien@moutte.net>
* plugins/elements/gsttee.c: (gst_tee_do_push),
(gst_tee_handle_buffer): Apply patch from #328715. Tee now
handles pad being NOT_LINKED or in WRONG_STATE.
Original commit message from CVS:
2006-01-25 Julien MOUTTE <julien@moutte.net>
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_position):
We only query position using the clock in the playing state.
Query peer in the other cases.
* win32/common/config.h: Updates.
Original commit message from CVS:
* gst/gstsystemclock.c: (gst_system_clock_id_wait_unlocked):
A clock entry that is scheduled for the exact time of the
clock is still in time.
* libs/gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_do_sync):
Add some more debug info.
Original commit message from CVS:
* gst/gstcaps.c:
Clarify behaviour of _is_equal() when passing NULL parameters.
* gst/gstpad.c: (gst_pad_link_check_compatible_unlocked),
(gst_pad_set_caps):
Cleanups. Don't unref NULL caps.
When setting the same caps, protect caps of the pad with
proper lock.
Use full functionality of _is_equal() when comparing caps.
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_is_collected):
Don't loop infinitely if there are no buffers to present. Partially
fixes#327197, but collectpads is just broken for reusing elements
to do multiple encodes atm.
Original commit message from CVS:
* tools/gst-inspect.c: (print_element_features):
* tools/gst-xmlinspect.c: (main):
URL_HANDLER is not a plugin feature we can search for in
the registry.
Original commit message from CVS:
* gst/gstelement.c: (gst_element_pads_activate):
When activating, do src pads first, then sink pads.
When de-activating, do sink pads first, then src pads.
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.
Original commit message from CVS:
* docs/design/part-events.txt:
Remove mention of FILLER events.
Add DRAIN event.
* docs/design/part-sparsestreams.txt:
Write some things about using NEWSEGMENT to keep sparse streams
flowing.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_dispose):
Guard gst_object_unref call against a NULL object (dispose
can theoretically be called multiple times).
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_element_set_state):
* gst/gstclock.c: (gst_clock_id_wait):
Added some more debug info.
* libs/gst/base/gstadapter.c:
Added more docs.
* libs/gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_do_sync), (gst_base_sink_chain):
Added some comments.
Original commit message from CVS:
* tests/check/Makefile.am:
* tests/check/elements/fakesink.c: (chain_async_buffer),
(chain_async), (chain_async_return), (GST_START_TEST),
(fakesink_suite), (main):
Added fakesink test that checks prerolling and clipping
behaviour.
* tests/check/gst/gstutils.c: (GST_START_TEST):
Make check run faster so that buildbots don't timeout.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_set_property),
(gst_base_sink_get_property), (gst_base_sink_do_sync),
(gst_base_sink_chain):
Small cleanups.
GST_ELEMENT_CLOCK and sync are protected with LOCK.
Don't store _last_stop if the buffer is dropped.
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_class_init):
'have-type' signal needs to be G_SIGNAL_RUN_FIRST, as it is the
object method handler that sets the caps on the pad and we want
that to happen before we emit the signal (fixes e.g. feeding a
plain text file to decodebin).
Original commit message from CVS:
2006-01-18 Andy Wingo <wingo@pobox.com>
* gst/gstindex.h (gst_index_add_associationv): Add to header. The
symbol was exported before, it appears this was just an oversight.
Fixes#168703.
Patch by: Torsten Schoenfeld <kaffeetisch at gmx.de>
* gst/gstindex.c (gst_index_add_associationv): Changed int in
prototype to gint. OK since this prototype was not in the header.
Original commit message from CVS:
2006-01-17 Andy Wingo <wingo@pobox.com>
* gst/gstregistry.c (_gst_registry_remove_cache_plugins): Lock the
registry while we remove plugins.
* tools/gst-inspect.c (print_element_info): Don't unref the
factory arg, that should be the responsibility of whatever code
received the ref. Fixes a double-free when called from
print_element_list via gst-inspect-0.10 -a. Fixes#327324.
(main): Unref the factory if we have one.
(print_element_list): No change -- relies on the
plugin_feature_list_free to free the list of features.
Original commit message from CVS:
* gst/gstbuffer.c: (gst_buffer_is_metadata_writable),
(gst_buffer_make_metadata_writable):
* gst/gstbuffer.h:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buf):
* plugins/elements/gstcapsfilter.c: (gst_capsfilter_prepare_buf):
* tests/check/gst/gstbuffer.c: (GST_START_TEST), (gst_test_suite):
Replace gst_buffer_(make|is)_metadata_writable patch now
that the release is out.
Original commit message from CVS:
2006-01-17 Andy Wingo <wingo@pobox.com>
* gst/gstregistry.c: Reflow design comment. Update so as to speak
in the present tense without reference to versions.
* gst/gstregistry.c (gst_registry_add_plugin)
(gst_registry_remove_plugin, gst_registry_remove_feature)
(gst_registry_find_feature, gst_registry_get_feature_list)
(gst_registry_get_plugin_list, gst_registry_lookup_feature)
(gst_registry_lookup, gst_registry_scan_path)
(_gst_registry_remove_cache_plugins)
(gst_registry_get_feature_list_by_plugin): Add argument
validation.
Original commit message from CVS:
* gst/gstbuffer.c:
* gst/gstbuffer.h:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buf):
* plugins/elements/gstcapsfilter.c: (gst_capsfilter_prepare_buf):
* tests/check/gst/gstbuffer.c: (gst_test_suite):
Back out patch until after the release.
Original commit message from CVS:
Reviewed By: Andy Wingo
* gst/gstbuffer.c: (gst_buffer_is_metadata_writable),
(gst_buffer_make_metadata_writable):
* gst/gstbuffer.h:
Add gst_buffer_(is|make)_metadata_writable as analogues of
gst_buffer_(is|make)_writable.
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buf):
* plugins/elements/gstcapsfilter.c: (gst_capsfilter_prepare_buf):
Use name gst_buffer_(is|make)_metadata_writable functions.
* tests/check/gst/gstbuffer.c: (GST_START_TEST), (gst_test_suite):
Test gst_buffer_(is|make)_metadata_writable
(Closes: #324162)
Original commit message from CVS:
* docs/manual/Makefile.am:
don't do parallel make
* configure.ac:
AC_SUBST HOST_CPU
* win32/common/config.h.in:
add generations for HOST_CPU and GST_MAJORMINOR
* win32/common/config.h: commit generated result
Original commit message from CVS:
* docs/manual/appendix-integration.xml:
Update GNOME integration section to use gst_init_get_option_group()
instead of the old popt stuff (#322911). Also, GNOME applications
should now use gconf*sink and gconf*src instead of the old gconf
helper lib we had.
Original commit message from CVS:
* gst/gstbuffer.c: (gst_buffer_span):
gst_buffer_span should copy the timestamp of the first buffer
if they were both originally overlapping subbuffers of the
same parent, using the same logic as the 'slow copy' case.
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_pop):
Need to awaken ALL the pads when we pop a buffer, otherwise
collectpads only works when there is 2 input streams.
Original commit message from CVS:
* docs/random/ensonic/media-device-daemon.txt:
more ideas (dbus)
* gst/gstbuffer.c:
fix doc example, add clarification
* tools/gst-launch.1.in:
add initial info about GST_PLUGIN_PATH, needs more work
Original commit message from CVS:
* docs/manual/basics-bins.xml:
* docs/manual/basics-elements.xml:
* docs/manual/intro-basics.xml:
Some more minor docs additions and updates.
Original commit message from CVS:
* plugins/elements/gstidentity.c: (gst_identity_transform_ip):
Set the buffer offset/offset_end to GST_CLOCK_TIME_NONE when using
the single-segment mode.
Original commit message from CVS:
* gst/gstmessage.c: (gst_message_parse_tag),
(gst_message_parse_error), (gst_message_parse_warning):
Don't crash when return location for error/warning debug
string is NULL; add fact that return locations can be
NULL to docs where appropriate.
Original commit message from CVS:
Reviewed by: Tim-Philipp Müller <tim at centricular dot net>
* gst/gstutils.h:
Add prototype for _get_type() function to GST_BOILERPLATE_FULL
macro, so that gcc doesn't complain if the -Wmissing-prototypes
compiler switch is being used (#325429).
Original commit message from CVS:
* gst/gst.c: (init_post):
Init tags stuff and some other things before loading
any static plugins (there may be other static plugins
than just the GStreamer ones, and they may want to
register their own tags or formats or whatever, and
preferably without segfaulting).
* plugins/elements/gstqueue.c: (gst_queue_handle_src_query):
Print at least a warning in the debug logs if we drop a
query just because we don't know how to adjust the value
in the particular format.
Original commit message from CVS:
* tools/gstreamer-completion:
Replacement for gst-complete written in sh and sed. Only
completes names of features, but that's 90% of what I want
it for. Properties are not available in registry.xml. (Maybe
they should be...)
Original commit message from CVS:
* gst/gstcaps.c: (gst_static_caps_get_type):
* gst/gstcaps.h:
Added gpointer GType for GstStaticCaps so we can wrap them in bindings.
* gst/gstpadtemplate.c: (gst_static_pad_template_get_type):
* gst/gstpadtemplate.h:
Added gpointer GType for GstStaticPadTemplate so we can wrap them in
bindings.
Original commit message from CVS:
* gst/gstregistryxml.c: (load_feature):
Cleanups.
Don't use g_object_unref on GstObjects so that we avoid
leaks on unsafe glibs.
Original commit message from CVS:
* gst/gstminiobject.c: (gst_value_mini_object_lcopy):
Fix lcopy for mini objects, the mini object needs to be ref'ed.
* tests/check/gst/gstminiobject.c: (my_foo_init),
(my_foo_get_property), (my_foo_set_property), (my_foo_class_init),
(test_value_collection), (gst_mini_object_suite):
Add test to ensure refcounts end up as expected when passing
GstMiniObjects through g_object_get() and g_object_set().
Original commit message from CVS:
2005-12-14 Julien MOUTTE <julien@moutte.net>
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_base_init),
(gst_collect_pads_remove_pad), (gst_collect_pads_is_collected),
(gst_collect_pads_event), (gst_collect_pads_chain): Refactoring
of collectpads. This version removes a lot of races without
touching API/ABI. Yay !
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_activate_pull), (gst_pad_link_prepare):
Don't allow activation of a srcpad in pull_range if it has no
getrange function.
Change some debug statements to be a little clearer
* plugins/elements/gsttypefindelement.c:
(gst_type_find_handle_src_query):
Check that we have a peer before executing queries thereupon.
* tests/examples/metadata/read-metadata.c: (message_loop):
Use gst_bus_pop instead of gst_bus_poll when we just want it to
immediately return us any available message with 0 timeout.
Original commit message from CVS:
* gst/gstpluginfeature.c: (gst_plugin_feature_finalize),
(gst_plugin_feature_load):
more meaningful debug output
* configure.ac:
* tests/Makefile.am:
* tests/old/examples/Makefile.am:
make make distcheck happy again
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c: (stop_typefinding):
Catch the special case where we are operating chain-based,
but the downstream peer pad has no chain function. Emit a
custom error message in this case instead of letting the
core generate one implying that this is some sort of core
bug. It's not, it just means that whatever got plugged
into the pipeline downstream when we announced the type
can only operate pull-based, while our source can only
operate push-based (e.g. http://foo/bar.mov ! qtdemux ! ...)
Error string has not been marked for translation yet, as
it probably needs some more work first.
(gst_type_find_element_get_best_possibility):
Add helper function to find the best of all available
found possibilities that qualify given the min. threshold.
(gst_type_find_element_handle_event):
Fix the case where we get an EOS while still in TYPEFIND
mode (we want to chose the best of all possible types,
not just the first type that happens to be in our unsorted
list of possible types).
(gst_type_find_element_chain):
Make sure we return GST_FLOW_ERROR when we errored out
in stop_typefinding(); also, don't just find the best of
all found type entries and then use the last examined
type entry, but actually use the best entry.
Original commit message from CVS:
* tests/examples/typefind/typefind.c: (type_found):
* tests/examples/xml/runxml.c: (xml_loaded):
More gcc4 fixes and a mem leak fix.
Original commit message from CVS:
2005-12-12 Andy Wingo <wingo@pobox.com>
* libs/gst/net/gstnettimeprovider.c
(gst_net_time_provider_class_init, gst_net_time_provider_init)
(gst_net_time_provider_set_property)
(gst_net_time_provider_get_property): Export "active" as a GObject
property.
(gst_net_time_provider_thread): Only respond to time queries if
the time provider is active.
* libs/gst/net/gstnettimeprovider.h: Add an "active" boolean to
NetTimeProvider, preserving binary compat.
Original commit message from CVS:
* gst/gstsegment.c: (gst_segment_init),
(gst_segment_set_last_stop), (gst_segment_set_seek),
(gst_segment_set_newsegment), (gst_segment_to_stream_time),
(gst_segment_to_running_time):
Added more documentation.
Make sure the last_pos value is updated properly.
Make sure to_stream_time and to_running_time don't
operate on wrong values.
* tests/check/gst/gstsegment.c: (GST_START_TEST):
Update check.
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c: (free_entry),
(gst_type_find_element_chain):
Now that we're not leaking factories, make sure we keep references
to them while we need them.
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_transform_double_fraction):
floor is not needed, F is always positive; this obviates the
need for adding -lm when building without libxml
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_position):
Take current playback rate into account when reporting
the position.
Original commit message from CVS:
* docs/manual/mime-world.fig:
Add audioconvert element to diagram so that it
matches the text and the code (fixes#319526).
Original commit message from CVS:
* docs/pwg/building-chainfn.xml:
* docs/pwg/building-pads.xml:
* docs/pwg/building-state.xml:
* docs/pwg/other-source.xml:
Update state change stuff for 0.10 (fixes#322969).
Original commit message from CVS:
* docs/manual/advanced-dataaccess.xml:
* docs/manual/appendix-checklist.xml:
* docs/manual/appendix-programs.xml:
* docs/manual/basics-pads.xml:
* docs/manual/highlevel-components.xml:
* docs/manual/manual.xml:
Update for 0.10: s/0.9/0.10/; s/audioscale/audiorsample/;
add converters in front of pipelines; remove curly
brackets for threads stuff, they no longer exist; use
GST_TYPE_FRACTION for framerates; update some pieces of
code to 0.10, but there's plenty more to do.
* docs/manual/appendix-porting.xml:
Expand on asynchroneous state changes; s/0.9/0.10/;
mention disappearance of gst_init_get_popt_table()
(fixes#322916).
Original commit message from CVS:
* docs/faq/using.xml:
Spider no longer exists, and neither does gst-launch-ext.
Update examples to use decodebin and playbin and put
converters in front of sinks (fixes#323726).
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c: (find_peek),
(gst_type_find_element_chain):
Fix leaking element factories in typefinding.
Fix problem where we forgot about a probable type on non-seekable
files, and thus later mis-typefound it.
Original commit message from CVS:
* tests/check/Makefile.am:
* tests/check/libs/libsabi.c: (GST_START_TEST), (gstabi_suite),
(main):
* tests/check/libs/struct_i386.h:
Added ABI check for libs
Original commit message from CVS:
* gst/gstbuffer.c:
Small docs update.
* gst/gstcaps.c: (gst_caps_is_equal):
Don't assert on NULL <--> X. Fixes#323260
* gst/gstminiobject.c: (gst_mini_object_replace):
If we're doing atomic operations, we might just as well use
the proper way to get an atomic pointer.
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_position):
Clean up debugging.
Original commit message from CVS:
submitted by: Funda Wang <fundawang@linux.net.cn>
* po/LINGUAS:
* po/zh_CN.po:
added Chinese (Traditional) translation
Original commit message from CVS:
2005-12-05 Andy Wingo <wingo@pobox.com>
patch by: Wim Taymans <wim@fluendo.com>
* libs/gst/base/gstbasetransform.c
(gst_base_transform_prepare_output_buf)
(gst_base_transform_buffer_alloc):
* plugins/elements/gstqueue.c (gst_queue_bufferalloc): Call
alloc_buffer_and_set_caps.
* gst/gstpad.c (gst_pad_alloc_buffer): Changed to not call
set_caps on the source pad.
(gst_pad_alloc_buffer_and_set_caps): New function, does what
alloc_buffer used to do. Fixes#322874.
* docs/gst/gstreamer-sections.txt:
* docs/design/part-negotiation.txt:
* docs/pwg/advanced-negotiation.xml: Update for the alloc_buffer
changes.
Original commit message from CVS:
2005-12-05 Andy Wingo <wingo@pobox.com>
patch by: Thomas Vander Stichele <thomas at apestaart dot org>
* gst/gst.c (init_post): remove hard-coded 0.9 location for
registries/plugins with a MAJORMINOR one.
(plugin_desc): Rename library from gstcoreleements to
staticelements. Fixes#323222.
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_base_init):
Change debug category to 'collectpads' from 'collect_pads'
(fixes#323250).
Original commit message from CVS:
patch by: Sebastien Moutte
* libs/gst/controller/gstinterpolation.c:
use convert function for uint64/double
* win32/vs6/libgstcontroller.dsp:
link to GLib
Original commit message from CVS:
* gst/gstutils.c: (gst_util_guint64_to_gdouble),
(gst_util_gdouble_to_guint64), (gst_util_uint64_scale_int64):
* gst/gstutils.h:
* tests/check/gst/gstutils.c: (GST_START_TEST), (gst_utils_suite):
add tests that seem to show that the guint64/gdouble conversions
are correct.
Original commit message from CVS:
* gst/gstregistry.c: (gst_registry_add_path):
* gst/gstregistry.h:
* gst/gstregistryxml.c:
Fix docs again.
Removed old code from gstregistryxml.c
Original commit message from CVS:
* tools/gst-run.c: (compare_major_minor), (find_highest_version),
(get_candidates):
do piece-wise major/minor comparison so 0.9 < 0.10
also allow .exe extensions for tools
Original commit message from CVS:
document core plugins in a separate document just like all the
others
rename these plugins to something starting with core
Original commit message from CVS:
2005-12-01 Andy Wingo <wingo@pobox.com>
* gst/gstevent.h (struct _GstEvent): Meant to remove the extra
padding here before, but it missed the commit.
Original commit message from CVS:
* libs/gst/controller/gstinterpolation.c:
whitespace prices have crashed, we should feel free to use some now
use gst_guint64_to_gdouble
Original commit message from CVS:
* configure.ac:
* gst/Makefile.am:
* gst/gst.c:
* gst/gstplugin.h:
* gst/gstregistry.h:
* tests/benchmarks/complexity.c:
* tests/benchmarks/mass-elements.c:
* tests/check/Makefile.am:
* tools/Makefile.am:
* tools/gst-inspect.c:
* tools/gst-xmlinspect.c:
various fixes to make
--disable-nls --disable-registry --disable-loadsave --disable-parse --disable-gst-debug
work and get the core .so down to 360444 bytes after stripping
Original commit message from CVS:
2005-11-30 Andy Wingo <wingo@pobox.com>
* configure.ac (GST_PKG_DEPS): Revert previous patch, makes
loading the gst.interfaces python module bork.
* configure.ac (GST_PKG_DEPS): Use gmodule-no-export-2.0.pc,
available since GLib 2.2. Fixes#318031.
Original commit message from CVS:
* configure.ac:
* tests/bench-complexity.scm:
* tests/bench-mass_elements.scm:
* tests/complexity.c:
* tests/complexity.gnuplot:
* tests/instantiate/.cvsignore:
* tests/instantiate/Makefile.am:
* tests/instantiate/caps.c:
* tests/mass_elements.c:
* tests/network-clock-utils.scm:
* tests/network-clock.scm:
* tests/plot-data:
First pass at cleaning up tests/ dir before moving the rest
Combined with CVS surgery
Original commit message from CVS:
* Makefile.am:
remove some files
* README:
reinstate and update
* DEVEL:
* REQUIREMENTS:
removed
* LICENSE:
* docs/random/LICENSE:
moved to random
Original commit message from CVS:
* gst/gst.c:
* plugins/elements/Makefile.am:
* plugins/elements/gstelements.c:
* plugins/elements/gstqueue.c:
move queue from core to the elements plugin
ç
Original commit message from CVS:
2005-11-29 Andy Wingo <wingo@pobox.com>
* libs/gst/base/gstbasetransform.h:
* libs/gst/base/gstbasesrc.h:
* libs/gst/base/gstbasesink.h: en-LARGE the padding.
* gst/gstconfig.h.in (GST_PADDING_LARGE): New define, the number
of pointers by which to pad very extensible base classes (like the
ones in libs/gst/base).
Original commit message from CVS:
* docs/gst/gstreamer-docs.sgml:
* docs/gst/gstreamer-sections.txt:
* docs/libs/gstreamer-libs-docs.sgml:
* docs/libs/gstreamer-libs-sections.txt:
moving documentation from core to lib
Original commit message from CVS:
2005-11-29 Andy Wingo <wingo@pobox.com>
* gst/gstevent.h (struct _GstEvent): Only one pointer of padding.
* gst/gststructure.h (struct _GstStructure): Only one pointer of
padding.
* gst/gstquery.h (struct _GstQuery): Only one pointer of padding.
* gst/gstpluginfeature.h: Remove a comment in PluginFeature.
* gst/gstplugin.h (struct _GstPluginClass): Add some padding.
* gst/gstobject.h: (struct _GstObject): Only one pointer of
padding; reduces object size by about 30%. We don't expect
anything else to go into gstobject.
* gst/gstminiobject.h (struct _GstMiniObject)
(struct _GstMiniObjectClass): Only one pointer of padding; the
payload is only a pointer and two ints anyway. For the class there
are only two methods as well.
* gst/gstelement.h (struct _GstElementClass): Removed
the state_changed signal callback, it is not used.
Original commit message from CVS:
* check/Makefile.am:
look in the right place for elements, a lot more chance of
success
* gst/Makefile.am:
remove indexers and elements subdirs
* plugins/Makefile.am:
make indexers conditional
Original commit message from CVS:
* Makefile.am:
* configure.ac:
* plugins/elements/Makefile.am:
* plugins/elements/gstcapsfilter.c:
* plugins/elements/gstfilesink.c:
* plugins/elements/gstfilesrc.c:
* plugins/elements/gstidentity.c:
* plugins/indexers/Makefile.am:
do CVS surgery and related build fixery to move elements
and indexers in a new gstreamer/plugins directory, out of the
gst/ directory
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.
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_activate_pull), (gst_base_sink_change_state):
Properly handle non GST_FORMAT_TIME segment
* gst/elements/gstidentity.c: (gst_identity_transform_ip):
Properly handle non GST_FORMAT_TIME segment
* gst/gstsegment.c:
This function is valid if the accumulator is 0 and the format
is different from the requested format.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_buffer_alloc):
Treat a pad alloc with new caps the same as if we were not
negotiated, in order to allow a changing upstream output
to produce a new format of data.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_class_init),
(gst_base_transform_event), (gst_base_transform_eventfunc):
The event virtual method is now properly implemented, with a default
handler
Sub classes should call the parent_class event method. They should
return FALSE if they had a problem handling the given event, or don't
want GstBaseTransform to send that even downstream
* gst/elements/gstidentity.c: (gst_identity_class_init),
(gst_identity_init), (gst_identity_event),
(gst_identity_transform_ip), (gst_identity_set_property),
(gst_identity_get_property):
* gst/elements/gstidentity.h:
Added the single-segment boolean property.
If set to TRUE, it will output a single segment of data, starting from
0, will eat up all incoming newsegment, and modify the timestamp of the
buffers accordingly
Original commit message from CVS:
* Makefile.am:
don't run checks if we don't have check
* common/check.mak:
remove the registry when running make torture
* docs/gst/gstreamer-sections.txt:
remove second multiply
* gst/gstqueue.c: (gst_queue_loop):
fix a compile warning when disabling debug
Original commit message from CVS:
* check/gst/gstutils.c: (GST_START_TEST):
Updated check, add some scaling accuracy checking code.
* gst/gstutils.c: (gst_util_div128_64),
(gst_util_uint64_scale_int64), (gst_util_uint64_scale),
(gst_util_uint64_scale_int):
Fix 6 times faster division code. Optimize for common
1/1 and less common X/1 cases.
Original commit message from CVS:
* check/gst/gstutils.c: (GST_START_TEST), (gst_utils_suite):
More checks.
* gst/gstclock.c: (gst_clock_finalize), (gst_clock_set_master),
(do_linear_regression), (gst_clock_add_observation):
Cleanups.
Release lock when the clock cannot be slaved.
Catch the case where the regression returned an invalid denominator.
* gst/gstutils.c: (gst_util_div128_64_iterate),
(gst_util_div128_64), (gst_util_uint64_scale_int64),
(gst_util_uint64_scale), (gst_util_uint64_scale_int):
Add protentially more performant non-iterative 128/64 divide function
that unfortunatly does not work yet.
Shortcut the trivial 0/X = 0 case.
Remove the warnings on overflow.
Original commit message from CVS:
* docs/random/ensonic/dparams.txt:
some TODOs for the next dev cycle
* libs/gst/controller/gstcontroller.c:
(gst_controlled_property_set_interpolation_mode),
(gst_controlled_property_new):
* libs/gst/controller/gstcontroller.h:
use base type to assign acccessor functions
Original commit message from CVS:
* check/Makefile.am:
* check/elements/fdsrc.c: (GST_START_TEST):
Use a cmdline define to specify the location of a file to use for
testing, to avoid breaking distcheck.
Original commit message from CVS:
* gst/gstvalue.c:
Improve documentation for gst_value_union().
* gst/gstvalue.h:
Change return value for union, intersect and subtract functions
from gint to gboolean.
Original commit message from CVS:
* configure.ac:
* gst/Makefile.am:
* gst/base/Makefile.am:
* gst/check/Makefile.am:
* gst/elements/Makefile.am:
* gst/net/Makefile.am:
update LDFLAGS use some more
Original commit message from CVS:
* gst/gstpluginfeature.c: (gst_plugin_feature_load):
This shouldn't issue a g_warning since it returns NULL if it
couldn't find the plugin, and all functions using this behave
properly on a NULL return. Switching to a GST_WARNING.
Original commit message from CVS:
* check/gst/gstutils.c: (GST_START_TEST), (gst_utils_suite):
Added more checks for the high precision uint64 cases.
* gst/gstutils.c: (gst_util_uint64_scale_int64),
(gst_util_uint64_scale), (gst_util_uint64_scale_int):
Implement high precission (guint64 * guint64) / guint64.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_query):
Fix wrong percentage query.
* gst/gstutils.c: (gst_util_uint64_scale),
(gst_util_uint64_scale_int):
Add some more common cases that can be handled
efficiently to _scale.
Original commit message from CVS:
* check/gst/gstminiobject.c: (thread_ref), (GST_START_TEST),
(gst_mini_object_suite):
don't use check calls from threads; check probably isn't
threadsafe and using a lock to make it threadsafe would
defeat the purpose of this check
* gst/check/gstcheck.c:
* gst/check/gstcheck.h:
use GST_DEBUG some more
Original commit message from CVS:
* check/gst/gstutils.c: (GST_START_TEST), (gst_utils_suite):
Added test for scaling.
* gst/gstclock.h:
Small doc fix.
* gst/gstutils.c: (gst_util_uint64_scale_int):
Implemented high precision scaling code.
Original commit message from CVS:
Patch by: Stefan Kost
* common/gtk-doc.mak:
* docs/gst/Makefile.am:
* docs/libs/Makefile.am:
Fix distcheck issues for the libraries docs build
Closes#319599
Original commit message from CVS:
2005-11-24 Michael Smith <msmith@fluendo.com>
* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
Unlock the PREROLL_LOCK in a failure case.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
Update for new API and API changes.
* gst/gstobject.h:
Documentation fix: GST_TRYLOCK -> GST_OBJECT_TRYLOCK
* gst/gstvalue.c:
Documentation typo fix.
* gst/net/gstnettimepacket.c:
Documentation fixes for arguments.
Original commit message from CVS:
* gst/gststructure.c: (gst_structure_get_fraction),
(gst_structure_parse_value),
(gst_structure_fixate_field_nearest_fraction):
* gst/gststructure.h:
* gst/gstutils.c: (gst_util_uint64_scale_int):
* gst/gstutils.h:
* scripts/update-funcnames:
API Changes.
Rename gst_util_clock_time_scale to gst_util_uint64_scale_int
Make gst_structure_fixate_field_nearest_fraction take a numerator
and denominator argument instead of a GValue
add gst_structure_get_fraction helper function.
Original commit message from CVS:
* docs/design/part-TODO.txt:
Update TODO.
* gst/net/gstnetclientclock.c: (gst_net_client_clock_thread):
* gst/net/gstnetclientclock.h:
Use parent fields for timeout and window_size.
Original commit message from CVS:
2005-11-23 Andy Wingo <wingo@pobox.com>
* check/net/gstnetclientclock.c (test_functioning): Adjust to
rate_num/rate_denom change.
* gst/net/gstnetclientclock.c
(gst_net_client_clock_observe_times): Take the SLAVE_LOCK not the
OBJECT_LOCK. Don't call add_observation with the lock.
* gst/gstclock.c (gst_clock_init): Initialize the rate as a
fraction.
(gst_clock_adjust_unlocked): Adjust using uint64_scale and the
rate fraction.
(gst_clock_set_calibration, gst_clock_get_calibration): Change to
deal with rate as a fraction whose numerator and denominator are
GstClockTime values.
(gst_clock_set_master): Only use the OBJECT_LOCK to set the
master; the other fields are protected by the SLAVE_LOCK.
(do_linear_regression): Note that this must be called with the
SLAVE_LOCK.
(gst_clock_add_observation): Take the SLAVE_LOCK, not the
OBJECT_LOCK. Call set_calibration instead of touching the
variables directly.
(gst_clock_set_property, gst_clock_get_property): Protect
master/slave parameters with the SLAVE_LOCK.
* gst/gstclock.h (GstClock): Remove rate, add rate_numerator and
rate_denominator. PR3C1S3. Add a new lock, the SLAVE_LOCK, and
note that all of the instance variables that add_observation and
the set_master functions use are protected by that lock and not
the OBJECT_LOCK.
(GST_CLOCK_SLAVE_LOCK, GST_CLOCK_SLAVE_UNLOCK): New macros.
* gst/gstclock.c (gst_clock_add_observation): No longer requires
the caller to take the object lock.
Original commit message from CVS:
* gst/gsterror.c: (_gst_core_errors_init):
* gst/gsterror.h:
Add error for clock stuff.
* gst/gstpipeline.c: (gst_pipeline_change_state),
(gst_pipeline_set_clock):
Post clock error when clock cannot be used in a pipeline.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
make two symbols from gstinfo private for the docs
* gst/base/gstcollectpads.h:
* gst/gstutils.c:
fix doc typos, update docs
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_class_init),
(gst_base_sink_wait), (gst_base_sink_do_sync),
(gst_base_sink_handle_event):
* gst/base/gstbasesink.h:
No need to store the clock, the parent element class already
has it.
* gst/gstbin.c: (gst_bin_set_clock_func), (gst_bin_add_func):
Updates for clock_set returning a gboolean
* gst/gstclock.c: (gst_clock_entry_new), (gst_clock_id_wait),
(gst_clock_id_wait_async), (gst_clock_class_init),
(gst_clock_init), (gst_clock_finalize),
(gst_clock_get_internal_time), (gst_clock_get_time),
(gst_clock_slave_callback), (gst_clock_set_master),
(gst_clock_get_master), (do_linear_regression),
(gst_clock_add_observation), (gst_clock_set_property),
(gst_clock_get_property):
* gst/gstclock.h:
Implement master/slave. When setting a clock as a slave, a
periodic timeout is scheduled to sample master and slave times.
Then the slave clock is recalibrated to match offset and rate
of the master clock.
Update logging a bit.
Add flag so that a clock can state that is cannot be slaved to
another clock.
* gst/gstelement.c: (gst_element_set_clock):
* gst/gstelement.h:
The set_clock returns a gboolean for when an element cannot
deal with the selected clock in the pipeline.
* gst/gstpipeline.c: (gst_pipeline_change_state),
(gst_pipeline_set_clock):
* gst/gstpipeline.h:
Handle the case where the selected clock cannot be set on
the pipeline.
* gst/net/gstnetclientclock.c: (gst_net_client_clock_class_init),
(gst_net_client_clock_init), (gst_net_client_clock_finalize),
(gst_net_client_clock_set_property),
(gst_net_client_clock_get_property),
(gst_net_client_clock_observe_times):
* gst/net/gstnetclientclock.h:
Use regression code in GstClock parent, remove duplicated
functionality.
Original commit message from CVS:
* gst/elements/Makefile.am:
* gst/elements/gstfakesink.c: (gst_fake_sink_state_error_get_type):
* gst/elements/gstfakesrc.c: (gst_fake_src_data_get_type),
(gst_fake_src_sizetype_get_type), (gst_fake_src_filltype_get_type),
(gst_fake_src_init), (gst_fake_src_prepare_buffer),
(gst_fake_src_alloc_buffer), (gst_fake_src_get_size):
* gst/elements/gstfakesrc.h:
* gst/gstqueue.c: (queue_leaky_get_type):
correctly fix GEnumValues so that nick is the short lowercase
dashed tag
* tools/gst-inspect.c: (print_element_properties_info):
also show the nick, since it's useful to use from parse_launch
syntax
Fixes#322139
Original commit message from CVS:
* gst/gstutils.c: (gst_util_clocktime_scale):
* gst/gstutils.h:
* docs/gst/gstreamer-sections.txt:
Add util method for scaling a clocktime by a fraction. Useful
implementation is left as an exercise for the reader.
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_collect_fraction_range):
If needed, allocate storage in the destination value during
collection.
Original commit message from CVS:
* check/gst/gststructure.c: (GST_START_TEST):
* gst/gststructure.c: (gst_structure_parse_value):
Oops, broke automatic string type parsing.
Add a test to catch it in future.
Original commit message from CVS:
2005-11-22 Andy Wingo <wingo@pobox.com>
* gst/gsttagsetter.c (gst_tag_setter_get_tag_merge_mode)
(gst_tag_setter_set_tag_merge_mode, gst_tag_setter_get_tag_list):
Actually rename the function implementations. Grr.
Original commit message from CVS:
* check/gst/capslist.h:
Comment test cases
* check/gst/gststructure.c: (GST_START_TEST),
(gst_structure_suite):
Test automatic value type detection in gst_structure_from_string.
* gst/gststructure.c: (gst_structure_parse_value):
Add fraction as a type we try and guess automatically in
caps/structure strings.
Original commit message from CVS:
2005-11-22 Andy Wingo <wingo@pobox.com>
patch by: Torsten Schoenfeld <kaffeetisch gmx de>
* gst/gsttagsetter.h:
* gst/gsttagsetter.c: (gst_tag_setter_merge_tags)
(gst_tag_setter_add_tags, gst_tag_setter_add_tag_values)
(gst_tag_setter_add_tag_valist)
(gst_tag_setter_add_tag_valist_values): Renamed from _merge, _add,
_add_values, _add_valist, and _add_valist_values. Since this is an
interface the function suffixes should be more explicit so
language binding don't end up with element.add_valist ->
gst_tag_setter_add_valist, for example. Fixes#322069.
Original commit message from CVS:
* check/gst/gstcaps.c: (GST_START_TEST):
Extend caps string tests to check that a caps to string
conversion is reversible and produces the same caps.
* gst/gststructure.c: (gst_structure_value_get_generic_type):
Output "fraction" as the generic type fraction range, so caps
serialisation and deserialisation works.
* check/gst/capslist.h:
* gst/gstvalue.c: (gst_value_deserialize_fraction):
Support 'MIN' and 'MAX' for deserialising fractions.
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.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
Make sure the GstFlowReturn is returned.
* gst/gstbus.c: (gst_bus_add_signal_watch_full),
(gst_bus_add_signal_watch):
* gst/gstbus.h:
add gst_bus_add_signal_watch_full.
* gst/gstplugin.c: (gst_plugin_load_file):
Small style cleanup.
Original commit message from CVS:
* check/gst/gstevent.c: (test_event), (GST_START_TEST):
Block the fakesrc srcpad when we send an event, to avoid
contention on the stream_lock causing random test failures.
Original commit message from CVS:
* gst/gst.h:
include "gstchildproxy.h"
* gst/gstchildproxy.h:
* libs/gst/controller/gstcontroller.h:
use G_GNUC_NULL_TERMINATED
Original commit message from CVS:
* check/gst/capslist.h:
* check/gst/gstcaps.c: (GST_START_TEST):
* check/gst/gstvalue.c: (GST_START_TEST), (gst_value_suite):
* gst/gststructure.c: (gst_structure_parse_range),
(gst_structure_fixate_field_nearest_fraction):
* gst/gststructure.h:
* gst/gstvalue.c: (gst_value_init_fraction_range),
(gst_value_free_fraction_range), (gst_value_copy_fraction_range),
(gst_value_collect_fraction_range),
(gst_value_lcopy_fraction_range), (gst_value_set_fraction_range),
(gst_value_set_fraction_range_full),
(gst_value_get_fraction_range_min),
(gst_value_get_fraction_range_max),
(gst_value_serialize_fraction_range),
(gst_value_transform_fraction_range_string),
(gst_value_compare_fraction_range),
(gst_value_deserialize_fraction_range),
(gst_value_intersect_fraction_fraction_range),
(gst_value_intersect_fraction_range_fraction_range),
(gst_value_subtract_fraction_fraction_range),
(gst_value_subtract_fraction_range_fraction),
(gst_value_subtract_fraction_range_fraction_range),
(gst_value_collect_fraction), (gst_value_fraction_multiply),
(gst_value_fraction_subtract), (gst_value_deserialize_fraction),
(gst_value_transform_string_fraction), (_gst_value_initialize):
* gst/gstvalue.h:
Implement fraction ranges and extend GstFraction to support
arithmetic subtraction, as well as deserialization from integer
strings such as "100"
Add a testsuite as for int and double range set operations
Original commit message from CVS:
2005-11-21 Andy Wingo <wingo@pobox.com>
* gst/gsterror.c (_gst_core_errors_init):
* gst/gsterror.h (GST_CORE_ERROR_MISSING_PLUGIN): New error
category.
Original commit message from CVS:
2005-11-21 Andy Wingo <wingo@pobox.com>
* gst/Makefile.am (gst_headers): Add glib-compat.h.
(noinst_HEADERS): noinst the -private.
Original commit message from CVS:
2005-11-21 Andy Wingo <wingo@pobox.com>
* gst/gst.h: Include glib-compat.h.
* gst/glib-compat.h: Add G_GNUC_NULL_TERMINATED.
* gst/glib-compat.c: Include the public and the private header.
* gst/glib-compat-private.h: Copied here from glib-compat.h.
* gst/gstvalue.c:
* gst/gstpad.c:
* gst/gstregistryxml.c: s/glib-compat/glib-compat-private/.
Original commit message from CVS:
2005-11-21 Andy Wingo <wingo@pobox.com>
* check/gst/gstevent.c (create_custom_events): Check that
FLUSH_STOP is serialized.
* check/elements/identity.c (event_func):
* check/elements/fakesrc.c (event_func): No stream lock, the core
takes it.
* gst/base/gstbasetransform.c (gst_base_transform_event): No more
stream lock taking, yay.
* gst/gstevent.h (GST_EVENT_FLUSH_STOP): Marked as serialized to
ensure that core takes the stream lock.
* gst/base/gstbasesrc.c (gst_base_src_do_seek): Update for stream
lock name change.
* gst/base/gstbasesink.c (gst_base_sink_event): No need to take
the stream lock for EOS, NEWSEGMENT, or FLUSH_STOP, the core does
it already. For the flush start we do take it though so we get the
right preroll state change messages.
* gst/gstqueue.c (gst_queue_sink_activate_push): No need to take
the stream lock here, the core does it for us.
* gst/gstpad.h (GST_PAD_GET_STREAM_LOCK): Renamed from
GST_STREAM_GET_LOCK.
(GST_PAD_STREAM_LOCK, GST_PAD_STREAM_TRYLOCK)
(GST_PAD_STREAM_UNLOCK, GST_PAD_STREAM_UNLOCK_FULL)
(GST_PAD_STREAM_LOCK_FULL): Renamed from GST_STREAM_*.
(GST_PAD_GET_PREROLL_LOCK): Renamed from GST_PREROLL_GET_LOCK.
(GST_PAD_PREROLL_LOCK, GST_PAD_PREROLL_TRYLOCK)
(GST_PAD_PREROLL_UNLOCK): Renamed from GST_PREROLL_*.
* gst/gstpad.c: Update for stream lock name change.
* gst/base/gstbasesink.c: Update for preroll lock name change.
Original commit message from CVS:
2005-11-21 Andy Wingo <wingo@pobox.com>
* *.h:
* *.c: Ran scripts/update-macros. Oh yes.
* gst/gstobject.h (GST_OBJECT_GET_LOCK, GST_OBJECT_LOCK)
(GST_OBJECT_TRYLOCK, GST_OBJECT_UNLOCK): Renamed from
GST_GET_LOCK, etc.
* scripts/update-macros: New script. Run it on your files to
change GST_LOCK to GST_OBJECT_LOCK, and the same for UNLOCK as
well.
Original commit message from CVS:
* docs/gst/Makefile.am:
* docs/gst/gstreamer-docs.sgml:
* docs/gst/gstreamer-sections.txt:
* docs/gst/gstreamer.types:
* gst/gstinfo.h:
more docs fixes, add new api to the docs
Original commit message from CVS:
2005-11-21 Andy Wingo <wingo@pobox.com>
* gst/gstbin.c (gst_bin_remove_func): Wim claims I can remove this
state_broadcast call.
Original commit message from CVS:
2005-11-21 Julien MOUTTE <julien@moutte.net>
* gst/gstvalue.c: (gst_value_intersect_array): Fix wrong
function calls for arrays.
Original commit message from CVS:
2005-11-21 Andy Wingo <wingo@pobox.com>
* gst/base/gstbasesrc.c (GST_LIVE_BROADCAST, GST_LIVE_SIGNAL)
(GST_LIVE_TIMED_WAIT, GST_LIVE_WAIT, GST_LIVE_GET_COND)
(GST_LIVE_UNLOCK, GST_LIVE_TRYLOCK, GST_LIVE_LOCK)
(GST_LIVE_GET_LOCK): Moved here from gstbasesrc.h. They are
private to the basesrc implementation.
Original commit message from CVS:
2005-11-21 Andy Wingo <wingo@pobox.com>
* gst/gstpad.c (gst_pad_send_event): Doc more. Take stream lock on
behalf of event function if necessary. It should no longer be
necessary to take the stream lock in pad's event functions. Fixes
#320299.
Original commit message from CVS:
* gst/elements/gstfdsrc.c: (_do_init), (gst_fdsrc_class_init),
(gst_fdsrc_init), (gst_fdsrc_dispose), (gst_fdsrc_set_property),
(gst_fdsrc_uri_get_type), (gst_fdsrc_uri_get_protocols),
(gst_fdsrc_uri_get_uri), (gst_fdsrc_uri_set_uri),
(gst_fdsrc_uri_handler_init):
* gst/elements/gstfdsrc.h:
Port fd:// URI handler from 0.8 to fdsrc
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_transform_fourcc_string),
(gst_value_serialize_fourcc):
* gst/gstvalue.h:
Drop leading '%' from GST_FOURCC_FORMAT, thus making it
consistent with our other format defines (#320324).
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_is_fixed):
Revert previous commit. Value lists are by definition
not fixed, as they are a list of possible values.
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.
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.
Original commit message from CVS:
* check/gst/gstvalue.c: (GST_START_TEST), (gst_value_suite):
Add a deserialisation test for fractions
* examples/metadata/read-metadata.c: (message_loop),
(make_pipeline), (main):
Fix up metadata reading sample.
* gst/base/gstbasesink.c: (gst_base_sink_do_sync):
Debug format fix
* gst/base/gstbasesrc.c: (gst_base_src_default_negotiate):
Don't try and fixate empty caps
* gst/gst_private.h:
Wrap in G_BEGIN_DECLS/G_END_DECLS
* gst/gstvalue.c: (gst_value_collect_fraction),
(gst_value_set_fraction), (gst_value_get_fraction_denominator),
(gst_value_transform_string_fraction),
(gst_value_compare_fraction):
Add some extra guards to ensure that we don't end up
with an invalid denominator of 0 in a gstfraction and
that fractions always get reduced.
Original commit message from CVS:
* docs/design/part-TODO.txt:
* gst/gstformat.c: (_gst_format_initialize), (gst_format_get_name),
(gst_format_to_quark), (gst_format_register):
* gst/gstformat.h:
* gst/gstquery.c: (_gst_query_initialize),
(gst_query_type_get_name), (gst_query_type_to_quark),
(gst_query_type_register):
* gst/gstquery.h:
Add type to quark and type to string conversions.
Original commit message from CVS:
2005-11-19 Andy Wingo <wingo@pobox.com>
* gst/gstclock.h:
* gst/gstclock.c (GstClock, GstClockClass): Change resolution to
be a GstClockTime.
(gst_clock_set_resolution, gst_clock_get_resolution): Resolution
is a GstClockTime. Fixes#321710.
Original commit message from CVS:
2005-11-19 Andy Wingo <wingo@pobox.com>
* gst/gstclock.h (GstClock): Remove offset property. Add
internal_calibration and external_calibration. Fix padding. Pad
also by GstClockTime so we don't run into problems.
* gst/gstclock.c (gst_clock_set_rate_offset): Remove.
(gst_clock_get_rate_offset): Remove.
(gst_clock_set_time_adjust): Remove. Fixes#321712.
Original commit message from CVS:
2005-11-19 Andy Wingo <wingo@pobox.com>
* gst/gstindex.h (GstIndexFilter): Actually pass on the user_data.
Really fixes#168438. However I don't see anywhere where the
filter function is called... stupid GStreamer...
Original commit message from CVS:
2005-11-19 Andy Wingo <wingo@pobox.com>
* gst/gstindex.h (GstIndex): Add field for user_data_destroy. We
don't have a dispose function, so it won't get called when the
object is unreffed, but oh well!
* gst/gstindex.c (gst_index_set_filter_full): New API function,
allows a destroy function to be set so user_data can be freed.
Fixes#168438.
(gst_index_set_filter): Call gst_index_set_filter_full.
Original commit message from CVS:
2005-11-19 Andy Wingo <wingo@pobox.com>
* check/gst/gstvalue.c (test_string): Add test for bug #165650.
* gst/gstvalue.c (gst_string_wrap): Trying to serialize a NULL
string should produce an error, given the lack of a way to
represent NULL strings. Fixes#165650.
Original commit message from CVS:
2005-11-19 Andy Wingo <wingo@pobox.com>
* gst/gstvalue.h:
* gst/gstvalue.c (gst_value_array_append_value)
(gst_value_array_prepend_value, gst_value_array_get_size)
(gst_value_array_get_value): New API, copied from
gst_value_list_*, only operates on arrays.
(gst_value_list_append_value, gst_value_list_prepend_value)
(gst_value_list_concat, gst_value_list_get_size)
(gst_value_list_get_value): Only operate on lists. Fixes#156633.
* gst/gstvalue.c (gst_value_init_list_or_array): Renamed from
init_list, because it works on both.
(copy_garray_of_gstvalue): Renamed from gst_value_list_copy_array.
(gst_value_copy_list_or_array): Renamed from copy_list.
(gst_value_free_list_or_array): Renamed from free_list.
(gst_value_collect_list_or_array): Renamed from collect_list.
(gst_value_lcopy_list_or_array): Renamed from lcopy_list.
(gst_value_list_or_array_peek_pointer): Renamed from
list_peek_pointer.
(_gst_value_array_value_table, _gst_value_list_value_table):
Update value table functions.
(gst_value_compare_list_or_array): Renamed from compare_list.
Original commit message from CVS:
2005-11-19 Andy Wingo <wingo@pobox.com>
* gsttaglist.h: Whoops, foreach function returns void. Also fix
some constness.
Original commit message from CVS:
2005-11-19 Andy Wingo <wingo@pobox.com>
* gst/gsttaglist.c:
* gst/gsttaglist.h (gst_tag_list_foreach): Operates on a const
GstTagList*. Fixes#143472.
* gst/gststructure.h: Clarify what the foreach/map functions can
or can't do to their arguments.
Original commit message from CVS:
* gst/gstclock.c: (gst_clock_set_calibration),
(gst_clock_get_calibration):
Doc and API fixes.
Callibration can be set with internal time equal to current
internal time too.
Original commit message from CVS:
2005-11-18 Andy Wingo <wingo@pobox.com>
* gst/net/gstnetclientclock.c: Turn off debugging.
* check/net/gstnetclientclock.c (test_functioning): Assert that the
times connverge somewhat. Can't make a real test.
Original commit message from CVS:
2005-11-18 Andy Wingo <wingo@pobox.com>
* gst/net/gstnetclientclock.c (do_linear_regression): Use all
integer arithmetic. Return the minimum of the domain, which can be
set as "internal" for gst_clock_set_calibration.
(gst_net_client_clock_observe_times): Call _set_calibration.
(gst_net_client_clock_new): Call _set_calibration instead of
rate_offset.
* check/net/gstnetclientclock.c (test_functioning): Use the right
adjustment api.
* gst/gstclock.h:
* gst/gstclock.c (gst_clock_get_calibration)
(gst_clock_set_calibration): New functions, obsolete the ones I
added yesterday. Doh. Precision issues mean we have to extrapolate
from a point in the more recent past than 1970.
(gst_clock_get_rate_offset, gst_clock_set_rate_offset): Mark as
obsolete.
(gst_clock_adjust_unlocked): Use the right calibration data.
Original commit message from CVS:
2005-11-18 Andy Wingo <wingo@pobox.com>
* gst/net/gstnetclientclock.c (gst_net_client_clock_thread):
Whoops, check the right fd. Also add some debugging.
(gst_net_client_clock_observe_times): Adjust for int64 offset.
(do_linear_regression): Add a crapload of debugging. Subtract off
the minimum values from the input series to discard unneeded bits.
Use only int arithmetic. There is still double arithmetic when
calculating the intercept that needs fixing. Return boolean to
indicate success; FALSE would mean the domain or range is too
great. Still needs fixes.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_get_position):
For the current position in stream time, we need to subtract
accumulated time.
* gst/gstsystemclock.c: (gst_system_clock_async_thread):
Release lock before calling the callback function of async
entries.
Original commit message from CVS:
2005-11-18 Andy Wingo <wingo@pobox.com>
* gst/net/gstnetclientclock.c (gst_net_client_clock_class_init):
Port goes all the way to MAXUINT16.
* gst/net/gstnettimeprovider.c: Make the port range the same as
for the kernel: 0 assigns, otherwise ports are less than
MAXUINT16.
* check/net/gstnettimeprovider.c: Adapt for 0 == kernel assigns
port change.
* check/net/gstnetclientclock.c (test_functioning): Add the start
of another test.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_provide_clock_func), (gst_bin_add_func),
(gst_bin_remove_func), (bin_bus_handler):
* gst/gstbin.h:
Removing a clock provider from a bin, triggers a clock lost message
so that a new clock will be selected.
Adding a clock to a bin triggers a clock provider message.
Make sure we reselect a clock when we received a clock lost message.
Keep a reference to the element that provided the clock.
Original commit message from CVS:
2005-11-18 Andy Wingo <wingo@pobox.com>
* gst/net/gstnetclientclock.c (gst_net_client_clock_new): Adjust
the clock initially so it produces values around the base time.
(gst_net_client_clock_class_init): Typo fix.
(gst_net_client_clock_thread): Add note on when the socket gets
closed.
Original commit message from CVS:
* gst/net/gstnetclientclock.c: (do_linear_regression),
(gst_net_client_clock_do_select), (gst_net_client_clock_thread):
Fix compilation, uninitialized vars and a forgotten continue.
Original commit message from CVS:
2005-11-17 Andy Wingo <wingo@pobox.com>
* check/Makefile.am (check_PROGRAMS):
* check/net/gstnetclientclock.c: Add a most minimal test for the
net client clock. More to come later.
* gst/net/gstnet.h:
* gst/net/Makefile.am: Add netclientclock.
* gst/net/gstnetclientclock.h:
* gst/net/gstnetclientclock.c: New files, implement an untested
GstClock that takes its time from a network time provider.
Implements the algorithm in network-clock.scm.
* tests/network-clock.scm (*window-size*): Rename from
*queue-length*.
* tests/network-clock.scm (network-time):
* tests/network-clock-utils.scm (q-push): Update callers.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_dispose), (gst_bin_provide_clock_func),
(gst_bin_sort_iterator_new), (gst_bin_iterate_sorted):
Refactor the sort iterator so it can be used while holding the
LOCK too.
Make clock selection select a clock closest to the source.
Original commit message from CVS:
* gst/gstclock.c: (gst_clock_init), (gst_clock_adjust_unlocked),
(gst_clock_set_rate_offset), (gst_clock_get_rate_offset):
* gst/gstclock.h:
Anonymous structs are a gcc (and some other compilers) extension, so
don't use them. Since this is only for ABI-compatibility, and our
API/ABI freeze is over in a few days, this whole thing will only
last a few days, so don't bother trying to think up a meaningful
name for the struct.
Original commit message from CVS:
2005-11-17 Andy Wingo <wingo@pobox.com>
* gst/gstclock.h (GstClock): Add rate and offset properties,
preserving ABI stability. Add rate/offset accessors. Will file bug
for the freeze break.
* gst/gstclock.c (gst_clock_adjust_unlocked): Implement using rate
and offset, trying to keep precision and avoiding
underflow/overflow.
(gst_clock_set_rate_offset, gst_clock_get_rate_offset): New
functions. Make gst_clock_set_time_adjust obsolete.
(gst_clock_set_time_adjust): Note that this function is obsolete.
Will file bug soon.
* gst/base/gstbasetransform.h: Make the ABI-stability hack
greppable by using GST_PADDING-1+1.
Original commit message from CVS:
Reviewed by: Tim-Philipp Müller <tim at centricular dot net>
* gst/gstmessage.c: (gst_message_parse_clock_lost):
Assertion should check for CLOCK_LOST, not NEW_CLOCK (#321648).
* gst/gstpadtemplate.h:
* gst/gstpluginfeature.h:
Don't use c++ style comments in headers (#321638).
Original commit message from CVS:
2005-11-16 Andy Wingo <wingo@pobox.com>
* check/net/gstnettimeprovider.c: Check to see that the time
provider actually provides times. Works, yo!
Original commit message from CVS:
* check/Makefile.am:
Enable more tests.
* check/elements/fakesrc.c: (GST_START_TEST):
Set element to NULL before disposing it.
Original commit message from CVS:
2005-11-16 Andy Wingo <wingo@pobox.com>
* gst/net/Makefile.am:
* gst/net/gstnet.h:
* gst/net/gstnettimeprovider.c:
* gst/net/gstnettimeprovider.h: Use the timepacket stuff in the
provider, include it from gstnet.h, and add it to the build.
* gst/net/gstnettimepacket.h:
* gst/net/gstnettimepacket.c: New files, abstracts out the packet
sending and receiving.
Original commit message from CVS:
* check/Makefile.am:
Enable valgrind check that should work fine now.
* gst/elements/gsttypefindelement.c: (gst_type_find_element_init):
* gst/gstqueue.c: (gst_queue_init):
Fix memleaks in pad allocation.
Original commit message from CVS:
2005-11-16 Andy Wingo <wingo@pobox.com>
* gst/net/Makefile.am:
* gst/net/gstnet.h: New part of core to hold network elements and
objects. Put in core because it exposes API that applications want
to use. The library is named libgstnet-tempname right now because
of the existing libgstnet in gst-plugins-base. Solution is
probably to rename the one in plugins-base; will file a bug for
the freeze break.
* gst/net/gstnettimeprovider.c:
* gst/net/gstnettimeprovider.h: New object to export a GstClock's
get_time call over the network.
* configure.ac:
* gst/Makefile.am (lib_LTLIBRARIES): Add gstnet to the build.
* check/Makefile.am:
* check/net/gstnettimeprovider.c: A most minimal test suite. Will
get additions shortly.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_new_from_static_template):
* gst/gstpad.h:
add gst_pad_new_from_static_template functions
* gst/check/gstcheck.c: (gst_check_setup_src_pad),
(gst_check_setup_sink_pad):
* gst/elements/gsttee.c: (gst_tee_init):
and use them
Original commit message from CVS:
* gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buf),
(gst_base_transform_event):
Check if the caps are NULL, this can happen if the element
is shutting down and the pad caps are set to NULL.
Original commit message from CVS:
* gst/glib-compat.c: (g_value_dup_gst_object):
* gst/glib-compat.h:
* gst/gstpad.c: (gst_pad_set_property):
use gst_object_ref when setting the pad template; this will
trigger the pad template leaks on GLib 2.6 and the slaves
Original commit message from CVS:
* gst/Makefile.am:
Don't link against VALGRIND_LIBS. That was always the wrong thing to
do, but only breaks with newer valgrind versions. We're not a
valgrind tool, we have no link-time dependencies on libcoregrind.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_init):
* gst/elements/gsttypefindelement.c: (gst_type_find_element_init):
* gst/gstqueue.c: (gst_queue_init):
Free pad templates, fixes a couple of leaks.
Original commit message from CVS:
Reviewed by: Tim-Philipp Müller <tim at centricular dot net>
* gst/gstpad.c: (gst_pad_get_property):
GST_PAD_PAD_TEMPLATE(pad) gets the pad template, while
GST_PAD_TEMPLATE(pad) does a cast. We want the former here.
(#321452)
Original commit message from CVS:
2005-11-15 Andy Wingo <wingo@pobox.com>
* gst/gstelement.c (gst_element_set_base_time): Add debugging.
* gst/gstpipeline.c (gst_pipeline_set_new_stream_time): Document
using GST_CLOCK_TIME_NONE to disable base time management.
(do_pipeline_seek, gst_pipeline_change_state): Don't reset stream
time if it was NONE before.
(gst_pipeline_change_state): Only munge the base time if
stream_time != GST_CLOCK_TIME_NONE.
* check/gst/gstpipeline.c (test_base_time): Punt around the
problem of the probe not being called, because that's not the
issue I'm looking at. Add a check that setting stream_time to NONE
disables base time management.
Original commit message from CVS:
2005-11-15 Andy Wingo <wingo@pobox.com>
* check/gst/gstpipeline.c (test_base_time): Punt around the
problem of the probe not being called, because that's not the
issue I'm looking at...
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
0 segment values are 0 in any format.
* gst/base/gstbasetransform.c: (gst_base_transform_event):
* gst/base/gstbasetransform.h:
Parse newsegment correctly in basetransform
* gst/elements/gstidentity.c: (gst_identity_transform_ip):
Sync to clock using updated segment values.
Original commit message from CVS:
2005-11-15 Andy Wingo <wingo@pobox.com>
* check/gst/gstpipeline.c (test_base_time): Add check that the
base time and stream time are reset correctly.
Original commit message from CVS:
2005-11-15 Andy Wingo <wingo@pobox.com>
* gst/elements/gstfakesrc.c (gst_fake_src_create): It's not an
error if the user selected "no clock" as the clocking method.
Original commit message from CVS:
2005-11-15 Andy Wingo <wingo@pobox.com>
* check/gst/gstpipeline.c (test_base_time): New test for buffer
timestamps with live capture.
* gst/elements/gstfakesrc.c (gst_fake_src_create): If the datarate
is 0 but we are a live source, timestamp the buffers using the
element's clock.
Original commit message from CVS:
2005-11-14 Andy Wingo <wingo@pobox.com>
* gst/gstpad.c (gst_pad_set_active): Change docs; parent's
STATE_LOCK not necessary. Fixes#311489.
Original commit message from CVS:
2005-11-14 Andy Wingo <wingo@pobox.com>
* gst/gstindex.c (gst_index_add_object): Note in the docs that
this function is not implemented.
Original commit message from CVS:
2005-11-14 Julien MOUTTE <julien@moutte.net>
* gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buf):
Ref the source pad caps while we need them.
Fixes (#321386)
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
Added some docs for GstCollectData.
* gst/base/gstadapter.c:
Some small code example fix.
* gst/base/gstcollectpads.c:
* gst/base/gstcollectpads.h:
Document some more.
Original commit message from CVS:
* gst/gstbuffer.c: (_gst_buffer_copy):
Copy more flags.
* gst/gstcaps.c: (gst_caps_is_equal):
Fix some docs.
Make _is_equal fast in the trivial cases.
* gst/gstminiobject.c:
* gst/gstminiobject.h:
More docs. Spifify .h file.
* gst/gstutils.c:
Small doc update.
Original commit message from CVS:
* gst/base/gstbasetransform.c:
(gst_base_transform_prepare_output_buf),
(gst_base_transform_handle_buffer):
Small cleanups.
If we're processing a buffer and need to allocate an output
buffer, we cannot accept a format change. If we did get a
format change, we have to alloc a buffer ourselves of the
right size.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_get_caps), (gst_pad_peer_get_caps):
While checking the flag for reentrancy in the gstcaps function
is nice to detect recursive invocations, it also makes it
impossible to call getcaps from multiple threads, which must be
possible. So, checking for recursive calls has to go.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_do_sync):
Don't sync on buffers that fall partially outside our current
segment. Prevents an assertion failure/abort playing some files.
Original commit message from CVS:
2005-11-10 Andy Wingo <wingo@pobox.com>
* check/gst/gstbin.c (test_message_state_changed_children): Style
fix..
* gst/gstbus.c (poll_destroy, poll_func, gst_bus_poll): Implement
gst_bus_poll with the signal watch. Ensures that poll and a signal
watch see the same messages.
* check/gst/gstbus.c (test_watch_with_poll): New test, checks that
a poll and a watch at the same time get the same messages.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_transform_caps):
* gst/gstcaps.c: (gst_caps_intersect):
Don't call gst_caps_do_simplify - it doesn't respect order of caps
and it's not needed.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_do_sync):
* gst/base/gstbasesrc.c: (gst_base_src_wait),
(gst_base_src_do_sync), (gst_base_src_get_range):
Implement clock sync in base class.
Original commit message from CVS:
patch by: Tim-Philipp Müller <tim at centricular dot net>
* gst/gststructure.c: (gst_structure_parse_field),
(gst_structure_from_string):
Forward-port a 0.8 patch to handle escaped spaces in structure string, so that gst_parse_launch() can deal with spaces in filtered link
caps (fixes#164479)
* check/gst/capslist.h:
* check/gst/gststructure.c: (GST_START_TEST):
add unit tests for this change
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstelement.c:
* gst/gstelement.h:
Fix docs, move some STATE macros to private.
Original commit message from CVS:
* check/gst/gstghostpad.c: (GST_START_TEST), (gst_ghost_pad_suite):
Added check for bug #317341
* gst/gstbuffer.c:
* gst/gstbuffer.h:
Some more spiffifying.
* gst/gstghostpad.c: (gst_ghost_pad_do_link):
Call peer linkfunction if we are a source pad. Totally fixes
#317341
* gst/gstpad.c:
Update docs, source pads should call the peer linkfunction
so they can atomically perform the pad link.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
Moved the message async delivery private lock and cond
to the private section.
* gst/gstmessage.c:
* gst/gstmessage.h:
Fixed docs.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
Added some new macros.
* gst/gstclock.c:
* gst/gstclock.h:
* gst/gstobject.h:
Docs updates.
Original commit message from CVS:
2005-11-09 Andy Wingo <wingo@pobox.com>
* gst/base/gstbasesink.c: Add the beginning of docs here -- have
to work on something else now tho...
Original commit message from CVS:
2005-11-09 Andy Wingo <wingo@pobox.com>
* gst/elements/gstfilesink.c (gst_file_sink_start)
(gst_file_sink_stop): New functions, replace the state change
handler.
(gst_file_sink_class_init): Hook up the start and stop functions.
(gst_file_sink_base_init): Don't set the state change handler any
more. It was a bit ugly too, being set from here...
(gst_file_sink_get_property, gst_file_sink_set_property):
Cleanups...
(gst_file_sink_set_location): More robust check that doesn't call
GST_STATE. Ugggggg.
Original commit message from CVS:
2005-11-09 Andy Wingo <wingo@pobox.com>
* gst/elements/gstfilesink.c (gst_file_sink_start)
(gst_file_sink_stop): New functions, replace the state change
handler.
(gst_file_sink_class_init): Hook up the start and stop functions.
(gst_file_sink_base_init): Don't set the state change handler any
more. It was a bit ugly too, being set from here...
(gst_file_sink_get_property, gst_file_sink_set_property):
Cleanups...
(gst_file_sink_set_location): More robust check that doesn't call
GST_STATE. Ugggggg.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_event):
Hold STREAM_LOCK while pushing newsegment or tag events as well.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_init),
(gst_base_src_get_range):
Set the segment_end to -1 initially. Fixed typefind.
Original commit message from CVS:
* gst/base/gstadapter.c:
Debug category should be 'adapter', not 'GstAdapter'.
* gst/base/gstcollectpads.c: (gst_collectpads_base_init),
(gst_collectpads_class_init), (gst_collectpads_init),
(gst_collectpads_peek), (gst_collectpads_pop),
(gst_collectpads_event), (gst_collectpads_chain):
Add debug category and some debugging output. Use boilerplate
macros. Remove some extraneous words from docs.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_get_range):
Check if we are doing a segment seek and have arrived at the
end of that segment.
Original commit message from CVS:
* gst/gstbus.c: (gst_bus_post), (gst_bus_set_sync_handler):
Don't leak a mutex unlock in case of an error.
* gst/gstbus.h:
Doc fixes.
Original commit message from CVS:
* check/states/sinks.c: (GST_START_TEST):
Uncomment fixed check.
* docs/design/part-TODO.txt:
Updated TODO.
* gst/base/gstbasesink.c: (gst_base_sink_commit_state),
(gst_base_sink_handle_object), (gst_base_sink_do_sync),
(gst_base_sink_get_position):
If we are going to PLAYING, post the right pending state
when we post the intermediate paused message.
* gst/gstelement.c: (gst_element_continue_state),
(gst_element_set_state_func), (gst_element_change_state):
Don't post state changes that were between the same state
and were not ASYNC.
Original commit message from CVS:
* check/states/sinks.c: (GST_START_TEST):
Uncomment fixed check.
* docs/design/part-TODO.txt:
Updated TODO.
* gst/base/gstbasesink.c: (gst_base_sink_commit_state),
(gst_base_sink_handle_object), (gst_base_sink_do_sync),
(gst_base_sink_get_position):
If we are going to PLAYING, post the right pending state
when we post the intermediate paused message.
* gst/gstelement.c: (gst_element_continue_state),
(gst_element_set_state_func), (gst_element_change_state):
Don't post state changes that were between the same state
and were not ASYNC.
Original commit message from CVS:
2005-11-03 Andy Wingo <wingo@pobox.com>
* check/states/sinks.c (test_livesrc_sink): Add checks that the
state-changed messages actually have the right order and the right
values.
Original commit message from CVS:
* check/states/sinks.c: (GST_START_TEST), (gst_object_suite):
Added some more checks. Specifically the case where NO_PREROLL
elements are in the pipeline.
* gst/base/gstbasesink.c: (gst_base_sink_commit_state),
(gst_base_sink_handle_object), (gst_base_sink_do_sync),
(gst_base_sink_get_position):
Post READY->PAUSED state change messages too.
Fix bug where VOID was posted as pending state...
* gst/gstbin.c: (gst_bin_recalc_state):
use _element_continue_state() to continue the state change.
* gst/gstelement.c: (gst_element_continue_state),
(gst_element_commit_state), (gst_element_set_state_func),
(gst_element_change_state), (gst_element_change_state_func):
Lots of state change cleanups, assign the STATE_RETURN in
a new continue_state() function that also propagates the
last return value from a state change to the app.
Update some debug statements with proper category.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_set_blocked_async):
comparing a flag and a gboolean rarely returns coherent results...
Added two characters (!!) to make that work correctly.
Original commit message from CVS:
* gst/gstbus.c: (gst_bus_class_init):
Fix some typos.
* gst/gstqueue.c: (gst_queue_loop):
Don't assume a miniobject that isn't a buffer is an
event (it could be that there is a refcounting
problem somewhere and the pointer is stale and
refers to an already destroyed miniobject).
Original commit message from CVS:
* docs/manual/advanced-position.xml:
Update seek example and explanations to current 0.9 API.
* gst/elements/gsttypefindelement.c:
(gst_type_find_element_activate):
Remove FIXME comment now that the found caps
are unreffed.
Original commit message from CVS:
* gst/gstbin.c:
Fix typo in docs.
* gst/gstelement.c: (gst_element_commit_state):
Remove unused value.
* gst/gstiterator.c:
Mention that the returned element is reffed in the docs.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_alloc_buffer), (handle_pad_block),
(gst_pad_push), (gst_pad_push_event):
Unlock blocked pads when they are flushed.
Original commit message from CVS:
* docs/README:
* docs/gst/gstreamer-sections.txt:
* gst/gstbin.c:
doc updates
* gst/gstregistry.c: (gst_registry_scan_path_level):
fix for a nasty little missed situation where an installed plug-in
which was in the cache did not get overridden by an uninstalled one
which was earlier in the plugin path because the newly created plugin
for the uninstalled one (not in the registry) didn't get its
->registered set to TRUE
Original commit message from CVS:
2005-10-31 Andy Wingo <wingo@pobox.com>
* Boo!
* gst/gstqueue.c (gst_queue_chain): Fix downstream leaky mode.
* gst/gstobject.c (gst_object_dispatch_properties_changed): No
need to serialize property notifications on GLib 2.8. GLib 2.6 has
the possibility of deadlocks here if code calling notify() or
set() has a lock that can be taken in another notify handler (ABBA
with class lock and e.g. python GIL state lock).
Original commit message from CVS:
* docs/gst/gstreamer-docs.sgml:
* docs/gst/gstreamer-sections.txt:
the GstURIType documentation page is private, it only defines GstURIType
which should be defined in the GstURIHandler page
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
move some macros to private sections
* gst/gstminiobject.c:
* gst/gstminiobject.h:
add descriptions provided by ds and some more
* gst/gstpad.h:
mark macro as to be removed
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_class_init),
(gst_base_transform_init):
Don't leak class.
* gst/gstqueue.c: (gst_queue_handle_sink_event), (gst_queue_loop):
An EOS event marks the queue as completely filled.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_do_sync), (gst_base_sink_get_position):
Some more debugging.
* gst/base/gstbasetransform.c: (gst_base_transform_finalize),
(gst_base_transform_init), (gst_base_transform_buffer_alloc),
(gst_base_transform_event), (gst_base_transform_getrange),
(gst_base_transform_chain):
* gst/base/gstbasetransform.h:
Fix debugging,
Protect transform and concurrent buffer alloc with a new lock.
Try not to break ABI/API.
Original commit message from CVS:
* check/gst/gstbin.c: (GST_START_TEST):
An extra refcount is taken in basesrc.
* gst/base/gstbasesrc.c: (gst_base_src_init), (gst_base_src_query),
(gst_base_src_get_range), (gst_base_src_pad_get_range),
(gst_base_src_loop):
Small cleanups, check for flushing after being unlocked from the
LIVE_LOCK. take refcounts correctly (not yet everywhere).
Don't send out EOS when going to READY.
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.
Original commit message from CVS:
* docs/libs/tmpl/gstdparam.sgml:
* docs/libs/tmpl/gstdplinint.sgml:
* docs/libs/tmpl/gstdpman.sgml:
* docs/libs/tmpl/gstdpsmooth.sgml:
* docs/libs/tmpl/gstunitconvert.sgml:
these are obsolete
Original commit message from CVS:
* gst/elements/gstfilesink.c: (gst_file_sink_do_seek),
(gst_file_sink_get_current_offset):
Use fseeko() and ftello() if available. When falling back on
lseek() to get the current offset, fflush() first to make sure
everything is up-to-date and we get the right offset.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_commit_state),
(gst_base_sink_get_position), (gst_base_sink_query),
(gst_base_sink_change_state):
Simply set the right flag when going to playing, that's all
we need to do instead of calling a function inside the object
lock (that could take the lock as well and deadlock)
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_do_seek),
(gst_base_src_loop):
Don't warn, the peer element knows what to do best when
the seek failed, it might try something else.
Original commit message from CVS:
* docs/design/part-segments.txt:
More docs.
* gst/elements/gstcapsfilter.c: (gst_capsfilter_prepare_buf):
Correctly set caps, even on the subbufer.
Original commit message from CVS:
2005-10-21 Andy Wingo <wingo@pobox.com>
* gst/base/gstbasesrc.c (gst_base_src_query): Clean up percent
position reporting.
Original commit message from CVS:
* gst/gstbin.c: (message_check), (bin_replace_message),
(bin_remove_messages), (is_eos), (gst_bin_add_func),
(update_degree), (gst_bin_sort_iterator_next),
(gst_bin_change_state_func), (gst_bin_dispose), (bin_bus_handler):
Reworked the message handling a bit, cache the messages instead of
only the senders. alows us to do more in the future.
Original commit message from CVS:
* docs/design/part-TODO.txt:
Update TODO
* gst/base/gstbasesink.c: (gst_base_sink_get_position),
(gst_base_sink_query):
Don't use clock time to report position when in EOS.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_get_position),
(gst_base_sink_query):
Speed up current position calculation.
* gst/base/gstbasesrc.c: (gst_base_src_query),
(gst_base_src_default_newsegment):
Correctly set stream position in newsegment.
* gst/gstbin.c: (gst_bin_add_func), (add_to_queue),
(update_degree), (gst_bin_sort_iterator_next),
(gst_bin_sort_iterator_resync), (gst_bin_sort_iterator_free):
* gst/gstmessage.c: (gst_message_new_custom):
Clean up debugging info
* gst/gstqueue.c: (gst_queue_link_src), (gst_queue_chain),
(gst_queue_loop), (gst_queue_handle_src_query):
Pause task faster.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_commit_state),
(gst_base_sink_handle_object), (gst_base_sink_query), (do_playing):
* gst/base/gstbasesrc.c: (gst_base_src_query):
* gst/elements/gstfilesink.c: (gst_file_sink_query):
* gst/elements/gsttypefindelement.c:
(gst_type_find_handle_src_query), (find_element_get_length),
(gst_type_find_element_activate):
API change fix.
* gst/gstquery.c: (gst_query_new_position),
(gst_query_set_position), (gst_query_parse_position),
(gst_query_new_duration), (gst_query_set_duration),
(gst_query_parse_duration), (gst_query_set_segment),
(gst_query_parse_segment):
* gst/gstquery.h:
Bundling query position/duration is not a good idea since duration
does not change much and we don't want to recalculate it for every
position query, so they are separated again..
Base value in segment query is not needed.
* gst/gstqueue.c: (gst_queue_handle_src_query):
* gst/gstutils.c: (gst_element_query_position),
(gst_element_query_duration), (gst_pad_query_position),
(gst_pad_query_duration):
* gst/gstutils.h:
Updates for query API change.
Added some docs here and there.
Original commit message from CVS:
* check/gst/gstbin.c: (GST_START_TEST):
* check/gst/gstghostpad.c: (GST_START_TEST):
* check/pipelines/cleanup.c: (GST_START_TEST):
wait on thread to die so we can check refcount correctly
Original commit message from CVS:
* check/Makefile.am:
* check/pipelines/stress.c: (GST_START_TEST),
(simple_launch_lines_suite), (main):
Small state change torture test.
* docs/design/part-states.txt:
* gst/base/gstbasesink.c: (gst_base_sink_commit_state),
(gst_base_sink_handle_object), (gst_base_sink_event), (do_playing),
(gst_base_sink_change_state):
Never take state lock from streaming thread, clean up ugly
hacks. Unfortunatly core does not yet support nice ways to
async commit state.
* gst/gstbin.c: (gst_bin_remove_func), (gst_bin_recalc_state),
(bin_bus_handler):
Start state recalc if a STATE_DIRTY message is posted, but only
on the toplevel bin.
* gst/gstelement.c: (gst_element_sync_state_with_parent),
(gst_element_get_state_func), (gst_element_abort_state),
(gst_element_commit_state), (gst_element_lost_state),
(gst_element_set_state_func), (gst_element_change_state):
* gst/gstelement.h:
State variables are now protected with the LOCK, the state
lock is only used to serialize _set_state().
Original commit message from CVS:
* check/gst/gstbin.c: (GST_START_TEST):
* check/gst/gstmessage.c: (GST_START_TEST):
* check/gst/gstpipeline.c: (GST_START_TEST), (message_received):
* gst/gstbin.c: (gst_bin_class_init), (gst_bin_recalc_func),
(bin_bus_handler):
* gst/gstelement.c: (gst_element_abort_state),
(gst_element_commit_state), (gst_element_lost_state):
* gst/gstmessage.c: (gst_message_new_state_changed),
(gst_message_new_state_dirty), (gst_message_new_segment_start),
(gst_message_new_segment_done), (gst_message_new_duration),
(gst_message_parse_state_changed),
(gst_message_parse_segment_start),
(gst_message_parse_segment_done), (gst_message_parse_duration):
* gst/gstmessage.h:
* tools/gst-launch.c: (event_loop):
Seriously, this is better than a previous commit as we only need
to notify the fact that an element changed state in a streaming
thread, marking the state of the parents dirty, hence the
STATE_DIRTY message instead of abusing a boolean in a STATE_CHANGE
message.
Original commit message from CVS:
* gst/gstbin.h:
* gst/gstelement.c: (gst_element_class_init),
(gst_element_set_state), (gst_element_set_state_func):
* gst/gstelement.h:
Pending ABI changes.
GThreadPool in GstBinClass to monitor async state changes.
state_cookie in GstElement to detect concurrent gst/set state.
set_state is now virtual too in case a very complicated element
has to be constructed.
Original commit message from CVS:
* check/gst/gstbin.c: (GST_START_TEST):
* check/gst/gstmessage.c: (GST_START_TEST):
* check/gst/gstpipeline.c: (GST_START_TEST), (message_received):
* gst/gstbin.c: (bin_bus_handler):
* gst/gstelement.c: (gst_element_commit_state),
(gst_element_lost_state):
* gst/gstmessage.c: (gst_message_new_state_changed),
(gst_message_new_segment_start), (gst_message_new_segment_done),
(gst_message_new_duration), (gst_message_parse_state_changed),
(gst_message_parse_segment_start),
(gst_message_parse_segment_done), (gst_message_parse_duration):
* gst/gstmessage.h:
* tools/gst-launch.c: (event_loop):
Make messages future proof.
state-change gets a flag if it was a message comming from the
streaming thread.
segment-start/stop can also be specified in other formats.
A message to notify an app that a pipeline changed playback
duration.
Also fix a GstMessage leak in -launch
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* docs/libs/gstreamer-libs-sections.txt:
* gst/gstelement.h:
add new api entries
hide internal macro
Original commit message from CVS:
* gst/gstmemchunk.c:
* gst/gstmemchunk.h:
* gst/gsttrashstack.c:
* gst/gsttrashstack.h:
out. get out. you're fired. to the Attic !
Original commit message from CVS:
* gst/gstcaps.c: (gst_caps_intersect):
fix signedness issues in a (hopefully) correct way
* gst/gstelement.c: (gst_element_pads_activate):
some debugging
* gst/gstobject.c: (gst_object_set_parent):
some debugging
Original commit message from CVS:
* configure.ac:
clean up further
* gst/gst.c: (init_post):
* win32/common/config.h.in:
it's PLUGINDIR now
* gst/gstcaps.c: (gst_caps_intersect):
use gint64, the range could be bigger than a guint
Original commit message from CVS:
* configure.ac:
* win32/common/config.h:
* win32/common/config.h.in:
check for process.h, declares getpid() on Windows
* gst/gstinfo.c:
include process.h if we have it
* gst/gstmemchunk.c: (populate), (gst_mem_chunk_new):
* gst/gstmemchunk.h:
fix signedness issues
* win32/common/libgstreamer.def:
fix get_type's
Original commit message from CVS:
2005-10-16 Julien MOUTTE <julien@moutte.net>
* gst/gstcaps.c: (gst_caps_intersect): Fix a bad bug with a
simple
fix. Because of unsigned ints, caps intersection was going nuts
and
trying to access structures with G_MAXUINT index. That fixes
videotestsrc ! ffmpegcolorspace ! fakesink
* gst/gstpad.c: (gst_pad_link_check_compatible_unlocked): logs
consistency.
Original commit message from CVS:
* configure.ac:
add srcdir, builddir includes to GST_ALL_CFLAGS, since
everything that uses GStreamer API should have the includes
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstvalue.c: (gst_date_get_type), (_gst_value_initialize):
* gst/gstvalue.h:
give each value a _get_type, removes the DATA exports
Original commit message from CVS:
* configure.ac:
correctly make conditionals
* gst/elements/Makefile.am:
* gst/elements/gstelements.c:
fix typo causing fdsrc not to build
Original commit message from CVS:
* configure.ac:
check for some headers
* gst/elements/Makefile.am:
* gst/elements/gstelements.c:
don't compile fdsrc without sys/socket.h
* gst/indexers/Makefile.am:
* gst/indexers/gstindexers.c: (plugin_init):
don't compile fileindex without mmap
Original commit message from CVS:
* gst/elements/gstfakesink.c: (gst_fake_sink_render):
* gst/elements/gstfakesrc.c: (gst_fake_src_create):
Beautify 'last-message' output: print 'none' for buffer timestamps
and durations if none is set; improve alignment with next messages.
Original commit message from CVS:
* gst/gstpluginfeature.c: (gst_plugin_feature_check_version):
* gst/gstpluginfeature.h:
* gst/gstregistry.c: (gst_default_registry_check_feature_version):
* gst/gstregistry.h:
* docs/gst/gstreamer-sections.txt:
Add new API to check plugin feature version requirements.
* check/gst/gstplugin.c: (test_version_checks), (gst_plugin_suite):
Some basic tests for the above.
Original commit message from CVS:
2005-10-13 Thomas Vander Stichele <thomas at apestaart dot org>
* gst/gststructure.c: (gst_structure_to_string):
guard against NULL printf - happens when for example
a message structure with GstClock gets serialized
Original commit message from CVS:
* gst/elements/gstfakesrc.h:
* gst/elements/gstfilesrc.c: (gst_file_src_create_read):
* gst/elements/gsttypefindelement.c:
fix some signedness
* gst/elements/gstfilesink.c: (gst_file_sink_render):
I wonder if this could actually write +2GB files before
Original commit message from CVS:
2005-10-13 Andy Wingo <wingo@pobox.com>
* libs/gst/dataprotocol/dataprotocol.c (gst_dp_packet_from_caps):
Fix Timmeke Waymans bug.
(gst_dp_caps_from_packet): Make sure we pass a NUL-terminated
string of the proper length to gst_caps_from_string. There's a
potential for, before this fix, that this could cause someone
connecting over the network to cause a segfault if the payload is
not NUL-terminated.
Original commit message from CVS:
* gst/glib-compat.c: (gst_flags_get_first_value):
* gst/glib-compat.h:
* gst/gstvalue.c: (gst_value_deserialize_int_helper),
(gst_value_compare_double), (gst_value_serialize_flags):
GLib 2.6 g_flags_get_first_value has a bug that triggers an
infinite loop
Original commit message from CVS:
2005-10-13 Thomas Vander Stichele <thomas at apestaart dot org>
* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
* gst/base/gstbasesrc.c: (gst_base_src_get_range):
fix up debugging
* tools/gst-launch.c: (event_loop):
print out clock nicely
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gsttaglist.h:
* gst/gsttaglist.c: (_gst_tag_initialize), (gst_tag_list_get_date),
(gst_tag_list_get_date_index):
Added gst_tag_list_get_date() and gst_tag_list_get_date_index().
GST_TAG_DATE now has a tag type of GST_TYPE_DATE (#170777).
Original commit message from CVS:
2005-10-13 Julien MOUTTE <julien@moutte.net>
* gst/base/gstcollectpads.c: (gst_collectpads_event),
(gst_collectpads_chain):
* gst/base/gstcollectpads.h: Handle newsegment and store
informations
in CollectData.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
* gst/base/gstbasesrc.c: (gst_base_src_query):
fix more guint64<->gdouble conversions
Original commit message from CVS:
* gst/elements/gstfilesink.c: (gst_file_sink_do_seek),
(gst_file_sink_event), (gst_file_sink_render):
Flush before seeking.
Original commit message from CVS:
2005-10-12 Andy Wingo <wingo@pobox.com>
* gst/gst.c (gst_init_check): Ignore unknown options, as has
always been the case.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_buffer):
* gst/elements/gstfilesink.c: (gst_file_sink_event),
(gst_file_sink_render):
Some more debugging info.
Original commit message from CVS:
2005-10-12 Andy Wingo <wingo@pobox.com>
* gst/gstpad.c (gst_pad_pause_task): Actually return FALSE if
there is no task. Shouldn't affect any code, as nothing in our
plugins checks this return value.
(gst_pad_stop_task): Also take the stream lock if the pad has no
task. Docs updated.
Original commit message from CVS:
* gst/gstpad.c: (pre_activate), (post_activate),
(gst_pad_activate_pull), (gst_pad_activate_push):
Cleanup activation code. Reset old state if
activation failed.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_change_state):
No need to prerol after receiving EOS.
* gst/elements/gstfakesink.c: (gst_fake_sink_event):
* gst/elements/gstfakesrc.c: (gst_fake_src_event_handler):
* gst/elements/gstidentity.c: (gst_identity_event):
Print events more verbosely.
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.
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.
Original commit message from CVS:
* gst/gst-i18n-lib.h:
check for ENABLE_NLS, not GETTEXT_PACKAGE
* gst/gstregistry.c: (gst_registry_add_plugin),
(gst_registry_scan_path_level),
(_gst_registry_remove_cache_plugins):
protect possibly NULL strings
* gst/parse/types.h:
config.h already included before
* tools/gst-inspect.c: (main):
sys/wait.h also doesnt exist on mingw, so change the ifdef check
check for ENABLE_NLS, not GETTEXT_PACKAGE
* tools/gst-launch.c: (main):
check for ENABLE_NLS, not GETTEXT_PACKAGE
This commit brought to you from msys/mingw
Original commit message from CVS:
* configure.ac:
if we don't have glib, fail before testing 2.8
* gst/base/gstbasetransform.c: (gst_base_transform_change_state):
fix a leak, should fix plugins-base testsuite
Original commit message from CVS:
2005-10-11 Andy Wingo <wingo@pobox.com>
* gst/gstpad.c (pre_activate): Renamed from pre_activate_switch,
take the mode we're going to as an arg. Go head and set the mode
and flushing flags now, so that if the activate function starts a
thread all the flags will be in the right state.
(post_activate): Renamed also. Just handle making sure streaming
finishes for the deactivation case, and setting the deactivated
mode.
(gst_pad_set_active): Complain loudly if deactivation fails.
(gst_pad_activate_pull): Adapt to pre/post_activate changes.
(gst_pad_activate_push): Adapt to pre/post_activate changes,
remove the terrible hack.
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.
Original commit message from CVS:
* libs/gst/controller/gstcontroller.c: (gst_controller_remove_properties_list):
* libs/gst/controller/gstcontroller.h:
Added GList* version of _remove_properties() in order to be able to wrap
it in bindings.
Original commit message from CVS:
* docs/design/part-states.txt:
Some more docs.
* gst/gstbin.c: (gst_bin_set_clock_func), (gst_bin_recalc_state),
(gst_bin_change_state_func), (bin_bus_handler):
Doc updates. Don't distribute the same clock over and over again.
* gst/gstclock.c:
* gst/gstclock.h:
Doc updates.
* gst/gstpad.c: (gst_flow_get_name), (gst_flow_to_quark),
(gst_pad_get_type), (gst_pad_push), (gst_pad_push_event),
(gst_pad_send_event):
* gst/gstpad.h:
Make probe emission threadsafe again.
Register quarks and move _get_name() from utils.
Doc updates.
* gst/gstpipeline.c: (gst_pipeline_class_init),
(gst_pipeline_change_state), (gst_pipeline_provide_clock_func):
Only redistribute the clock of it changed.
* gst/gstsystemclock.h:
Doc updates.
* gst/gstutils.c:
* gst/gstutils.h:
Moved the _flow_get_name() to GstPad.
Original commit message from CVS:
* gst/gstutils.c: (guint64_to_gdouble), (gst_util_uint64_scale):
apparently converting from guint64 to double is not implemented
on MSVC
Original commit message from CVS:
2005-10-10 Andy Wingo <wingo@pobox.com>
* gst/gst.c (G_OPTION_FLAG_NO_ARG): Apparently GLib 2.8 requires
this flag, but it's not even in GLib 2.6. Odd. Hack around the
issue.
Original commit message from CVS:
* gst/gstiterator.c: (gst_iterator_new):
Fix my previous commit: GTypes passed to gst_iterator_new()
can be fundamental types.
Original commit message from CVS:
* gst/gstelement.c: (gst_element_iterate_pad_list),
(gst_element_iterate_pads), (gst_element_iterate_src_pads),
(gst_element_iterate_sink_pads):
Use src/sink pads lists for the respective iterators instead
of filtering.
Original commit message from CVS:
* gst/gstiterator.c: (gst_iterator_new):
Add assertions to make sure passed GType is likely to really
be a GType (as the compiler won't catch it if the size and
GType arguments get mixed up, see #318447).
Original commit message from CVS:
Reviewed by: Tim-Philipp Müller <tim at centricular dot net>
* gst/gstbin.c: (gst_bin_iterate_sorted):
Pass GType and size arguments to gst_iterator_new() in the right
order (maybe we should make _new() take the GType as first argument
just like _new_list()?) (#318447).
Original commit message from CVS:
2005-10-10 Andy Wingo <wingo@pobox.com>
* gst/gstelement.c (gst_element_init, gst_element_finalize):
Allocate and free the mutex properly.
* gst/gstelement.h (GST_STATE_UNLOCK_FULL, GST_STATE_LOCK_FULL):
New macros.
(GstElement): The state_lock is now recursive. Rebuild your
plugins, suckers. Old macros adapted.
Original commit message from CVS:
2005-10-10 Andy Wingo <wingo@pobox.com>
* docs/gst/gstreamer-sections.txt: Doc updates.
* gst/gstutils.h:
* gst/gstutils.c (g_static_rec_cond_timed_wait)
(g_static_rec_cond_wait): Ported from state changes patch, while
we wait on bug #317802 to be solved in a well-distributed GLib.
Original commit message from CVS:
2005-10-10 Andy Wingo <wingo@pobox.com>
* gst/gstelement.c (gst_element_change_state_func): Renamed from
gst_element_change_state, variable name changes.
(gst_element_change_state): Split out of gst_element_set_state in
preparation for the state change merge. Doesn't pay attention to
the 'transition' argument.
(gst_element_set_state): Updates, hopefully purely cosmetic.
(gst_element_sync_state_with_parent): MT-safety. Ported from the
state change patch.
(gst_element_get_state_func): Renamed from get_state, cosmetic
changes.
Original commit message from CVS:
2005-10-10 Andy Wingo <wingo@pobox.com>
* gst/gstbin.c (gst_bin_get_state_func): Renamed from
gst_bin_get_state, cleaned up (but no logic changes).
(bin_element_is_sink): Comment updates.
(sink_iterator_filter): Remove needless cast.
(gst_bin_iterate_sinks): Doc update.
(gst_bin_change_state_func): Renamed from gst_bin_change_state,
cleaned up (but no logic changes).
Original commit message from CVS:
2005-10-10 Andy Wingo <wingo@pobox.com>
* check/states/sinks.c (test_src_sink): Cleanups from the state
change patch.
(test_livesrc_sink): Sync on the state.
Original commit message from CVS:
2005-10-10 Andy Wingo <wingo@pobox.com>
* check/pipelines/simple_launch_lines.c (run_pipeline): Merge from
the state change patch.
Original commit message from CVS:
2005-10-10 Andy Wingo <wingo@pobox.com>
* check/gst/gstghostpad.c (test_ghost_pads): Merge from the state
change patch.
Original commit message from CVS:
2005-10-10 Andy Wingo <wingo@pobox.com>
* check/gst/gstbin.c: Merge in some style fixes and additional
checks from Wim's state change patch.
Original commit message from CVS:
* gst/base/gsttypefindhelper.c: (helper_find_peek),
(gst_type_find_helper):
Check whether we have the requested data already in our list of
cached buffers before pulling a new buffer; also make the buffer
list a GSList. Speeds up typefinding by ca. 5-10% altogether.
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.
Original commit message from CVS:
2005-10-09 Philippe Khalaf <burger@speedy.org>
* gst/gstmessage.c:
Fixed a few forgotten variables on previous commit
Original commit message from CVS:
* gst/base/gsttypefindhelper.c: (helper_find_peek):
Fix evil typefind crasher: getrange() might return a short
buffer at the end of a file, but gst_type_find_peek() must
either return the full data as requested or NULL, but
never a short buffer.
Original commit message from CVS:
* gst/gstmessage.c: (gst_message_new_state_changed),
(gst_message_parse_state_changed):
* gst/gstmessage.h:
don't use new, it's a C++ keyword
Original commit message from CVS:
* gst/gstbin.c: (is_eos), (update_degree), (gst_bin_change_state),
(gst_bin_dispose), (bin_bus_handler):
Fix typos, add comments.
Clear EOS list when going to PAUSED from any direction and do it
in a threadsafe way.
Get base time in a threadsafe way too.
Fix confusing debug in the change_state function.
Various other mall cleanups.
* gst/gstelement.c: (gst_element_post_message):
Fix very verbose bus posting code.
* gst/gstpipeline.c: (gst_pipeline_class_init),
(gst_pipeline_set_property), (gst_pipeline_get_property),
(gst_pipeline_change_state):
Small ARG_ -> PROP_ cleanup
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c:
(gst_dp_header_from_buffer), (gst_dp_packet_from_caps),
(gst_dp_packet_from_event):
* libs/gst/dataprotocol/dataprotocol.h:
* libs/gst/dataprotocol/dp-private.h:
It's about time we bump the version number.
Since event types don't fit in the guint8 anymore describing
the payload type, make payload type 16 bits wide.
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.
Original commit message from CVS:
* gst/gstplugin.c: (gst_plugin_finalize), (gst_plugin_load_file):
* gst/gstplugin.h:
* gst/gstregistry.c: (gst_registry_lookup_locked),
(gst_registry_scan_path_level):
* gst/gstregistryxml.c: (load_plugin):
Only ever load one plugin for a given plugin basename.
This ensures correct overriding of GST_PLUGIN_PATH over
GST_PLUGIN_SYSTEM_PATH and of home dir plugins over
system installed plugins.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_do_sync), (gst_base_sink_handle_buffer):
Prepare for doing QOS.
Original commit message from CVS:
* docs/Makefile.am:
* docs/gst/Makefile.am:
* docs/gst/gstreamer-docs.sgml:
* docs/gst/running.xml:
* docs/version.entities.in:
add a chapter on running GStreamer.
document GST_DEBUG and GST_PLUGIN* env vars
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_preroll_queue_flush),
(gst_base_sink_handle_object), (gst_base_sink_event),
(gst_base_sink_wait), (gst_base_sink_handle_event),
(gst_base_sink_change_state):
* gst/base/gstbasesink.h:
Repost EOS message while going to PLAYING if still EOS.
Make sure that when receiving a FLUSH_START we don't attempt
to sync on the clock anymore.
Original commit message from CVS:
* check/gst/gstbin.c: (GST_START_TEST):
* check/gst/gstmessage.c: (GST_START_TEST):
* check/gst/gstpipeline.c: (GST_START_TEST), (message_received):
* gst/gstelement.c: (gst_element_commit_state),
(gst_element_lost_state):
* gst/gstmessage.c: (gst_message_new_state_changed),
(gst_message_parse_state_changed):
* gst/gstmessage.h:
* tools/gst-launch.c: (event_loop):
Added extra field to STATE_CHANGE message with the pending
state, which will be different from the new state soon.
Original commit message from CVS:
* gst/gstbus.c: (gst_bus_pop):
* gst/gstclock.c:
* gst/gstsystemclock.c: (gst_system_clock_async_thread):
Small cleanups and doc updates.
Original commit message from CVS:
* gst/gst.c: (init_pre):
* gst/gstbin.c: (gst_bin_add_func):
log distributing clocks and base time
* gst/gstregistry.c: (gst_registry_add_plugin),
(gst_registry_scan_path_level), (gst_registry_scan_path):
clean up the debugging output a little
* gst/gstutils.c: (gst_element_state_get_name):
warn about a memleak (I've actually seen this be used, though
it was probably a bug)
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_class_init),
(gst_base_src_init), (gst_base_src_default_newsegment),
(gst_base_src_newsegment), (gst_base_src_do_seek),
(gst_base_src_loop), (gst_base_src_start):
* gst/base/gstbasesrc.h:
Make the newsegment event customizable by subclasses.
Original commit message from CVS:
* gst/gstevent.c: (gst_event_new_buffersize),
(gst_event_parse_buffersize):
* gst/gstevent.h:
New event for future idea.
Original commit message from CVS:
2005-10-07 Andy Wingo <wingo@pobox.com>
* docs/gst/gstreamer-sections.txt: Update.
* gst/gstmessage.c (gst_message_new_application): Made into a
function like honest API calls.
(gst_message_new_element): New message type.
* gst/gstmessage.h (enum): Add GST_MESSAGE_ELEMENT type.
Original commit message from CVS:
2005-10-07 Andy Wingo <wingo@pobox.com>
* check/elements/fakesrc.c (test_no_preroll): New check, checks
that setting a live fakesrc to PAUSED returns NO_PREROLL both
times.
* gst/base/gstbasesrc.c (gst_base_src_change_state): Allow a
NO_PREROLL from gst_element_change_state to fall through.
Original commit message from CVS:
* gst/gstghostpad.c: (gst_ghost_pad_get_internal),
(gst_ghost_pad_do_activate_push):
Activating a ghostpad with no internal pad in push mode
is ok.
Original commit message from CVS:
Print out feature and plugin count at the end when printing out
all features.
Also add a changelog entry which I'd written but not committed?
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_event_default_dispatch):
give events a chance to be handled by event probes when the pad
is not linked
Original commit message from CVS:
* gst/gst_private.h:
* gst/gstbus.c:
* gst/gstelement.c:
* gst/gstinfo.c:
* gst/gstpluginfeature.c:
widen the debug category in output to fit the biggest one we have
add a bus category and use it
play with the colors
fix up some categories
Original commit message from CVS:
* gst/gstutils.c: (gst_element_link_pads):
fix a bug in the case where neither element has a pad
* check/gst/gstelement.c: (GST_START_TEST), (gst_element_suite):
add a test for that case
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_push), (gst_pad_push_event):
emit have-data before checking for peers. This allows
for probe handlers to connect elements. This helps autopluggers.
* check/gst/gstpad.c: (GST_START_TEST), (_probe_handler),
(gst_pad_suite):
add six checks, linked/unlinked with no/true/false probe
Original commit message from CVS:
2005-10-03 Andy Wingo <wingo@pobox.com>
* gst/gstpad.c (gst_pad_activate_push): There is a race condition
whereby calling a pad's activatepush() function can start a thread
that starts to push or pull before the pad gets the FLUSHING flag
unset. Hack around it by holding the stream lock until the flag is
set. Need to replace this with a proper solution. Together with
the ghost pad fixes, this fixes mp3 playing/tagreading.
Original commit message from CVS:
2005-10-02 Andy Wingo <wingo@pobox.com>
* gst/gstobject.h (GST_OBJECT_REFCOUNT_VALUE): Just use the int.
It is volatile, after all.
* docs/design/part-gstghostpad.txt: Flesh out activation with
ghost pads.
* gst/base/gstbasesrc.c (gst_base_src_init): Use
GST_DEBUG_FUNCPTR.
Original commit message from CVS:
Reviewed by: Tim-Philipp Müller <tim at centricular dot net>
* gst/gstutils.c: (gst_pad_query_convert):
Add assertion that makes sure src_val is >=0, just like
gst_query_new_convert() has. (#315895)
Original commit message from CVS:
* gst/elements/gsttee.c: (gst_tee_do_push), (gst_tee_handle_buffer):
Let's not iterate pads we're not interested in, it avoids getting
sky-high refcounts on sinkpad.
Original commit message from CVS:
* gst/gstelement.c: (gst_element_set_state),
(gst_element_change_state):
Small tweak, element in ASYNC remains ASYNC.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_change_state):
Only error is an error.
* gst/gstbin.c: (gst_bin_change_state):
Better debugging.
* gst/gstpad.c: (gst_pad_alloc_buffer), (gst_pad_chain):
Also call pad_block in pad alloc.
* gst/gstutils.c: (gst_flow_get_name):
Better debugging.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_class_init),
(gst_base_src_get_range):
Fix documentation typos. Add some more debug info.
Original commit message from CVS:
* gst/gstplugin.c: (gst_plugin_load_file): Make some error messages
more end-user friendly.
* tools/gst-inspect.c: (main): Check if command-line argument is
a file and attempt to load that file as a plugin.
Original commit message from CVS:
* check/gst/gstbin.c:
* check/states/sinks.c:
fix tests for the new warning
* check/gst/gstpipeline.c:
add a test for pipeline and bus interaction
* gst/gstelement.c:
elements should be NULL if they get disposed; add a warning if not
Original commit message from CVS:
* gst/gstobject.c:
for 2.6 refcounting, make debug log more correct by printing
the actual refcounts at the time of swap (Wim)
Original commit message from CVS:
* check/gst/gstbin.c: (GST_START_TEST):
Change for new bus API.
* check/gst/gstbus.c: (message_func_eos), (message_func_app),
(send_messages), (GST_START_TEST), (gstbus_suite):
Change for new bus signal API.
* gst/gstbus.c: (gst_bus_class_init), (gst_bus_have_pending),
(gst_bus_source_prepare), (gst_bus_source_check),
(gst_bus_create_watch), (gst_bus_add_watch_full),
(gst_bus_add_watch), (gst_bus_poll), (gst_bus_async_signal_func),
(gst_bus_sync_signal_handler), (gst_bus_add_signal_watch):
* gst/gstbus.h:
Remove support for multiple GSources operating on different
message types as it is too complex and unneeded when using
signals.
Added support for receiving signals from the bus.
Original commit message from CVS:
* gst/gstcaps.c: (gst_caps_do_simplify):
Thou shalt not free a structure and then continue using it
in the next loop iteration.
* check/gst/gstcaps.c: (check_fourcc_list), (test_simplify),
(gst_caps_suite):
Add test case for caps simplification.
Original commit message from CVS:
* check/gst/gstbin.c: (GST_START_TEST):
Add bus to bin.
* gst/gstbin.c: (gst_bin_class_init), (gst_bin_init),
(add_to_queue), (clear_queue), (reset_degree), (update_degree),
(find_element), (gst_bin_sort_iterator_next),
(gst_bin_sort_iterator_resync), (gst_bin_sort_iterator_free),
(gst_bin_iterate_sorted), (gst_bin_element_set_state),
(gst_bin_change_state), (gst_bin_dispose):
A bin does not have a bus, it gets the bus from the parent.
* gst/gstelement.c: (gst_element_requires_clock),
(gst_element_provides_clock), (gst_element_is_indexable),
(gst_element_is_locked_state), (gst_element_change_state),
(gst_element_set_bus_func):
Small cleanups.
* gst/gstpipeline.c: (gst_pipeline_class_init),
(gst_pipeline_init), (gst_pipeline_provide_clock_func):
The pipeline provides a bus.
Original commit message from CVS:
* gst/gstmessage.c (gst_message_new_state_changed): Use
GST_TYPE_STATE instead of G_TYPE_INT, mainly for language bindings
which does introspection.
Reviewed by Christian Schaller
Original commit message from CVS:
* gst/gstbus.c: (marshal_VOID__MINIOBJECT), (gst_bus_class_init),
(gst_bus_post), (poll_func), (gst_bus_async_signal_func),
(gst_bus_sync_signal_handler):
* gst/gstbus.h:
Added async-message and sync-message signals to the bus.
Added helper BusFunc to emit signals for all posted messages.
* gst/gstmessage.c: (gst_message_type_get_name),
(gst_message_type_to_quark), (gst_message_get_type):
* gst/gstmessage.h:
Register quarks for message names.
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/controller/gstcontroller.c: (gst_controller_new_valist),
(gst_controller_new_list):
* libs/gst/controller/gstcontroller.h:
added another constructor for language bindings
Original commit message from CVS:
* check/gst/gstpipeline.c: (GST_START_TEST), (gst_pipeline_suite):
add another check
* gst/gstbus.c:
add some doc
* gst/gstinfo.c: (_gst_debug_init):
slightly more readable color for refcount debugging
Original commit message from CVS:
2005-09-28 Andy Wingo <wingo@pobox.com>
* gst/base/gstbasesrc.c (gst_base_src_unlock): Comment a bit in
lieu of real docs...
* gst/elements/gstfdsrc.c: Cleaned up a bit.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/base/gstbasesrc.h:
* gst/gstelement.h:
* gst/gstevent.h:
* gst/gstobject.h:
* gst/gstpad.h:
* gst/gstpipeline.c:
* gst/gstpipeline.h:
* gst/gstutils.h:
* gst/gstxml.h:
added two new functions to the docs
documents all undocumented GstXXXFlags
completed some incomplete docs
Original commit message from CVS:
* docs/design/part-TODO.txt:
Update TODO.
* gst/gstbin.c: (add_to_queue), (clear_queue), (reset_outdegree),
(update_outdegree), (find_element), (gst_bin_sort_iterator_next),
(gst_bin_sort_iterator_resync), (gst_bin_sort_iterator_free),
(gst_bin_iterate_sorted), (gst_bin_element_set_state),
(gst_bin_change_state):
* gst/gstelement.h:
Remove element variable, we keep element info in the iterator now.
Original commit message from CVS:
* check/gst/gstbin.c: (GST_START_TEST):
Enable check that works now.
* gst/gstbin.c: (add_to_queue), (clear_queue), (reset_outdegree),
(update_outdegree), (find_element), (gst_bin_sort_iterator_next),
(gst_bin_sort_iterator_resync), (gst_bin_sort_iterator_free),
(gst_bin_iterate_sorted), (gst_bin_element_set_state),
(gst_bin_change_state):
* gst/gstbin.h:
Redid the state change algorithm using a topological sort algo.
Handles all cases correctly.
Exposed iterator for state change order.
* gst/gstelement.h:
Temp storage for state changes. Need to get rid of this soon.
Original commit message from CVS:
* gst/elements/gsttee.c: (gst_tee_init), (gst_tee_do_push):
* gst/gstutils.c: (intersect_caps_func), (gst_pad_proxy_getcaps),
(link_fold_func), (gst_pad_proxy_setcaps):
Leak fixes, the fold functions need to unref the passed object and
_get_parent_*() returns ref to parent.
Original commit message from CVS:
* gst/gstbuffer.c: (gst_subbuffer_init):
Set READONLY flag on subbuffers, so that gst_buffer_make_writable()
works correctly in all circumstances (we could have just copied
the parent buffer's readonly flag, but conceptually it seems
cleaner to mark all subbuffers as read-only). (based on patch
by Alessandro Decina, #314710).
* check/gst/gstbuffer.c: (create_read_only_buffer),
(test_make_writable), (test_subbuffer_make_writable),
(gst_test_suite):
Add some tests for gst_buffer_make_writable().
Original commit message from CVS:
* gst/gstbin.c: (bin_element_is_semi_sink), (gst_bin_change_state):
use gst_object_has_ancestor().
* gst/gstobject.c: (gst_object_has_ancestor):
* gst/gstobject.h:
gst_object_has_ancestor() copied from gstbin.c as it is a
usefull function.
* tests/instantiate/create.c: (create_all_elements):
* tests/lat.c: (handoff_src), (handoff_sink):
* tests/sched/runxml.c: (main):
* tests/seeking/seeking1.c: (main):
* tests/threadstate/threadstate2.c: (bus_handler), (timeout_func),
(main):
Fix compilation of some tests.
Original commit message from CVS:
* gst/gsterror.h:
Remove comment. GST_TYPE_G_ERROR is here to stay,
G_TYPE_ERROR has been WONTFIX'ed by the GLib folks
(#316961, #300610).
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_change_state):
Make state change function use 3 queues again, we were
adding elements in the wrong order.
* gst/gstghostpad.c: (gst_ghost_pad_do_unlink):
Some debug info,
* gst/gstpad.c: (gst_pad_dispose):
Added some debug info first.
Original commit message from CVS:
* docs/design/draft-push-pull.txt:
* docs/design/part-events.txt:
* docs/design/part-overview.txt:
* docs/design/part-scheduling.txt:
Replace all _pull_region() with _pull_range()
Original commit message from CVS:
2005-09-26 Andy Wingo <wingo@pobox.com>
* configure.ac:
* tests/Makefile.am:
* tests/memchunk: Remove memchunk benchmark stuff, this is taken
over by GLib bug 118439.
* gst/base/gstbasesink.c (gst_base_sink_wait): Factor out the wait
routines to a function.
* docs/libs/gstreamer-libs-sections.txt: I am a good person today.
* libs/gst/controller/gsthelper.c:
* libs/gst/controller/gstcontroller.h (gst_controller_sync_values)
(gst_object_sync_values): Renamed from sink_values. Ugh.
* libs/gst/controller/gsthelper.c: Update for __gst_controller_key.
* libs/gst/controller/gstcontroller.c (__gst_controller_key):
Renamed from controller_key, as it is exported.
* gst/gstvalue.c (_gst_value_initialize): Fake out the compiler.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_get_range),
(gst_base_src_is_seekable), (gst_base_src_change_state):
Some more debugging info.
Original commit message from CVS:
* docs/gst/.cvsignore:
* docs/gst/tmpl/.cvsignore:
* docs/gst/tmpl/gstpipeline.sgml:
* docs/gst/tmpl/gstplugin.sgml:
* gst/gstpipeline.c:
* gst/gstplugin.c:
* gst/gstplugin.h:
inlined the last two docs files
removed the tmpl directory from cvs (no more conflicts here!)
Original commit message from CVS:
* check/gst/gstbin.c: (test_children_state_change_order_flagged_sink),
(test_children_state_change_order_semi_sink):
Fix test case: we can't rely on a fixed state change order when
going from READY => PAUSED because the sink might commit its
new state first when the first buffer created by the source
reaches the sink before the source has finished its change state.
(Test case still fails at times, see #316856, comment 5 onwards)
Original commit message from CVS:
* common/gtk-doc.mak:
don't fail on building XML, FC4 slave shows a bunch of doc
missing bits that I don't get
* gst/gstpad.c:
* gst/gstpipeline.c:
* gst/gststructure.c:
some doc updates
Original commit message from CVS:
* docs/design/part-gstbin.txt:
* docs/design/part-gstbus.txt:
* gst/gstbus.c:
Add blurb about how the bus goes into flushing mode and
drops all messages when its bin goes from READY into NULL
state.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gststructure.c: (gst_structure_get_clock_time):
* gst/gststructure.h:
add a method to get a GstClockTime out of a structure
Original commit message from CVS:
* check/gst/gstbin.c: (test_children_state_change_order_flagged_sink),
(test_children_state_change_order_semi_sink), (gst_bin_suite):
Added test to check state change order in bins (can still be made
to fail here under heavy disk load; bails out with 'Push on pad
fakesink:sink0, but it was not activated in push mode').
* gst/gstbin.c: (gst_bin_class_init), (gst_bin_change_state):
Fix state change order when there is only a semi sink (#316856)
* gst/gstbus.c: (gst_bus_class_init):
Use _class_peek_parent(), not _class_ref(); fix docs to say
'default main context' instead of 'mainloop' where that is
what's meant.
* gst/gstelement.c: (gst_element_commit_state),
(gst_element_set_state):
Fix typos in debug messages
Original commit message from CVS:
* docs/README:
* gst/gstpad.c: (gst_pad_class_init), (gst_pad_chain):
* gst/gstpluginfeature.c:
* gst/gstutils.c:
various doc updates
* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
change an assert into an error until it gets fixed properly
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_class_init),
(gst_base_sink_send_event), (gst_base_sink_peer_query),
(gst_base_sink_query):
Prepare for more accurate position reporting and query
handling.
* gst/gstelement.c: (gst_element_send_event),
(gst_element_set_state):
Add some comment.
Original commit message from CVS:
* gst/gstquery.c: (gst_query_new_segment), (gst_query_set_segment),
(gst_query_parse_segment):
* gst/gstquery.h:
More documentation.
Add segment query for future use.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_add_func):
Some more debug info.
* gst/gstelement.c: (gst_element_send_event):
Simplify send_event
* gst/gstelement.h:
Don't know how flags got broken.
* gst/gstquery.h:
Added new query.
Original commit message from CVS:
* check/gst/gstvalue.c: (test_date), (gst_value_suite):
Add simplistic test suite for GST_TYPE_DATE serialisation and
deserialisation.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gststructure.c: (gst_structure_set_valist),
(gst_structure_get_date):
* gst/gststructure.h:
* gst/gstvalue.c: (gst_value_set_date), (gst_value_get_date),
(gst_date_copy), (gst_value_compare_date),
(gst_value_serialize_date), (gst_value_deserialize_date),
(gst_value_transform_date_string),
(gst_value_transform_string_date), (_gst_value_initialize):
* gst/gstvalue.h:
Add GST_TYPE_DATE, a boxed type that wraps GDate, and the usual
bunch of utility functions along with a hack that checks that
developers don't accidentally use G_TYPE_DATE where GST_TYPE_DATE
is required. Part of the grand scheme in #170777.
Original commit message from CVS:
2005-09-22 Andy Wingo <wingo@pobox.com>
* gst/gstbuffer.c (gst_buffer_get_caps): Like all our _get
accessors returning refcounted objects, return a ref.
* check/gst/gstbuffer.c (GST_START_TEST): Use refcount-idempotent
accessor for caps. IDEMPOTENCE. Oh yes.
Original commit message from CVS:
Reviewed by: Tim-Philipp Müller <tim at centricular dot net>
* gst/gstinfo.c: (_gst_debug_nameof_funcptr),
(_gst_debug_register_funcptr):
Add mutex to serialise access to the hash table with
the function pointer => function name string mapping;
make that hash table static scope (#316809).
* gst/registries/.cvsignore:
Remove left-over file.
Original commit message from CVS:
* docs/pwg/appendix-porting.xml:
And something about newsegment events and caps-on-buffers to
the porting guide (feel free to improve).
Original commit message from CVS:
2005-09-21 Andy Wingo <wingo@pobox.com>
* check/gst/gstutils.c (test_buffer_probe_n_times): Add tests for
data and event probes on the same pad.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_transform_size):
* gst/gstutils.c: (gst_util_set_value_from_string),
(gst_util_set_object_arg):
Don't put functional code in g_return_if_fail() or
g_return_val_if_fail() statements, otherwise things will
break when G_DISABLE_CHECKS is defined during compilation.
Original commit message from CVS:
* docs/gst/tmpl/.cvsignore:
* docs/gst/tmpl/gstvalue.sgml:
* gst/gstvalue.c:
* gst/gstvalue.h:
inlied another one and added some obvious docs
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_class_init),
(gst_base_sink_init):
Make sync property settable from subclass.
* gst/elements/gstfakesink.c: (gst_fake_sink_init),
(gst_fake_sink_change_state):
Set sync to FALSE by default.
Original commit message from CVS:
* gst/gstbus.c: (poll_func), (poll_timeout), (gst_bus_poll):
* tools/gst-launch.c: (main):
The timeout handler should have lower priority than the source
so we don't timeout before popping a message with 0 timeout.
Dump error messages after failed state change.
Original commit message from CVS:
* check/gst/gstevent.c:
* gst/elements/gstfakesink.c:
* gst/elements/gstfakesink.h:
remove the sync property from fakesink.
has the side effect of setting sync TRUE
for fakesink, which is a change. Anyone who knows how
to fix this nicely in a GObject-y way, feel free.
Original commit message from CVS:
* check/Makefile.am:
disable valgrinding the controller test again
* docs/gst/gstreamer-sections.txt:
update for api-changes
Original commit message from CVS:
2005-09-20 Andy Wingo <wingo@pobox.com>
* gst/gstelementfactory.c (gst_element_factory_create): Avoid
eating the caller's refcount.
* gst/gstobject.h (GST_OBJECT_REFCOUNT)
(GST_OBJECT_REFCOUNT_VALUE): Conditionally fondle the right
refcount.
* gst/gstconfig.h.in (GST_HAVE_GLIB_2_8):
* configure.ac (GST_HAVE_GLIB_2_8_DEFINE): Make the availability
of GLib 2.8 public, so we can know which refcount to check in
tests.
* gst/gstobject.c: Use the GST_HAVE_GLIB_2_8 define.
(gst_object_init): Only set the gst refcount if we're going ahead
with the refcount hack.
Original commit message from CVS:
* gst/gstclock.c: (_gst_clock_id_free):
Commit from the Political Party For More Atomic CVS Commits,
so that people don't waste too much of their day fishing
out obvious leaks out of massive commits.
Oh, and fix a pretty damn obvious leak in the memchunk
removal code.
Original commit message from CVS:
2005-09-20 Andy Wingo <wingo@pobox.com>
* gst/gst.h: Re-add marshal to gst.h's include list -- if we
really want it out, you should fix plugins at the same time.
Original commit message from CVS:
* configure.ac:
* docs/gst/gstreamer-sections.txt:
* gst/gstobject.c:
added missing symbols to api docs
disable ref-count hack if we have glib >= 2.8
Original commit message from CVS:
* docs/gst/Makefile.am: Ignore a few more internal headers
* docs/gst/gstreamer-docs.sgml: Remove old sections
* docs/gst/gstreamer-sections.txt: Remove old sections
* docs/gst/tmpl/gstobject.sgml: update
* docs/gst/tmpl/gstplugin.sgml: update
* docs/gst/tmpl/gstpluginfeature.sgml: update
* docs/random/ds/0.9-suggested-changes: update.
* gst/Makefile.am: remove memchunk and trashstack, since they're
not used.
* gst/gst.c: (gst_deinit): rename gst_registry_deinit to _cleanup
* gst/gst.h: don't include some headers
* gst/gstchildproxy.c: add gstmarshal.h
* gst/gstclock.c: Don't use memchunks
* gst/gstminiobject.c: Add some docs
* gst/gstobject.c: remove DESTROYED flag, since it's redundant
* gst/gstobject.h: same
* gst/gstplugin.c: include gstmacros.h
* gst/gstplugin.h: don't include gstmacros.h, since it's private
* gst/gstquery.c: don't use memchunks
* gst/gstregistry.c: rename gst_registry_deinit()
* gst/gstregistry.h: same
Original commit message from CVS:
* gst/gstpipeline.c: (do_pipeline_seek), (gst_pipeline_send_event):
Automatically PAUSE and RESUME a pipeline when a flushing seek
is performed.
Removed old files.
Original commit message from CVS:
* check/Makefile.am:
* check/pipelines/cleanup.c: (run_pipeline):
* check/pipelines/simple_launch_lines.c: (run_pipeline),
(GST_START_TEST):
enable cleanup again after fixing the leak
* docs/README:
some more info on docs
Original commit message from CVS:
* check/Makefile.am:
re-enable tests now that leaks are plugged
* check/gst/gst.c:
* check/gst/gstbin.c:
* check/gst/gstpipeline.c:
add some more tests while fixing leaks
* common/check.mak:
make sure binaries are uptodate when valgrinding/gdbing
* gst/gst.c:
* gst/gstelementfactory.c:
remove a ref too many, and add a FIXME for when we get
round to disposing of classes
* gst/gstplugin.c:
fix the refcounting when loading a plugin from a file and
the code pretends that the pointer is the same even though
of course it can change
* gst/gstpluginfeature.c:
unref plugins marked cached (a bit confusing as a name)
as the docs state should be done
various doc additions to explain refcounting
* gst/gstregistry.c:
* gst/gstregistryxml.c:
debugging
Original commit message from CVS:
* check/gst/gstbin.c: (pop_messages), (GST_START_TEST):
* check/gst/gstbus.c: (message_func_eos), (message_func_app),
(send_messages), (GST_START_TEST), (gstbus_suite):
* check/gst/gstpipeline.c: (GST_START_TEST):
* check/pipelines/cleanup.c: (run_pipeline):
* check/pipelines/simple_launch_lines.c: (run_pipeline),
(GST_START_TEST):
* gst/gstbus.c: (gst_bus_have_pending), (gst_bus_source_prepare),
(gst_bus_source_check), (gst_bus_source_dispatch),
(gst_bus_create_watch), (gst_bus_add_watch_full),
(gst_bus_add_watch), (poll_func), (poll_timeout), (gst_bus_poll):
* gst/gstbus.h:
* tools/gst-launch.c: (event_loop):
* tools/gst-md5sum.c: (event_loop):
GstBusHandler -> GstBusFunc, return value has the same meaning as
any other GSource (FALSE == remove source).
_add_watch() and _add_watch_full() now take a MessageType mask to
only handle specific types of messages.
_poll() returns the GstMessage instead of the message type to avoid
race conditions.
_have_pending() takes a MessageType mask now too.
Added testsuite for multiple bus watches.
Fix testsuites and applications for new bus API.
Original commit message from CVS:
* common/check.mak:
use GST_PLUGIN settings for valgrind tests as well, so we're
valgrinding the correct thing
* gst/gst.c: (init_post):
plug another leak
Original commit message from CVS:
* check/gst/gstplugin.c:
* gst/gstelementfactory.c:
* gst/gstplugin.c:
* gst/gstpluginfeature.c:
* gst/gstregistry.c:
Getting tired of debugging. Disabled all the unreffing of
plugins and features, which fixes the segfaults, but of
course leaks like crazy. At least playbin works.
Original commit message from CVS:
* gst/gstplugin.c: Implement semi-decent recounting and locking
in plugins and plugin features.
* gst/gstplugin.h:
* gst/gstpluginfeature.c:
* gst/gstpluginfeature.h:
* gst/gstregistry.c:
Original commit message from CVS:
Implement missing function. This is enough to get the basics of
typefinding working - oggdemux succeeds now. decodebin is still broken.
Original commit message from CVS:
* configure.ac: Remove getbits library. Nothing uses it, and
it should be in something like liboil if someone did want
to use it.
* libs/gst/Makefile.am:
* libs/gst/getbits/Makefile.am:
* libs/gst/getbits/gbtest.c:
* libs/gst/getbits/getbits.c:
* libs/gst/getbits/getbits.h:
* libs/gst/getbits/gstgetbits_generic.c:
* libs/gst/getbits/gstgetbits_i386.s:
* libs/gst/getbits/gstgetbits_inl.h:
Original commit message from CVS:
* gst/glib-compat.c: (g_mkdir_with_parents), (g_mkdir), (g_stat):
* gst/glib-compat.h:
Attempt #4 to appease the buildbots.
Original commit message from CVS:
* gst/glib-compat.c: (g_mkdir_with_parents), (g_mkdir), (g_stat):
* gst/glib-compat.h: Add some functions that are in newer versions
of glib than we care to require.
* gst/gstregistryxml.c: Use them.
Original commit message from CVS:
* check/Makefile.am:
* check/generic/states.c:
* gst/Makefile.am:
* gst/gst.c:
* gst/gst.h:
* gst/gst_private.h:
* gst/gstelementfactory.c:
* gst/gstindex.c:
* gst/gstinfo.c:
* gst/gstplugin.c:
* gst/gstplugin.h:
* gst/gstpluginfeature.c:
* gst/gstpluginfeature.h:
* gst/gstregistry.c:
* gst/gstregistry.h:
* gst/gstregistrypool.c: remove
* gst/gstregistrypool.h: remove
* gst/gsttypefind.c:
* gst/gsttypefindfactory.c:
* gst/gsturi.c:
* tools/Makefile.am:
* tools/gst-compprep.c:
* tools/gst-inspect.c:
* tools/gst-register.c: remove
* tools/gst-xmlinspect.c:
Registry rewrite. Changes registry from being a file created
by a tool into a simple cache file created automatically by
libgstreamer. Removed gst-register (because it's no longer
needed). Remove registry pools, because we only have one
registry implementation (XML). Fix up other subsystems as
necessary.
Original commit message from CVS:
* gst/gstutils.c: (set_state_async_thread_func),
(gst_element_set_state_async):
Apparently people think it's better if this function doesn't
try to set the state to whatever state was asked for on the first
call to this function for any object. Seriously.
Original commit message from CVS:
* check/gst/gstpipeline.c: (GST_START_TEST):
* docs/gst/gstreamer-sections.txt:
* gst/gstutils.c: (set_state_async_thread_func),
(gst_element_set_state_async):
* gst/gstutils.h:
add a gst_element_set_state_async method that
sets the state and starts a thread to make sure the state
change completes as best as it can
Original commit message from CVS:
* docs/gst/tmpl/gstelement.sgml:
* docs/manual/appendix-quotes.xml:
add a quote
* gst/gstelement.c: (gst_element_set_state):
add some debug
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_class_init),
(gst_base_transform_prepare_output_buf),
(gst_base_transform_handle_buffer):
* gst/elements/gstcapsfilter.c: (gst_capsfilter_transform_ip),
(gst_capsfilter_prepare_buf):
Remove the requirement for sub-classes to call the parent
implementation of prepare_output_buffer with a wrapper function.
* gst/gsttaglist.h:
* gst/gsttagsetter.h:
Fix #define wrapper
Original commit message from CVS:
* check/gst-libs/controller.c:
Header include fix.
* gst/base/gstbasetransform.c:
(gst_base_transform_default_prepare_buf),
(gst_base_transform_handle_buffer):
* gst/base/gstbasetransform.h:
Some more basetransform changes and fixes to enable sub-classes
that modify buffer metadata only.
* gst/elements/gstcapsfilter.c: (gst_capsfilter_class_init),
(gst_capsfilter_init), (gst_capsfilter_transform_ip),
(gst_capsfilter_prepare_buf):
If the output pad has fixed allowed caps and input buffers
don't have any, set the fixed caps on outgoing buffers.
Original commit message from CVS:
* check/elements/identity.c: (GST_START_TEST):
Make the error a little clearer when the test fails because
identity made a copy of the buffer.
* docs/gst/gstreamer-sections.txt:
New symbols in gstbasetransform.h
* gst/base/gstbasetransform.c: (gst_base_transform_class_init),
(gst_base_transform_init), (gst_base_transform_transform_size),
(gst_base_transform_configure_caps), (gst_base_transform_setcaps),
(gst_base_transform_default_prepare_buf),
(gst_base_transform_get_unit_size),
(gst_base_transform_buffer_alloc),
(gst_base_transform_handle_buffer), (gst_base_transform_chain),
(gst_base_transform_change_state),
(gst_base_transform_set_passthrough),
(gst_base_transform_set_in_place),
(gst_base_transform_is_in_place):
* gst/base/gstbasetransform.h:
Change BaseTransform to separate in_place operate from same_caps
output. in_place implies that the element can perform the transform
on incoming buffers in-place, even if the caps on the output are
different.
Sub-class elements can now implement special buffer allocation
methods for outgoing buffers if they wish to.
Big documentation addition.
* gst/elements/gstcapsfilter.c: (gst_capsfilter_transform_ip):
* gst/elements/gstelements.c:
Changes for basetransform modifications.
* gst/elements/Makefile.am:
* gst/elements/gstfdsrc.c: (gst_fdsrc_init), (gst_fdsrc_create):
Compile fix. Extra debug output.
Original commit message from CVS:
* check/gst/gstpad.c: (GST_START_TEST), (name_is_valid),
(gst_pad_suite):
add tests for valid pad naming
* gst/check/gstcheck.c: (gst_check_log_message_func),
(gst_check_log_critical_func):
add ASSERT_WARNING
remove printing of code, it is fragile when the code contains
% and the line number is enough info
* gst/check/gstcheck.h:
* gst/gstpad.c: (gst_pad_template_new):
fix memleaks
Original commit message from CVS:
* configure.ac:
say what CHECK flags we use
* docs/libs/gstreamer-libs.types:
* libs/gst/controller/Makefile.am:
* libs/gst/controller/gst-controller.c:
* libs/gst/controller/gst-controller.h:
* libs/gst/controller/gst-helper.c:
* libs/gst/controller/gst-interpolation.c:
* libs/gst/controller/gstcontroller.c:
* libs/gst/controller/gsthelper.c:
* libs/gst/controller/gstinterpolation.c:
* tools/gst-inspect.c: (print_plugin_info):
we don't use dashes in header names
Original commit message from CVS:
* check/Makefile.am:
* check/gst/.cvsignore:
* check/gst/gstpipeline.c: (pop_messages), (GST_START_TEST),
(gst_pipeline_suite), (main):
adding a test for pipelines and state changes
* gst/gstutils.c: (get_state_func):
add some debugging
* gstreamer.spec.in:
fix up spec file
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).
Original commit message from CVS:
* gst/gstplugin.c: (gst_plugin_load_file):
Call g_module_close when we don't load the module
* gst/registries/gstlibxmlregistry.c:
(gst_xml_registry_get_property):
Port leak fix from 0.8
Original commit message from CVS:
2005-09-07 Andy Wingo <wingo@pobox.com>
* gst/base/gstbasesink.c (gst_base_sink_activate_pull): Fix a race
condition whereby the pad's task function is entered before the
pad_mode variable was set.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_alloc_buffer):
Catch misbehaving pad_alloc functions that don't
set up caps and do it for them.
Original commit message from CVS:
* gst/registries/gstxmlregistry.h:
* gst/registries/gstxmlregistry.c: and update to newer API.
Incidentally they should be a bit faster now that they don't have
to parse the caps.
Original commit message from CVS:
2005-09-05 Andy Wingo <wingo@pobox.com>
* gst/registries/gstxmlregistry.h:
* gst/registries/gstxmlregistry.c: Um... resurrect...
Original commit message from CVS:
2005-09-05 Andy Wingo <wingo@pobox.com>
* gst/registries/gstxmlregistry.h:
* gst/registries/gstxmlregistry.c: Remove from CVS, they were
replaced by the libxml registry a while back
Original commit message from CVS:
add a source plugin description field, to represent the source
module this plugin is a part of. By default GST_PLUGIN_DEFINE
will set it to PACKAGE, which is automake's idea of the name of
the source project.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_pad_buffer_alloc):
Add comment.
* gst/elements/gstfakesink.c: (gst_fake_sink_init),
(gst_fake_sink_change_state):
Make state change function thread-safe.
* gst/gstpad.c: (gst_pad_alloc_buffer):
Set offset on generic buffer allocated by fallback.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* docs/gst/tmpl/gstelement.sgml:
* gst/gstpad.c:
* libs/gst/controller/gst-controller.c:
(gst_controlled_property_set_interpolation_mode),
(gst_controlled_property_new),
(gst_controller_find_controlled_property):
run the wingo-magic script against the docs
Original commit message from CVS:
2005-09-02 Andy Wingo <wingo@pobox.com>
* gst/gstelement.h: Add magical pixie dust to make glib-mkenums
consider this enum an enum and not a flags.
Original commit message from CVS:
2005-09-02 Andy Wingo <wingo@pobox.com>
* gst/gstelement.h (GstState): Renamed from GstElementState,
changed to be a normal enum instead of flags.
(GstStateChangeReturn): Renamed from GstElementStateReturn, names
munged to be GST_STATE_CHANGE_*.
(GST_STATE_CHANGE): Renamed from GST_STATE_TRANSITION, updated to
work with the new state representation.
(GstStateChange): New enumeration of possible state transitions.
Replaces GST_STATE_FOO_TO_BAR with GST_STATE_CHANGE_FOO_TO_BAR.
(GstElementClass::change_state): Pass the GstStateChange along as
an argument. Helps language bindings, so they don't have to use
tricky lock-needing macros like GST_STATE_CHANGE ().
* scripts/update-states (file): New script. Run it on a file to
update it for state naming and API changes. Updates files in
place.
* All files updated for the new API.
Original commit message from CVS:
* gst/gsttrace.c: (gst_trace_flush), (gst_trace_text_flush):
* gst/gstutils.c: (gst_util_set_value_from_string),
(gst_util_set_object_arg):
fix a bunch of unchecked return values
* tools/gst-complete.c: (main):
* gstreamer.spec.in:
clean up a little
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
Original commit message from CVS:
* libs/gst/controller/gst-controller.c:
(gst_controlled_property_set_interpolation_mode),
(gst_controlled_property_new):
fixed boolean again
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_setcaps),
(gst_base_transform_handle_buffer):
Passthrough elements don't need the caps as they don't care.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_setcaps),
(gst_base_transform_handle_buffer), (gst_base_transform_chain):
Don't leak refcounts on buffers.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_configure_caps),
(gst_base_transform_setcaps), (gst_base_transform_handle_buffer),
(gst_base_transform_chain), (gst_base_transform_change_state):
* gst/base/gstbasetransform.h:
Handle the case where we are not negotiated more gracefully.
Original commit message from CVS:
* gst/elements/gstfilesrc.c: (gst_mmap_buffer_init),
(gst_file_src_map_region):
Set READONLY flag on mmap'ed buffers, otherwise
gst_buffer_make_writable() won't work properly (#314708).
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_handle_buffer):
passthrough elements can even do inplace on non writable
buffers (as they don't touch them).
Original commit message from CVS:
* gst/gstminiobject.c: (gst_mini_object_ref):
Cannot assert that the refcount has to be positive
since a disposed object can be resurected.
Original commit message from CVS:
* check/elements/fakesrc.c: (setup_fakesrc):
* check/elements/identity.c: (setup_identity):
Activate pads before using them.
Original commit message from CVS:
* gst/base/gstadapter.c: (gst_adapter_flush):
Flushing out 0 bytes is ok for this function.
* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
no newsegment gives a warning and sets the start/stop to
invalid.
* gst/base/gstbasetransform.c: (gst_base_transform_change_state),
(gst_base_transform_set_passthrough):
Some debug info.
* gst/gstminiobject.c: (gst_mini_object_ref):
Check refcount here too.
* gst/gstpad.c: (gst_pad_init):
Pads are initially flushing and refusing data.
* gst/gstutils.c: (gst_element_link_pads_filtered):
When adding a capsfilter element make sure it has the
same state as the parent bin.
Original commit message from CVS:
* docs/gst/tmpl/.cvsignore:
* docs/gst/tmpl/gstformat.sgml:
* docs/gst/tmpl/gstversion.sgml:
* gst/gstbus.h:
* gst/gstformat.c:
* gst/gstformat.h:
* gst/gstversion.h.in:
more docs and two more inlined
Original commit message from CVS:
* check/gst-libs/controller.c: (GST_START_TEST),
(gst_controller_suite):
more tests
* docs/gst/tmpl/gstutils.sgml:
* docs/libs/gstreamer-libs-sections.txt:
* docs/libs/tmpl/gstdataprotocol.sgml:
include path fixes
* examples/controller/audio-example.c: (main):
controller example works now
* gst/gstclock.h:
doc fixes
* tools/gst-inspect.c: (print_element_properties_info):
show param spec flags
Original commit message from CVS:
2005-08-28 Andy Wingo <wingo@pobox.com>
* gst/gstutils.h (GST_BOILERPLATE_FULL): Prototype instance_init
as having two arguments instead of just one. Allows superclasses
to access information on subclasses -- see the terrible for() loop
in gtype.c:g_type_create_instance for the reason why. All callers
changed.
Original commit message from CVS:
2005-08-26 Andy Wingo <wingo@pobox.com>
* check/pipelines/simple_launch_lines.c (run_pipeline): Check
element_set_state's return val.
(test_2_elements): Add test that's been disabled for months.
* gst/elements/gstfakesink.c: Cleanups. Add can-activate-push and
can-activate-pull properties.
* gst/elements/gstfakesrc.c: Cleanups. Add can-activate-push and
can-activate-pull properties. Implement is_seekable so fakesrc can
operate in pull mode.
* gst/base/gstbasesink.c (GstBaseSink): Remove has-loop, has-chain
properties.
(gst_base_sink_activate, gst_base_sink_activate_pull)
(gst_base_sink_activate_push): Make activation mode choosing work.
Cleanups.
(gst_base_sink_chain, gst_base_sink_loop): Assert activation mode
is right. Make pull mode work. Post an eos before pausing in pull
mode.
(gst_base_sink_change_state): Pay attention to the core's
change_state() return val.
* gst/base/gstbasesrc.c (GstBaseSrc): Remove has-loop,
has-getrange properties. Cleanups.
* gst/base/gstbasesrc.h (GstBaseSrc): Remove has_loop,
has_getrange and replace with can_activate_pull and
can_activate_push.
* gst/base/gstbasesink.h (GstBaseSink): Rearrange fields, add
locking comments. Remove has_loop, has_chain and replace with
can_activate_pull and can_activate_push.
Original commit message from CVS:
* configure.ac:
* examples/Makefile.am:
* examples/metadata/Makefile.am:
* examples/metadata/read-metadata.c: (message_loop),
(have_pad_handler), (make_pipeline), (print_tag), (main):
Add metadata reading example that loops over a list of filenames,
dumping any tags found.
* gst/gstbus.c: (gst_bus_dispose):
* gst/gstelement.c: (gst_element_dispose):
Release a few potentially-held references in dispose.
Original commit message from CVS:
* docs/gst/gstreamer-docs.sgml:
* docs/libs/gstreamer-libs-docs.sgml:
disabed additional index entries again, as this makes docs-gen just
slow and they aren't useful yet
* docs/libs/gstreamer-libs-sections.txt:
little -section.txt cleanup for libs
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
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)
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_init),
(gst_base_transform_transform_size),
(gst_base_transform_configure_caps),
(gst_base_transform_get_unit_size),
(gst_base_transform_buffer_alloc),
(gst_base_transform_change_state):
* gst/base/gstbasetransform.h:
Cache caps unit_size.
Make sure we cannot negotiate up and downstream at the
same time.
Original commit message from CVS:
* gst/gstbin.c: (bin_bus_handler):
Be a bit more conservative about the posted message.
* gst/gstbus.c: (gst_bus_post):
Some cleanups, warn wrong return values.
Original commit message from CVS:
* check/generic/states.c: (GST_START_TEST):
Cleanup can be done at the end.
* gst/gsttask.c: (gst_task_get_type), (gst_task_finalize),
(gst_task_func), (gst_task_cleanup_all), (gst_task_set_lock),
(gst_task_get_state), (gst_task_start), (gst_task_pause):
Oh boy.. Thanks for finding this, Thomas.
Original commit message from CVS:
* check/generic/states.c: (GST_START_TEST):
Make sure all tasks are stopped.
* check/gst/gstbin.c: (GST_START_TEST):
Unref after usage for proper valgrinding.
* gst/gstpad.c: (gst_pad_finalize), (gst_pad_stop_task):
Really wait for the task to stop before destroying the
mutex.
* gst/gstqueue.c: (gst_queue_sink_activate_push),
(gst_queue_src_activate_push):
Small cleanups. Don't stop the task when we did not start
it.
* gst/gsttask.c: (gst_task_get_type), (gst_task_init),
(gst_task_func), (gst_task_cleanup_all), (gst_task_set_lock),
(gst_task_get_state), (gst_task_start), (gst_task_pause),
(gst_task_join):
* gst/gsttask.h:
Protect the stream lock with the object lock.
Disallow setting the stream lock when running.
Add cleanup_all to wait for the threadpool to finish.
Remove code to autoallocate a mutex if none was provided.
Add _join() to wait for a task to stop.
Protect the thread pool with a global lock.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_get_times), (gst_base_sink_do_sync),
(gst_base_sink_handle_buffer), (gst_base_sink_change_state):
* gst/base/gstbasesink.h:
Handle newsegment events correctly.
Drop buffers out of the segment range.
Original commit message from CVS:
* check/Makefile.am:
* check/generic/states.c: (GST_START_TEST), (states_suite), (main):
add a test that does a bunch of state changes on elements
needs some fixing for valgrind
* check/states/sinks.c: (gst_object_suite):
whitespace
* gst/gstcaps.h:
add prototype for gst_caps_is_equal_fixed
* gst/gstplugin.c:
* gst/gstregistrypool.c:
doc fixes
Original commit message from CVS:
2005-08-24 Andy Wingo <wingo@pobox.com>
* gst/gstquery.c (gst_query_new_convert): Spew if we try to
convert a negative value. Doesn't make much sense. Mostly this is
here to force callers to ensure -1 maps to -1.
Original commit message from CVS:
* docs/pwg/advanced-types.xml:
Well done to Michael for catching my deliberate introduction
of this spelling mistake.
* gst/gstbin.c: (gst_bin_remove_func), (bin_bus_handler):
* gst/gstelement.h:
Add GST_ELEMENT_UNPARENTING to prevent races so that we can
unlink pads before removing the element from the bin.
Original commit message from CVS:
2005-08-24 Andy Wingo <wingo@pobox.com>
* gst/gst.c (parse_debug_list): Accept e.g. GST_DEBUG=4 to mean
the same thing as GST_DEBUG=*:4.
(parse_debug_level, parse_debug_category): New helper parsers.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_transform_caps),
(gst_base_transform_transform_size), (gst_base_transform_getcaps),
(gst_base_transform_setcaps), (gst_base_transform_get_unit_size),
(gst_base_transform_buffer_alloc),
(gst_base_transform_handle_buffer):
use gboolean return values and pointers to size so we can use the
full GST_BUFFER_SIZE range (guint) for buffer sizes
use GstPadDirection for transform_caps
* gst/base/gstbasetransform.h:
rename get_size to get_unit_size since that's what it is
* gst/elements/gstcapsfilter.c: (gst_capsfilter_transform_caps):
use GstPadDirection for transform_caps
* gst/gstbuffer.c: (gst_buffer_new_and_alloc):
* gst/gstutils.h:
cleanup and debugging
Original commit message from CVS:
* check/gst/gstbin.c: (GST_START_TEST):
* gst/gstbin.c: (bin_bus_handler):
* gst/gstmessage.c: (gst_message_finalize), (_gst_message_copy),
(gst_message_new), (gst_message_new_eos), (gst_message_new_error),
(gst_message_new_warning), (gst_message_new_tag),
(gst_message_new_state_changed), (gst_message_new_segment_start),
(gst_message_new_segment_done), (gst_message_new_custom):
* gst/gstmessage.h:
* tools/gst-launch.c: (event_loop):
* tools/gst-md5sum.c: (event_loop):
Change GST_MESSAGE_SRC to be a GObject rather than a GstObject, so
that applications can sensibly post custom messages with references
to their own objects.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_init),
(gst_base_transform_transform_caps),
(gst_base_transform_transform_size),
(gst_base_transform_configure_caps), (gst_base_transform_setcaps),
(gst_base_transform_get_size), (gst_base_transform_buffer_alloc),
(gst_base_transform_handle_buffer):
* gst/base/gstbasetransform.h:
Many fixes and new features added by Thomas. Can now also do
transforms with variable sizes and a custom fixate_caps function.
Original commit message from CVS:
* gst/gstbuffer.c: (gst_buffer_new_and_alloc):
Some debugging.
* gst/gstclock.h:
Cast to ClockTime before formatting to time.
* gst/gstutils.h:
Cleanups.
Original commit message from CVS:
* check/gst-libs/controller.c: (GST_START_TEST),
(gst_controller_suite):
* docs/gst/tmpl/gstcaps.sgml:
* docs/gst/tmpl/gstghostpad.sgml:
* docs/gst/tmpl/gstquery.sgml:
* docs/gst/tmpl/gstutils.sgml:
* libs/gst/controller/gst-helper.c: (gst_object_set_controller),
(gst_object_sink_values), (gst_object_get_value_arrays),
(gst_object_get_value_array):
gracefully handle helper method calls to objects that are not beeing
controlled, added test case for that
Original commit message from CVS:
* docs/gst/gstreamer-docs.sgml:
* docs/gst/gstreamer-sections.txt:
* docs/gst/gstreamer.types:
* docs/gst/tmpl/.cvsignore:
* gst/gstbin.h:
* gst/gstbus.c:
* gst/gstelement.c:
* gst/gstevent.h:
added about 100 symbols from gstreamer-unused.txt to the right sections
fixed more broken comments
added GstBus to docs
Original commit message from CVS:
* gst/gstbuffer.c: (gst_buffer_new_and_alloc):
some debugging
* gst/gstcaps.h:
whitespace fixes
* gst/gstpad.c: (gst_pad_activate_push), (gst_pad_alloc_buffer):
more debugging
* gst/gststructure.c: (gst_caps_structure_fixate_field_boolean):
* gst/gststructure.h:
add a fixate function for booleans; add a FIXME that these func
names should probably be gst_structure_fixate_*
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_transform_caps),
(gst_base_transform_handle_buffer):
Also call the transform function if we have ANY caps.
* gst/gstpipeline.c: (gst_pipeline_set_new_stream_time):
Fix debug info.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_event_handler)
Don't pretend to handle seek events if the source is not seekable
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
Remove extra parameter to debug output
* gst/base/gstbasesrc.c: (gst_base_src_send_discont),
(gst_base_src_do_seek), (gst_base_src_activate_push):
Fix seek event handling.
* gst/gstpipeline.c: (gst_pipeline_change_state):
* gst/gstqueue.c: (gst_queue_handle_sink_event),
(gst_queue_src_activate_push):
Don't start the src pad task on FLUSH_STOP if the pad
isn't linked.
Debug changes.
Original commit message from CVS:
* gst/gstcaps.c: (gst_static_caps_get), (gst_caps_to_string):
Make _static_caps_get() refcounting sane.
* gst/gstelement.c: (gst_element_set_state):
Add g_return_val_if_fail() to protect against segfaults.
Original commit message from CVS:
* check/gst/gstbin.c: (GST_START_TEST):
since we don't know when preroll is done, use refcount range
check for the sink
* gst/check/gstcheck.h:
add macro for checking refcount range
Original commit message from CVS:
* check/Makefile.am:
clean up environment for when registry gets built versus
when actual tests are run; valgrind seems to not report
leaks if GST_PLUGIN_PATH is set to some specific values
* check/gst/gstbin.c: (GST_START_TEST):
add more refcounting checks; maybe this exposes a
preroll lock bug ?
* common/check.mak:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
* gst/check/gstcheck.h:
* gst/gstbin.c: (bin_element_is_semi_sink), (gst_bin_get_state),
(gst_bin_change_state):
* gst/gstpad.c: (gst_pad_activate_push), (gst_pad_chain):
add/fix debugging/whitespace
Original commit message from CVS:
* check/gst/gstevent.c: (event_probe), (test_event),
(GST_START_TEST):
Er, don't call gst_bin_watch_for_state_change you idiot.
Original commit message from CVS:
* check/Makefile.am:
Use CHECK_CFLAGS and CHECK_LIBS
* check/gst/gstevent.c: (event_probe), (test_event),
(GST_START_TEST):
Don't leak events.
* gst/base/gstbasesrc.c: (gst_base_src_send_discont),
(gst_base_src_start), (gst_base_src_stop),
(gst_base_src_activate_push), (gst_base_src_activate_pull),
(gst_base_src_change_state):
Sprinkle gst_base_src_stop liberally around error paths to fix
problems reusing a source after failed state changes.
* gst/base/gsttypefindhelper.c: (helper_find_peek),
(helper_find_suggest), (gst_type_find_helper):
Extra debug output. Don't segfault on GST_PAD_GETRANGEFUNC = NULL
* gst/gstevent.h:
* docs/gst/tmpl/gstevent.sgml:
Migrate part of the docs from the SGML file. Wait for ensonic to
tell me how I did it wrong ;)
* tools/gst-typefind.c: (main):
Extra robustness to state changes between files.
Original commit message from CVS:
* check/Makefile.am:
don't valgrind the controller test - it's leaking - Stefan, HELP
* gst/check/gstcheck.c: (gst_check_message_error),
(gst_check_chain_func), (gst_check_setup_element),
(gst_check_teardown_element), (gst_check_setup_src_pad),
(gst_check_teardown_src_pad), (gst_check_setup_sink_pad),
(gst_check_teardown_sink_pad):
* gst/check/gstcheck.h:
add a bunch of methods to set up elements, and src and sink pads
* check/elements/fakesrc.c: (setup_fakesrc), (cleanup_fakesrc):
* check/elements/identity.c: (setup_identity), (cleanup_identity),
(GST_START_TEST):
use them
* gst/gstmessage.c:
* gst/gsttag.h:
whitespace/doc fixes
Original commit message from CVS:
make GST_ELEMENT_ERROR not do GST_ERROR_OBJECT - these errors should
be handled by the application and not always printed as well
Original commit message from CVS:
* check/Makefile.am:
set GST_TOOLS_DIR
* gst/check/gstcheck.c: (gst_check_message_error):
* gst/check/gstcheck.h:
add a fail_unless_equals_int
add fail_unless for error messages
Original commit message from CVS:
* check/gst/gstevents.c: (GST_START_TEST), (event_probe),
(test_event), (timediff), (gstevents_suite):
Should fix build on 64-bit arch's
Original commit message from CVS:
2005-08-18 Andy Wingo <wingo@pobox.com>
Make sure that when a pipeline goes to PLAYING, that data has
actually hit the sink.
* check/states/sinks.c (test_sink): A sink that doesn't get any
data shouldn't return SUCCESS for going to either PLAYING or
PAUSED. Test also the return values on the way back down.
* gst/gstelement.c (gst_element_set_state): When changing the
state of an element currently changing state asynchronously, go to
lost-state after commiting the pending state. Makes future calls
to get_state continue to return ASYNC.
* gst/base/gstbasesink.c (gst_base_sink_change_state): Return
ASYNC when going to PLAYING if we still don't have preroll, as can
happen with live sources.
Original commit message from CVS:
* docs/pwg/advanced-types.xml:
Hack long paragraph into 2 chunks as a workaround for buggy
jadetex version in sid and breezy that loops infinitely and
eats all RAM.
Original commit message from CVS:
* check/gst/gstevents.c: (GST_START_TEST), (event_probe),
(test_event), (timediff), (gstevents_suite):
Provide more error margin in clock measurements to allow for
g_get_current_time inaccuracies.
Original commit message from CVS:
* check/gst/gstevents.c: (GST_START_TEST), (event_probe),
(test_event), (timediff), (gstevents_suite):
Fix error message output so I might be able to tell why the
test works here but fails on the build farm.
Original commit message from CVS:
* check/Makefile.am:
* check/gst/gstevents.c: (GST_START_TEST), (event_probe),
(test_event), (timediff), (gstevents_suite), (main):
I wrote a test!
* docs/design/part-seeking.txt:
Spelling correction
* docs/gst/tmpl/gstevent.sgml:
Docs updates.
* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
Treat a buffer-without-newsegment the same as a receiving
a newsegment not in time format, and disable syncing to the clock
with a warning.
* gst/gstbus.c: (gst_bus_set_sync_handler):
Assert if anyone tries to replace the existing sync_handler for bus,
as only the owner should be setting it.
* gst/gstevent.h:
Have a fixed set of custom event enums with events identified by
their structure name (as in 0.8), rather than a free-for-all
allowing collisions between enum values from different plugins.
* gst/gstpad.c: (gst_pad_class_init):
Docs change.
* gst/gstqueue.c: (gst_queue_handle_sink_event):
Handle out-of-band downstream events from the sending thread.
Original commit message from CVS:
2005-08-17 Andy Wingo <wingo@pobox.com>
* gst/gstpipeline.c (gst_pipeline_change_state): Interpret
play-timeout==0 to mean no timeout at all. In that case, don't
bother with a get_state or a warning, just return directly, even
if it's ASYNC.
Original commit message from CVS:
2005-08-17 Andy Wingo <wingo@pobox.com>
* gst/base/gstbasetransform.c: Debug changes.
* gst/gstutils.h:
* gst/gstutils.c (gst_bin_watch_for_state_change): Add function to
ensure bins post state change messages. A bit of a hack but I can't
think of a way to avoid it.
* check/gst/gstbin.c (test_watch_for_state_change): Added test.
Original commit message from CVS:
2005-08-16 Andy Wingo <wingo@pobox.com>
* gst/base/gstadapter.h:
* gst/base/gstadapter.c (gst_adapter_take): New function, like
peek() but you own the data. Not terribly efficient atm.
Original commit message from CVS:
* gst/gstutils.c: (gst_element_found_tags_for_pad), (push_and_ref),
(gst_element_found_tags):
* gst/gstutils.h:
Add two utility functions for tag handling.
Original commit message from CVS:
* docs/manual/advanced-dataaccess.xml:
* docs/manual/basics-helloworld.xml:
Fix docs to use _bin_add() before _link(), which fixes the examples
with recent core versions (reported by Madhan Raj M
<raj_madan@rediffmail.com>, #313199).
Original commit message from CVS:
* check/Makefile.am:
add a .check target for running the check
* check/gst-libs/controller.c: (GST_START_TEST):
cosmetic fixups
* check/gst/gstbuffer.c: (GST_START_TEST), (gst_test_suite):
complete checks for gstbuffer; would be nice if I could get the
gcov stuff to work so I can see if I actually completed gstbuffer.c
* check/gstcheck.h:
add ASSERT_BUFFER_REFCOUNT
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gsttag.c: (_gst_tag_initialize), (gst_tag_register):
* gst/gsttag.h:
Add GST_TAG_LANGUAGE_CODE as we have in 0.8, and don't
spew out a warning if a tag that is already registered
is re-registered, unless it is re-registered with a
different type (#308438).
Original commit message from CVS:
* docs/pwg/appendix-porting.xml:
* docs/pwg/building-state.xml:
Add some paragraphs about state changes in 0.9 to the PWG
and the porting guide, in particular about the new meaning
of GST_STATE_PAUSED and how to write state change functions
with concurrent access by multiple threads in mind.
Original commit message from CVS:
* gst/gstghostpad.c: (gst_proxy_pad_set_target_unlocked),
(gst_proxy_pad_set_target), (gst_proxy_pad_get_target),
(gst_proxy_pad_dispose), (gst_ghost_pad_do_activate_push),
(gst_ghost_pad_do_link), (gst_ghost_pad_set_internal),
(gst_ghost_pad_new_notarget), (gst_ghost_pad_get_target),
(gst_ghost_pad_set_target):
Actually implement (re)setting the target on a ghostpad
as described in the docs.
Original commit message from CVS:
* gst/gst.c: (gst_init_check_with_popt_table), (init_pre):
Check whether GST_DEBUG_NO_COLOR environment variable is
set and disable coloured debug output if that is the case.
Original commit message from CVS:
* gst/base/gsttypefindhelper.c: (helper_find_peek),
(gst_type_find_helper):
The memory returned by gst_type_find_peek() needs to
stay valid until the end of a typefind function, and
typefind functions may keep results from different
offsets around, so we can't just unref the buffer from
the previous _peek(), but have to save all buffers
returned by _peek() until typefinding is done and only
free them then.
Original commit message from CVS:
* gst/base/gstadapter.h:
* gst/base/gstbasesink.h:
* gst/base/gstbasesrc.h:
* gst/base/gstbasetransform.h:
* gst/base/gstcollectpads.h:
* gst/base/gstpushsrc.h:
* gst/gstiterator.h:
Add padding to our base elements' class and instance structs and
to GstIterator (you will need to rebuild all plugins and apps!)
Original commit message from CVS:
* gst/gstbin.c: (bin_bus_handler):
Make default message forwarding from child->bus to bin->bus
threadsafe and make it not emit warnings if the parent has no bus.
Original commit message from CVS:
* gst/gstelement.c: (activate_pads):
On paused->ready, set pad->caps to NULL, as is the documented
behaviour in this state change. Fixes playback of series of
media files when visualization is enabled in Totem.
Original commit message from CVS:
added long/short desc for controller docs
added collectpads base class docs
added correct includes to base-class docs
Original commit message from CVS:
2005-08-04 Andy Wingo <wingo@pobox.com>
* gst/elements/gstcapsfilter.c: Reimplement using basetransform,
fixes buffer_alloc proxying among other things.
* gst/base/gstbasetransform.c:
* gst/base/gstbasetransform.h:
Revert patch to gstbasetransform from 7-28 removing
delay_configure.
* gst/base/gstbasetransform.h (GstBaseTransformClass.get_size):
* gst/base/gstbasetransform.c (gst_base_transform_get_size):
Semantics changed, should return not the size of the output buffer
but the byte size of a buffer with a given caps.
* gst/base/gstbasetransform.c (gst_base_transform_getcaps): Better
debug object.
(gst_base_transform_configure_caps): Don't set out_size here: (in,
out) are not the pad caps until setcaps finishes.
(gst_base_transform_buffer_alloc): Proxy the buffer_alloc for the
not-in-place case as well. Deal with changing from in-place to
not-in-place within calling pad_alloc_buffer. Still a bit
concerned about the overhead here...
Original commit message from CVS:
* gst/base/gstcollectpads.c: (gst_collectpads_finalize),
(gst_collectpads_stop):
Broadcast the condition when shutting down, to make sure we wake all
threads up. Shut down pads on finalize, for safety.
Original commit message from CVS:
2005-08-01 Jan Schmidt <thaytan@mad.scientist.com>
* gst/base/gstbasetransform.c: (gst_base_transform_init),
(gst_base_transform_handle_buffer),
(gst_base_transform_change_state):
Handle PAUSED->READY->PAUSED transition after negotiation
occurred already.
* gst/gstmessage.c: (gst_message_init):
Extra piece of debug for new messages.
Original commit message from CVS:
* gst/elements/gsttypefindelement.c:
(gst_type_find_element_have_type), (gst_type_find_element_init),
(stop_typefinding), (gst_type_find_element_handle_event),
(gst_type_find_element_chain), (gst_type_find_element_getrange):
* gst/elements/gsttypefindelement.h:
Set caps on all outgoing buffers, not just the first one.
Original commit message from CVS:
* gst/elements/gsttypefindelement.c:
(gst_type_find_element_have_type),
(gst_type_find_element_check_set_buffer_caps),
(gst_type_find_element_init), (stop_typefinding),
(gst_type_find_element_handle_event),
(gst_type_find_element_chain), (gst_type_find_element_getrange):
* gst/elements/gsttypefindelement.h:
Set caps on first outgoing buffer when we've found the type.
Original commit message from CVS:
* docs/gst/gstreamer-docs.sgml:
* docs/gst/gstreamer-sections.txt:
* docs/gst/tmpl/gstscheduler.sgml:
* docs/gst/tmpl/gstschedulerfactory.sgml:
Remove some old cruft from docs.
Original commit message from CVS:
* configure.ac:
Use AC_SYS_LARGEFILE, which will set _FILE_OFFSET_BITS=64
and _LARGEFILE_SOURCE in config.h as required. Do not
export those flags in our .pc files any longer (#142209).
Remove unused GST_DISABLE_OMEGA_COTHREADS stuff.
* gst/elements/gstfilesink.c: (gst_file_sink_class_init),
(gst_file_sink_do_seek), (gst_file_sink_event),
(gst_file_sink_get_current_offset), (gst_file_sink_render):
Redo seek/tell calls with large file support in mind; add some
debugging messages; add log message that tells us when large
file support is unavailable or not enabled for some reason.
* gst/elements/gstfilesrc.c: (gst_file_src_class_init):
Add log message that tells us when large file support
is unavailable or not enabled for some reason.
Original commit message from CVS:
* check/gst/gstghostpad.c: (GST_START_TEST), (gst_ghost_pad_suite):
Added test for removing an element with ghostpad from a bin.
Fixed test as current implementation does the right thing.
* gst/gstghostpad.c: (gst_proxy_pad_class_init),
(gst_proxy_pad_do_query_type), (gst_proxy_pad_do_event),
(gst_proxy_pad_do_query), (gst_proxy_pad_do_internal_link),
(gst_proxy_pad_do_bufferalloc), (gst_proxy_pad_do_activate),
(gst_proxy_pad_do_activatepull), (gst_proxy_pad_do_activatepush),
(gst_proxy_pad_do_chain), (gst_proxy_pad_do_getrange),
(gst_proxy_pad_do_checkgetrange), (gst_proxy_pad_do_getcaps),
(gst_proxy_pad_do_acceptcaps), (gst_proxy_pad_do_fixatecaps),
(gst_proxy_pad_do_setcaps), (gst_proxy_pad_set_target),
(gst_proxy_pad_get_target), (gst_proxy_pad_init),
(gst_proxy_pad_dispose), (gst_proxy_pad_finalize),
(gst_ghost_pad_class_init), (gst_ghost_pad_do_activate_push),
(gst_ghost_pad_do_link), (gst_ghost_pad_do_unlink),
(gst_ghost_pad_set_internal), (gst_ghost_pad_dispose),
(gst_ghost_pad_new_notarget), (gst_ghost_pad_new),
(gst_ghost_pad_get_target), (gst_ghost_pad_set_target):
* gst/gstghostpad.h:
Clean up ghostpads, remove properties for internal stuff.
Make threadsafe.
Fix refcounting.
Prepare for switching targets, not all use cases work yet.
Original commit message from CVS:
* docs/design/part-gstghostpad.txt:
Small update.
* gst/gstbin.c: (unlink_pads), (gst_bin_add_func),
(gst_bin_remove_func):
Unlinking pads while holding the bin LOCK is not a good
idea.
* gst/gstpad.c: (gst_pad_class_init),
(gst_pad_link_check_hierarchy), (gst_pad_get_caps_unlocked),
(gst_pad_accept_caps), (gst_pad_set_caps), (gst_pad_send_event):
No prob setting template after creating the pad.
Original commit message from CVS:
* gst/gstbus.c: (gst_bus_set_flushing), (gst_bus_pop),
(gst_bus_peek), (gst_bus_source_dispatch),
(gst_bus_add_watch_full), (poll_handler), (poll_timeout),
(poll_destroy), (poll_destroy_timeout), (gst_bus_poll):
gst_bus_poll may be called from other threads. Handle
this nicely by not making poll_data disappear off the
stack once gst_bus_poll returns.
gst_bus_peek now increments the refcount on the returned
message.
Original commit message from CVS:
* docs/design/part-gstghostpad.txt:
Overview of current GhostPad datastructures and use
cases for changing the target.
Original commit message from CVS:
* check/gst/gstbin.c: (GST_START_TEST), (gst_bin_suite):
Added checks for hierarchy consistency whan adding linked
elements to bins.
* check/gst/gstelement.c: (GST_START_TEST), (gst_element_suite):
Added check to test element scheduling without bin/pipeline.
* check/pipelines/simple_launch_lines.c: (GST_START_TEST):
First add elements to bin, then link.
* gst/gstbin.c: (unlink_pads), (gst_bin_add_func),
(gst_bin_remove_func):
Unlink pads from elements added/removed from bin to maintain
hierarchy consistency.
Original commit message from CVS:
* check/gst/gstghostpad.c: (GST_START_TEST), (gst_ghost_pad_suite):
Added some more tests for wrong hierarchy
* docs/design/part-overview.txt:
Some updates.
* gst/gstbin.c: (gst_bin_remove_func), (gst_bin_dispose):
Cleanups.
* gst/gstelement.c: (gst_element_remove_pad), (gst_element_seek),
(gst_element_dispose):
Some more cleanups.
* gst/gstpad.c: (gst_pad_link_check_compatible_unlocked),
(gst_pad_link_check_hierarchy), (gst_pad_link_prepare),
(gst_pad_get_caps_unlocked), (gst_pad_accept_caps),
(gst_pad_set_caps), (gst_pad_send_event):
Check for correct hierarchy when linking pads. Moving to
strict requirement for ghostpads when linking elements in
different bins.
* gst/gstpad.h:
Clean ups. Added WRONG_HIERARCHY return value.
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packet_from_event),
(gst_dp_event_from_packet):
Fix serialization of seek events.
Original commit message from CVS:
* gst/gstpad.c: (fixate_value), (gst_pad_default_fixate),
(gst_pad_fixate_caps):
Implement default fixation once again, so that gst_pad_fixate()
actually does anything at all. This probably needs to be some
sort of a last resort, and use profile-based fixation first, but
since that doesn't exist yet, this is the best we have. Fixes
visualization in Totem.
Original commit message from CVS:
* docs/design/part-seeking.txt:
Some small additions.
* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_get_times), (gst_base_sink_do_sync),
(gst_base_sink_activate_push), (gst_base_sink_activate_pull):
* gst/base/gstbasesink.h:
discont values are gint64, handle the math correctly.
* gst/base/gstbasesrc.c: (gst_base_src_loop):
Make the basesrc report error if the source pad is not linked.
* gst/gstqueue.c: (gst_queue_link_src), (gst_queue_chain),
(gst_queue_loop), (gst_queue_handle_src_query),
(gst_queue_src_activate_push):
Make queue collect data even if the srcpad is not linked.
Start pushing out data as soon as it is linked.
* gst/gstutils.c: (gst_element_unlink), (gst_flow_get_name):
* gst/gstutils.h:
Added gst_flow_get_name() to ease error reporting.
Original commit message from CVS:
* docs/manual/appendix-porting.xml:
* docs/pwg/appendix-porting.xml:
Document new-pad/state-change signal renames and the FixedList
type rename.
Original commit message from CVS:
* gst/gstinfo.c: (_gst_debug_nameof_funcptr),
(_gst_debug_register_funcptr):
* gst/gstinfo.h:
Fix illegal cast on some platforms (#309253).
Original commit message from CVS:
* gst/gstmessage.c: (gst_message_new_custom):
* gst/gstmessage.h:
Add _new_custom, make _new_application a macro to _new_custom.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_init),
(gst_base_src_do_seek), (gst_base_src_loop), (gst_base_src_start):
* gst/base/gstbasesrc.h:
Add a gboolean to decide when to push out a discont.
* gst/gstqueue.c: (gst_queue_handle_sink_event), (gst_queue_chain),
(gst_queue_loop), (gst_queue_handle_src_query),
(gst_queue_sink_activate_push), (gst_queue_src_activate_push),
(gst_queue_set_property), (gst_queue_get_property):
Some cleanups.
* tests/threadstate/threadstate1.c: (main):
Make a thread test compile and run... very silly..
Original commit message from CVS:
* docs/pwg/advanced-clock.xml:
* docs/pwg/appendix-porting.xml:
* docs/pwg/intro-preface.xml:
* docs/pwg/other-base.xml:
* docs/pwg/other-manager.xml:
* docs/pwg/other-nton.xml:
* docs/pwg/other-ntoone.xml:
* docs/pwg/other-oneton.xml:
* docs/pwg/pwg.xml:
Document base classes, update sections of n-to-1 and 1-to-n (muxer,
demuxer), remove n-to-n (was never written), fix some code examples
and links and update the porting section to include all this.
Original commit message from CVS:
* gst/gstqueue.c: (gst_queue_init), (gst_queue_handle_sink_event),
(gst_queue_chain), (gst_queue_loop), (gst_queue_handle_src_event),
(gst_queue_handle_src_query), (gst_queue_sink_activate_push),
(gst_queue_src_activate_push), (gst_queue_change_state),
(gst_queue_get_property):
* gst/gstqueue.h:
Propagate GstFlowReturn more intelligently upstream and output
an ERROR/EOS when streaming stopped due to fatal error.
Original commit message from CVS:
* tools/gst-launch.c: (check_intr), (event_loop), (main):
Don't block forever for the state change to complete, the
pipeline already did with a sensible timeout.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_get_range):
Make sure we never call the create function is we
got deactivated.
Original commit message from CVS:
* docs/design/part-clocks.txt:
* docs/design/part-events.txt:
* gst/base/gstbasesrc.c: (gst_base_src_do_seek):
Small docs updates.
Only update the seeking values when we are not
busy streaming.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_loop),
(gst_base_src_activate_push):
Send discont event from the loop function, as pads
aren't activated yet in the activate_push handler.
* gst/gstbin.c: (bin_bus_handler):
Don't leak element name.
Original commit message from CVS:
Removed plugable schedulers.
Removed Scheduler/Manager from elements.
Removed gsttypes.h, rearranged includes.
Removed dependency pad<->element, element<>pipeline, and
various others, fix includes.
implement gst_pad_get_parent() with gst_object_get_parent()
Make GstTask sefcontained.
Fix _get_state() on GstBin, it did not return ASYNC with a 0
timeout.
Fix endless loop in iterator_fold_with_resync.
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.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_event), (gst_base_sink_get_times),
(gst_base_sink_do_sync), (gst_base_sink_change_state):
* gst/base/gstbasesink.h:
Store and use discont values when syncing buffers as described
in design docs.
* gst/base/gstbasesrc.c: (gst_base_src_send_discont),
(gst_base_src_do_seek), (gst_base_src_loop), (gst_base_src_start),
(gst_base_src_activate_push):
Push discont event when starting.
* gst/elements/gstidentity.c: (gst_identity_transform):
Small cleanups.
* gst/gstbin.c: (gst_bin_change_state):
Small cleanups in base_time distribution.
* gst/gstelement.c: (gst_element_set_base_time),
(gst_element_get_base_time), (gst_element_change_state):
* gst/gstelement.h:
Added methods for the base_time of the element.
Some MT fixes.
* gst/gstpipeline.c: (gst_pipeline_send_event),
(gst_pipeline_change_state), (gst_pipeline_set_new_stream_time),
(gst_pipeline_get_last_stream_time):
* gst/gstpipeline.h:
MT fixes.
Handle seeking as described in design doc, remove stream_time
hack.
Cleanups clock and stream_time selection code. Added accessors
for the stream_time.
Original commit message from CVS:
* check/gst/gstbin.c: (GST_START_TEST):
Make elements silent as the deep_notify refs the
parent, which might make the test fail.
* gst/gstghostpad.c: (gst_ghost_pad_do_activate_push):
Don't hold the lock for too long.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_default_negotiate):
Don't unref the caps we passed to gst_caps_make_writable() after
passing them. gst_caps_make_writable() will do that for us.
Original commit message from CVS:
2005-07-15 Andy Wingo <wingo@pobox.com>
* gst/elements/gstidentity.c (marshal_VOID__MINIOBJECT): Write our
own marshalling function for the handoff signal. Properly type the
buffer as a buffer. Fixes some warnings. Should do a more general
solution.
(gst_identity_class_init): Plug into the right marshaller.
Original commit message from CVS:
2005-07-15 Andy Wingo <wingo@pobox.com>
* tools/gst-typefind.c: Update, add copyright block.
* gst/base/gstbasesrc.c (gst_base_src_default_negotiate):
Normalize and truncate caps before fixation.
* gst/gstcaps.h:
* gst/gstcaps.c (gst_caps_truncate): New function, destructively
discards all but the first structure from its argument.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_init),
(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_handle_buffer), (gst_base_transform_getrange),
(gst_base_transform_chain), (gst_base_transform_change_state),
(gst_base_transform_set_passthrough),
(gst_base_transform_is_passthrough):
* gst/base/gstbasetransform.h:
Make passthrough work using the bufferpools.
Changed API a bit, subclasses have to write into a buffer
provided by the base class.
More debug info in nego functions.
* gst/elements/gstidentity.c: (gst_identity_init),
(gst_identity_transform):
Port to new base class.
Original commit message from CVS:
* gst/gstmessage.c: (gst_message_new_state_changed):
* tools/gst-launch.c: (event_loop), (main):
Totally dump messages in -launch with the -m option.
Fix message name for State messages,
Original commit message from CVS:
2005-07-13 Andy Wingo <wingo@pobox.com>
* gst/base/gstbasesrc.c (gst_base_src_start): Post an error if the
source couldn't negotiate.
Original commit message from CVS:
* testsuite/caps/Makefile.am:
* testsuite/caps/value_compare.c:
* testsuite/caps/value_intersect.c:
* check/gst/gstvalue.c: (GST_START_TEST), (gst_value_suite):
move two testsuite apps over to the check dir
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_setcaps):
Added more debug info in the negotiate process.
* gst/gstmessage.h:
Prepare for segment playback.
* gst/gstpad.c: (gst_pad_accept_caps), (gst_pad_set_caps):
Better debugging.
* gst/gstutils.c:
Some more docs.
* tools/gst-launch.c: (main):
NULL pipeline on errors.
Original commit message from CVS:
2005-07-12 Andy Wingo <wingo@pobox.com>
* gst/gstbuffer.c (_gst_buffer_copy): Copy the buffer whether or
not it comes from a malloc region. Make sure our copy gets freed.
Original commit message from CVS:
* check/Makefile.am:
add two more tests for valgrinding
* check/gst/gstvalue.c: (GST_START_TEST):
test refcount of deserialized buffer, found a leak
* docs/gst/gstreamer-docs.sgml:
* docs/gst/gstreamer-sections.txt:
* docs/gst/gstreamer.types:
* docs/gst/tmpl/gstminiobject.sgml:
add miniobject to docs
* gst/gstminiobject.c:
add some docs
* gst/gstvalue.c: (gst_value_deserialize_buffer),
(gst_string_unwrap):
fix a hard-to-find invalid write for one of the tests
fix a leak for deserialized buffers
Original commit message from CVS:
* docs/pwg/advanced-events.xml:
* docs/pwg/advanced-request.xml:
* docs/pwg/advanced-scheduling.xml:
* docs/pwg/appendix-porting.xml:
* docs/pwg/building-boiler.xml:
* docs/pwg/intro-preface.xml:
* docs/pwg/other-ntoone.xml:
Rewrite scheduling-chapter for scheduling model in 0.9. Add lots
of example code and explanation for pad activation, loop() and
getrange() functions and a bit more. Remove old comments pointing
to loop-functions.
* examples/pwg/Makefile.am:
Add loop/getrange examples.
Original commit message from CVS:
* check/gst/gstbin.c: (pop_messages), (GST_START_TEST),
(gst_bin_suite):
add more things to check
* gst/gstbin.c: (gst_bin_change_state), (bin_bus_handler):
* gst/gstelement.c:
more debug
Original commit message from CVS:
* check/gst/gstbin.c: (START_TEST), (gst_bin_suite):
add test for state change message on a bin
* check/gst/gstelement.c: (START_TEST), (gst_element_suite):
add another test
* gst/gstbin.c: (gst_bin_init):
* gst/gstbus.c: (gst_bus_init), (gst_bus_post):
* gst/gstelement.c: (gst_element_post_message),
(gst_element_set_state):
* gst/gstelementfactory.c: (gst_element_factory_create):
* gst/gstmessage.c: (gst_message_new):
* gst/gstscheduler.c:
various debugging additions and cleanups
Original commit message from CVS:
* configure.ac:
make GST_ERROR_CFLAGS overridable and re-enable Werror
* docs/faq/cvs.xml:
add a note about error CFLAGS
* docs/gst/tmpl/gstfakesrc.sgml:
* gst/elements/gstfakesrc.c:
comment out some unused code
* gst/gst.c: (split_and_iterate):
* gst/registries/gstlibxmlregistry.c: (load_pad_template),
(load_feature):
plug some memleaks
Original commit message from CVS:
* gst/schedulers/threadscheduler.c: (gst_thread_scheduler_func),
(gst_thread_scheduler_dispose):
Unlock the STREAM_LOCK completely.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_base_src_get_range),
(gst_base_src_default_negotiate), (gst_base_src_negotiate):
Allow subclasses to implement their own negotiation.
Original commit message from CVS:
* docs/design/part-gstbin.txt:
* docs/design/part-gstpipeline.txt:
Update design notes to reflect the movement of
responsibility for bus handling from GstPipeline to
GstBin
Original commit message from CVS:
* docs/pwg/building-filterfactory.xml:
* docs/pwg/pwg.xml:
Remove never-written filter-factory chapter; I'll add the various
base classes to part 4 ("other element types") later on.
Original commit message from CVS:
* docs/pwg/advanced-negotiation.xml:
* docs/pwg/building-boiler.xml:
* docs/pwg/building-pads.xml:
* docs/pwg/pwg.xml:
* examples/pwg/Makefile.am:
Add a chapter on caps negotiation, simplify the original code
samples a bit w.r.t. caps negotiation, add link to the advanced
section. Add a bunch of examples showing different use cases of
different types of caps negotiation. Upstream renegotiation isn't
fully documented yet since nobody knows how that works.
Original commit message from CVS:
* check/gst/gstpad.c:
* check/gstcheck.c:
* gst/gstpad.c: (gst_pad_get_internal_links_default):
if pad has no parent, return NULL as list of internal links
Original commit message from CVS:
2005-07-05 Andy Wingo <wingo@pobox.com>
* gst/base/gstbasetransform.c (gst_base_transform_setcaps):
Default to returning TRUE for the case when tranform_caps returns
a fixed caps, like for identity or volume.
Original commit message from CVS:
2005-07-05 Andy Wingo <wingo@pobox.com>
* check/gst/gstbus.c (pound_bus_with_messages):
* check/gst/gstmessage.c (START_TEST):
* check/pipelines/simple_launch_lines.c (got_handoff): Application
message API change.
* gst/base/gstbasetransform.c (gst_base_transform_setcaps): More
logic weaks here: always run transform_caps, trying passthrough
operation only if the original caps intersects with the transform.
* gst/gstpad.c (gst_pad_link_check_compatible_unlocked): Debug
source and sink caps.
* gst/base/gstbasetransform.c (gst_base_transform_getcaps):
Intersect the peer caps with the pad template before going into
transform_caps.
(gst_base_transform_transform_caps): More debugging.
* gst/gstmessage.h (gst_message_new_application): Take a GstObject
src argument.
Original commit message from CVS:
* gst/gstutils.c:
* gst/gstutils.h:
(gst_pad_add_*_probe): now returns the signal id for better wrapping
in bindings.
Original commit message from CVS:
2005-07-01 Andy Wingo <wingo@pobox.com>
* tests/network-clock.scm: Commentary update.
* gst/elements/gstidentity.c (PROP_DUPLICATE): Gone daddy gone.
Didn't really make sense, not implementable with basetransform,
etc.
(gst_identity_transform): Unref inbuf via make_writable. Feeble
attempt at implementing the sync property, needs an unlock method.
* gst/base/gstbasetransform.c (gst_base_transform_transform_caps):
New func, by default returns the same caps (the identity
transformation).
(gst_base_transform_getcaps): Uses transform_caps to return
something sensible.
(gst_base_transform_setcaps): Complicated logic to get caps on
both pads, even if they are different, and to call set_caps once
for every time both pads get their caps set.
(gst_base_transform_handle_buffer): Give the ref to the transform
function. Allows in-place modification of the buffer.
* gst/base/gstbasetransform.h (transform_caps): New class method.
Given caps on one side, what can I do on the other.
(set_caps): Take two caps, one for each side of the element.
* gst/gstpad.h:
* gst/gstpad.c (gst_pad_fixate_caps): Change prototype to modify
caps in place. This is safe because we can check the mutability of
the caps, and a good idea because fixate functions are just called
as a matter of last resort. (Not actually implemented.)
(gst_pad_set_caps): If the caps we're setting is actually the same
as the existing pad caps, just update the pointer without calling
setcaps. Assert that caps is either NULL or fixed, as per the
docs.
* gst/gstghostpad.c: Update for fixate changes.
Original commit message from CVS:
2005-07-02 Jan Schmidt <thaytan@mad.scientist.com>
* gst/gstpad.c: (gst_pad_emit_have_data_signal):
Put the mini_object into GValue as a mini_object,
not a gpointer.
Original commit message from CVS:
* docs/manual/advanced-autoplugging.xml:
* docs/manual/appendix-checklist.xml:
* docs/manual/appendix-integration.xml:
* docs/manual/highlevel-components.xml:
Fix playbin/decodebin examples, update docs a bit, mention bus
instead of signals in various places, mention kmplayer and
kaffeine since they have a working GStreamer backend in the KDE
section.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_preroll_queue_empty),
(gst_base_sink_preroll_queue_flush), (gst_base_sink_handle_object),
(gst_base_sink_change_state):
* gst/base/gstbasesink.h:
Some tweaks, only EOS and a buffer complete a preroll.
Original commit message from CVS:
2005-06-30 Andy Wingo <wingo@pobox.com>
* gst/gstghostpad.c (gst_ghost_pad_do_activate_push): Proxy
activate_push down to the internal pad as well.
Original commit message from CVS:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* gst/gsttaginterface.c:
Some documentation fixes (#307394 and #307397).
Original commit message from CVS:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* gst/gstvalue.c: (gst_value_intersect_list):
Fix memleak (#309125).
Original commit message from CVS:
* docs/manual/advanced-dataaccess.xml:
Fix fakesrc example to compile; doesn't work, bug somewhere...?
* docs/manual/basics-pads.xml:
Add reference for filtered caps to above chapter.
Original commit message from CVS:
* gst/gstbin.c: (clear_queue), (remove_all_from_queue),
(gst_bin_change_state):
Lame attempt at making the state change function a bit
more readable.
Original commit message from CVS:
* docs/design/part-clocks.txt:
* docs/design/part-element-sink.txt:
* docs/design/part-events.txt:
* docs/design/part-preroll.txt:
* docs/design/part-states.txt:
Some more tweeks and additions to the docs.
Original commit message from CVS:
* gst/gstpad.c: (_gst_do_pass_data_accumulator),
(silly_return_true_function), (gst_pad_class_init),
(gst_pad_emit_have_data_signal), (gst_pad_chain), (gst_pad_push),
(gst_pad_get_range), (gst_pad_pull_range), (gst_pad_push_event),
(gst_pad_send_event):
Fix accumulator, add default value by using _emitv() instead
of _emit() for signal emission.
Original commit message from CVS:
* docs/manual/advanced-dataaccess.xml:
* examples/manual/Makefile.am:
Add probe example.
* gst/gstpad.c: (_gst_do_pass_data_accumulator):
Make work (??).
Original commit message from CVS:
* gst/elements/gstfilesink.c: (gst_filesink_render):
Simplify code so that we don't have to handle short
writes and return GST_FLOW_ERROR if an error occured.
Original commit message from CVS:
* gst/gstelementfactory.c:
* gst/gstutils.h:
* gst/gstutils.c:
Moved gst_element_factory_can_[sink|src]_caps() to gstutils and added
the definition to the header file.
Original commit message from CVS:
2005-06-29 Andy Wingo <wingo@pobox.com>
* docs/gst/Makefile.am (scan-build.stamp): Totally only check
plugins from the source directory.
Original commit message from CVS:
* check/Makefile.am:
* gst/gst.c: (add_path_func), (init_pre):
* gst/gstregistry.c: (gst_registry_add_path):
add A GST_PLUGIN_PATH_ONLY env var; if it is set, it will
only scan the GST_PLUGIN_PATH locations, and not add
system locations
Original commit message from CVS:
* docs/manual/advanced-autoplugging.xml:
* docs/manual/mime-world.fig:
Try to get autoplugging working, fix type detection. Fix text
in hello-world image.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_change_state):
Small debug line.
* gst/gstclock.h:
map SIGNAL and BROADCAST to the right function.
* gst/gstobject.h:
Remove redundant braces.
* gst/gstpad.c: (gst_pad_set_caps):
Don't call setcaps function when reseting caps to NULL.
* gst/gstsystemclock.c: (gst_system_clock_dispose),
(gst_system_clock_async_thread), (gst_system_clock_id_wait_async),
(gst_system_clock_id_unschedule):
Use BROADCAST as this is what we do.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object):
We are actually prerolling before commiting the state
change.
Original commit message from CVS:
* docs/manual/advanced-clocks.xml:
* docs/manual/advanced-interfaces.xml:
* docs/manual/advanced-metadata.xml:
* docs/manual/advanced-position.xml:
* docs/manual/advanced-schedulers.xml:
* docs/manual/advanced-threads.xml:
* docs/manual/appendix-porting.xml:
* docs/manual/basics-bins.xml:
* docs/manual/basics-bus.xml:
* docs/manual/basics-elements.xml:
* docs/manual/basics-helloworld.xml:
* docs/manual/basics-pads.xml:
* docs/manual/highlevel-components.xml:
* docs/manual/manual.xml:
* docs/manual/thread.fig:
Update (until threads/scheduling) Application Development Manual;
remove GstThread, add GstBus, add simple porting checklist, add
documentation for tag writing, clocks, make all examples until this
part compile and run.
* examples/manual/Makefile.am:
Update from changes to Application Development Manual; add bus
example, remove thread example.
Original commit message from CVS:
* gst/gstbus.c: (gst_bus_post), (gst_bus_have_pending),
(gst_bus_set_flushing), (gst_bus_pop), (gst_bus_peek),
(gst_bus_source_dispatch):
Add debugging messages.
Make internal methods static.
Handle the case where the bus is flushed in the handler.
* gst/gstelement.c: (gst_element_get_bus):
Fix refcount in _get_bus();
* gst/gstpipeline.c: (gst_pipeline_change_state),
(gst_pipeline_get_clock_func):
Clock refcounting fixes.
Handle the case where preroll timed out more gracefully.
* gst/gstsystemclock.c: (gst_system_clock_dispose):
Clean up the internal thread in dispose. This is needed
for subclasses that actually get disposed.
* gst/schedulers/threadscheduler.c:
(gst_thread_scheduler_class_init), (gst_thread_scheduler_func),
(gst_thread_scheduler_dispose):
Free thread pool in dispose.
Original commit message from CVS:
2005-06-28 Andy Wingo <wingo@pobox.com>
* tests/network-clock-utils.scm (debug, print-event): New utils.
* tests/network-clock.scm (*debug*, *with-graph*): New parameters.
(*packet-loss*): Unified loss probability.
(network-time): Report out-of-band events.
* tests/plot-data: Add support for out-of-band events. Hack it
into this script instead of passing it down the pipe; should fix
this later.
Original commit message from CVS:
2005-06-28 Andy Wingo <wingo@pobox.com>
* tests/network-clock.scm (*timeout*, *send-loss*, *recv-loss*):
New parameters, simulate network packet loss.
* tests/network-clock-utils.scm: Initialize the RNG.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_basesink_preroll_queue_flush),
(gst_basesink_event), (gst_basesink_deactivate):
Flushing the preroll queue always needs to unlock the waiters.
Original commit message from CVS:
* gst/gstpipeline.c: (gst_pipeline_send_event):
Wheen a seek was successful on a pipeline, set the stream_time to the
seek offset in order to have a synchronized stream_time.
Original commit message from CVS:
* gst/gstghostpad.c: (gst_proxy_pad_do_bufferalloc),
(gst_proxy_pad_do_getrange), (gst_proxy_pad_do_checkgetrange),
(gst_proxy_pad_do_getcaps), (gst_proxy_pad_do_acceptcaps),
(gst_proxy_pad_do_fixatecaps):
Call wrapper function instead of just calling the function
pointers. This takes care of any locking and whatmore.
Original commit message from CVS:
2005-06-28 Andy Wingo <wingo@pobox.com>
* *.c: Don't cast to GST_OBJECT when reffing or unreffing. Large
source-munging commit!!!
Original commit message from CVS:
2005-06-28 Andy Wingo <wingo@pobox.com>
* gst/gstobject.c (gst_object_unref, gst_object_ref)
(gst_object_sink): Take gpointer arguments, not GstObject --
avoids casts. Like GLib.
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.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_get_state), (gst_bin_iterate_state_order),
(gst_bin_change_state):
Cleanup the get_state() function a little, make sure it
iterates the same set of elements.
Added stub iterate_state_order().
Original commit message from CVS:
2005-06-27 Andy Wingo <wingo@pobox.com>
* docs/design/part-activation.txt: Notes on how activation should
work -- not quite implemented yet.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_basesink_preroll_queue_empty),
(gst_basesink_handle_object), (gst_basesink_event),
(gst_basesink_do_sync), (gst_basesink_handle_event),
(gst_basesink_change_state):
* gst/gsttask.h:
Right, two problems here: ghostpads don't take locks and
glib _rec_mutex_lock_full() with depth==0 still locks.
Catch illegal locking and g_warn them.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_basesink_set_property),
(gst_basesink_preroll_queue_empty),
(gst_basesink_preroll_queue_flush), (gst_basesink_handle_object),
(gst_basesink_event), (gst_basesink_do_sync),
(gst_basesink_handle_event), (gst_basesink_handle_buffer),
(gst_basesink_chain), (gst_basesink_loop), (gst_basesink_activate),
(gst_basesink_change_state):
Reworked the base sink, handle event and buffer serialisation
correctly and removed possible deadlock.
Handle EOS correctly.
Original commit message from CVS:
* gst/gstpipeline.c: (is_eos), (pipeline_bus_handler),
(gst_pipeline_change_state):
* tools/gst-launch.c: (check_intr), (event_loop), (main):
Allow elements to post EOS in the state change function.
Fix up -launch, make it exit the poll loop when the
pipeline actually changed state.
Fix up warning parsing in -launch.
Original commit message from CVS:
* gst/elements/gsttee.c: (gst_tee_chain), (gst_tee_loop),
(gst_tee_sink_activate):
Core takes STREAM_LOCK for us now.
Original commit message from CVS:
* gst/gstelement.c: (gst_element_get_state_func),
(gst_element_set_state):
* gst/gstelement.h:
* gst/gstmessage.c: (gst_message_parse_error),
(gst_message_parse_warning):
Keep track of current target state while performing a state
change so that subclasses can do something interesting.
Fix parsing of warning/error messages when GError is NULL.
Original commit message from CVS:
* gst/gstelement.c: (gst_element_get_state_func),
(gst_element_set_state), (gst_element_change_state):
When the state did not change, also report NO_PREROLL
when it matters.
Original commit message from CVS:
* gst/schedulers/threadscheduler.c:
(gst_thread_scheduler_task_start),
(gst_thread_scheduler_task_pause), (gst_thread_scheduler_func):
Ref the task before pushing it on the threadpool. This
makes sure that we have a ref when the threadfunction is
actually called.
Original commit message from CVS:
2005-06-23 Andy Wingo <wingo@pobox.com>
* gst/base/gstbasesrc.c (gst_basesrc_get_range): Check if the
offset is greater than the file's size.
Original commit message from CVS:
2005-06-23 Andy Wingo <wingo@pobox.com>
* gst/gstobject.h (GST_CLASS_LOCK, GST_CLASS_TRYLOCK)
(GST_CLASS_UNLOCK, GST_CLASS_GET_LOCK, GstObjectClass)
* gst/gstobject.c (gst_object_class_init): Make the class lock
recursive. Wim won't let me drop deep_notify. Decodebin works
again, whoopdy doo.
Original commit message from CVS:
2005-06-23 Andy Wingo <wingo@pobox.com>
* gst/gstghostpad.c (on_int_notify): Catches notify::caps on the
internal pad, and hacks accordingly. Doesn't do it on the target
pad because we change its caps. Probably catches all cases of
interest tho.
(gst_ghost_pad_set_property): Connect to notify::caps as
appropritate.
Original commit message from CVS:
2005-06-23 Andy Wingo <wingo@pobox.com>
* tests/network-clock.scm (plot-simulation): Pipe data to the
elite python skript.
* tests/network-clock-utils.scm (define-parameter): New macro,
defines a parameter that can be set via the command line.
(set-parameter!, parse-parameter-arguments): Command line args
parser.
* tests/plot-data: Simple matplotlib-based plotter, takes input on
stdin.
Original commit message from CVS:
2005-06-23 Jan Schmidt <thaytan@mad.scientist.com>
* gst/elements/gsttypefindelement.c:
(gst_type_find_element_handle_event):
Don't restart typefinding on a discont.
* gst/gstelement.c: (gst_element_set_state):
Debug spelling fix.
* gst/gstpad.c: (gst_pad_set_active), (gst_pad_send_event):
Allow changing mode of an active pad.
Debug output fixes.
* gst/registries/gstlibxmlregistry.c: (load_feature):
Don't cast a static pad template to a normal pad template.
Original commit message from CVS:
* check/gst/gstvalue.c: (START_TEST), (gst_value_suite):
* gst/gstvalue.c: (gst_value_deserialize_int_helper):
remove gst_strtoll completely, since it didn't actually do
anything more than what g_ascii_strtoull already does.
check for range errors when deserializing
do a cast for the unsigned cases; but further fixing needs
a decision on what the interpretation of "(int)" and
deserialization should be for values that fall outside the
type's boundaries (ie, refuse, or interpret as casting)
Original commit message from CVS:
Added support for live sources and other elements that
cannot do preroll.
Updated design docs, added live-source design doc.
Implemented live source functionality in basesrc
Fix error condition in _bin_get_state()
Implement live source handling in -launch.
Added check for live sources.
Fixed case in GstBin where elements were changed state
multiple times.
Original commit message from CVS:
2005-06-23 Andy Wingo <wingo@pobox.com>
* gst/gstpad.c (gst_pad_set_caps): Remove needless refs,
gst_caps_replace takes care of this for us.
Original commit message from CVS:
2005-06-23 Andy Wingo <wingo@pobox.com>
* gst/gstghostpad.c (gst_proxy_pad_do_setcaps): Call the full
gst_pad_set_caps on the target, not just its setcaps() function.
Original commit message from CVS:
2005-06-23 Andy Wingo <wingo@pobox.com>
* tests/network-clock.scm:
* tests/network-clock-utils.scm: A network clock simulator.
Something of an algorithmic testbed before doing something in C.
Original commit message from CVS:
* check/Makefile.am:
* check/gst/capslist.h:
copy over from 0.8, and add two with bitmasks specified with
(int) 0xFF...
* check/gst/gstcaps.c: (START_TEST), (gst_caps_suite):
add test to parse everything from capslist.h
* check/gst/gststructure.c: (START_TEST), (gst_value_suite),
(main):
add test for structure deserialization
* check/gst/gstvalue.c: (START_TEST), (gst_value_suite):
add tests for deserialization of strings to int types
* gst/gststructure.c: (gst_structure_nth_field_name):
* gst/gststructure.h:
add a way to get the name of a field referenced by index
* gst/gstvalue.c: (gst_value_deserialize_int_helper):
instead of checking if the resulting long long lies between
min and max, we check if the long long would fit into
a number of bytes for the final type.
This fixes cases where a string represents 2^32 - 1, which
when cast to int would be the (valid) -1, but is bigger than
G_MAXINT
Original commit message from CVS:
* check/gst/gstvalue.c: (START_TEST):
* gst/gstvalue.c: (gst_value_deserialize):
return long long, not int, so gint64 deserialization actually
works. Is there any flag that makes the compiler check this ?
Fixes#308559
Original commit message from CVS:
* check/gst/.cvsignore:
* check/gst/gstvalue.c: (START_TEST), (gst_value_suite):
add a test deserializing int64, and comment part out because
it fails, yay !
Original commit message from CVS:
* gst/gstpad.c:
Small doc updates.
* gst/gstvalue.c: (gst_value_compare_buffer),
(gst_value_serialize_buffer), (gst_value_deserialize_buffer),
(gst_value_compare_flags), (gst_value_serialize_flags),
(gst_value_deserialize_flags), (_gst_value_initialize):
Fix serialisation of buffers, they are not boxed types anymore
Original commit message from CVS:
2005-06-20 Andy Wingo <wingo@pobox.com>
* docs/random/wingo/porting-plugins-to-0.9: A pitiful document I
will be adding to later.
Original commit message from CVS:
2005-06-20 Andy Wingo <wingo@pobox.com>
* gst/gstsystemclock.c (gst_system_clock_init): Unlock the clock
if its socks fill with rocks.
(gst_system_clock_obtain): Set the name on object construction.
Avoid double-checked locking.
Original commit message from CVS:
* check/gstcheck.h:
add macros for checking refcounts on objects and caps
* check/gst/gstpad.c: (START_TEST), (gst_pad_suite):
add some more unit tests
* gst/gstpad.c: (gst_pad_link_check_compatible_unlocked),
(gst_pad_link_prepare), (gst_pad_link), (gst_pad_get_allowed_caps):
fix leaked refcounts (I hope :)) so unittest works
* gst/gstpad.h:
whitespace removal
Original commit message from CVS:
2005-06-17 Andy Wingo <wingo@pobox.com>
* gst/base/gstbasesink.c (gst_basesink_event): Only wait for the
clock and post an EOS message if we come out of finish_preroll in
the playing state.
Original commit message from CVS:
* gst/elements/gstcapsfilter.c: (gst_capsfilter_class_init),
(gst_capsfilter_set_property): Allow NULL as possible value
for filter_caps property, indicating GST_CAPS_ANY.
Original commit message from CVS:
2005-06-08 Andy Wingo <wingo@pobox.com>
* gst/gstutils.c: RPAD fixes all around.
(gst_element_link_pads): Refcounting fixes.
* tools/gst-inspect.c:
* tools/gst-xmlinspect.c:
* parse/grammar.y:
* gst/base/gsttypefindhelper.c:
* gst/base/gstbasesink.c:
* gst/gstqueue.c: RPAD fixes.
* gst/gstghostpad.h:
* gst/gstghostpad.c: New ghost pad implementation as full proxy
pads. The tricky thing is they provide both source and sink
interfaces, since they proxy the internal pad for the external
pad, and vice versa. Implement with lower-level ProxyPad objects,
with the interior proxy pad as a child of the exterior ghost pad.
Should write a doc on this.
* gst/gstpad.h: s/RPAD/PAD/, s/RealPad/Pad/.
(gst_pad_set_name, gst_pad_set_parent): Macros removed, use
gst_object API.
* gst/gstpad.c: Big changes. No more stub base GstPad, now all
pads are real pads. No ghost pads in this file. Not documenting
the myriad s/RPAD/PAD/ and REALIZE fixes.
(gst_pad_class_init): Add properties for "direction" and
"template". Both are construct-only, so they can't change during
the life of the pad. Fixes properly deriving from GstPad.
(gst_pad_custom_new, gst_pad_custom_new_from_template): Gone. For
derived objects, just set properties when creating the objects via
g_object_new.
(gst_pad_get_parent): Implement as a function, return NULL if the
parent is not an element.
(gst_pad_get_real_parent, gst_pad_add_ghost_pad)
(gst_pad_remove_ghost_pad, gst_pad_realize): Removed.
* gst/gstobject.c (gst_object_class_init): Make name a construct
property. Don't set it in the object init.
* gst/gstelement.c (gst_element_add_pad): Don't allow adding pads
with UNKNOWN direction.
(gst_element_add_ghost_pad): Remove non-orthogonal API. Replace
with gst_element_add_pad (e, gst_ghost_pad_new (name, pad)).
(gst_element_remove_pad): Remove ghost-pad special cases.
(gst_element_pads_activate): Remove rpad cruft.
* gst/gstbin.c (gst_bin_change_state): Use gst_pad_get_parent to
catch the pad's-parent-not-an-element case.
* gst/gst.h: Include gstghostpad.h.
* gst/gst.c (init_post): No more real, ghost pads.
* gst/Makefile.am: Add gstghostpad.[ch].
* check/Makefile.am:
* check/gst/gstbin.c:
* check/gst/gstghostpad.c (test_ghost_pads): Check that linking
into a bin creates ghost pads, and that the refcounts are right.
Partly moved from gstbin.c.
Original commit message from CVS:
* check/gst-libs/.cvsignore:
* check/gst/.cvsignore:
* check/pipelines/.cvsignore:
ignore more
* check/pipelines/cleanup.c: (setup_pipeline), (run_pipeline),
(START_TEST), (cleanup_suite), (main):
add some tests related to cleanup after running pipelines
Original commit message from CVS:
* gst/elements/gstcapsfilter.c: (gst_capsfilter_set_property):
Free existing caps if the capsfilter changes. Add a FIXME about
setting those caps on the pads.
* gst/gstutils.c: (gst_element_get_compatible_pad), (ghost_up):
Before adding a ghost pad to a parent bin, check that there isn't
already one for the element on the bin. Prevents infinite recursion
when using decodebin in parse pipelines. Andy says he'll rewrite the
way this works anyway, so ignore the hack.
Original commit message from CVS:
2005-06-02 Andy Wingo <wingo@pobox.com>
* gst/elements/gsttypefindelement.c (do_pull_typefind): Query the
file size, pass it on to the type find helper.
* gst/base/gstbasesrc.c (gst_basesrc_do_seek): Set the
segment_start and segment_end properly according to the seek
method. Segment_end is still a bit flaky because offset can be
negative for CUR and END cases, but it takes -1 as an "unset"
value.
Original commit message from CVS:
* gst/elements/gstidentity.c: (gst_identity_event),
(gst_identity_transform), (gst_identity_get_property):
Protect last_message property as it is accessed from
multiple threads.
Original commit message from CVS:
* gst/gstelement.c: (gst_element_init),
(gst_element_pads_activate), (gst_element_change_state):
Slicker pad activation code.
Original commit message from CVS:
* gst/Makefile.am:
* gst/gstelement.h:
* gst/gstelementfactory.h:
* gst/gsttypes.h:
Move elementfactory methods to separate .h file.
Original commit message from CVS:
* gst/gstbuffer.c: (gst_subbuffer_finalize),
(gst_buffer_create_sub), (gst_buffer_is_span_fast):
* gst/gstbuffer.h:
Avoid typechecking in places where not needed.
Added accessor for malloc_data.
Original commit message from CVS:
* gst/gstpad.c: (gst_real_pad_init), (gst_pad_set_active),
(gst_pad_link_prepare), (gst_pad_link), (gst_pad_accept_caps),
(gst_pad_configure_sink), (gst_pad_configure_src),
(gst_pad_alloc_buffer), (gst_pad_query), (gst_pad_send_event),
(gst_pad_start_task):
Propagate errors from _set_caps() in configure_src/sink
functions instead of returning TRUE.
FLUSH events can travel up and downstream
Original commit message from CVS:
* gst/gstqueue.c: (gst_queue_handle_sink_event), (gst_queue_chain),
(gst_queue_loop), (gst_queue_handle_src_event):
Remove old pieces of code
Flushing the queue in an upstream event is a very bad idea.
Original commit message from CVS:
2005-05-26 Andy Wingo <wingo@pobox.com>
* gst/gstminiobject.c (gst_value_mini_object_collect): Use
gst_value_set_mini_object so as to add a ref on the object (which
will be removed when the value is unset).
* gst/elements/gstfakesink.c (gst_fakesink_class_init): Fix signal
arg type in ::handoff.
* gst/gstelement.c (gst_element_change_state): Also deactivate
pads in READY->NULL, just in case the element didn't make it to
PAUSED. Wingo tested, Wim approved.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_set_active), (gst_pad_link_prepare),
(gst_pad_link), (gst_pad_accept_caps), (gst_pad_alloc_buffer),
(gst_pad_query), (gst_pad_send_event), (gst_pad_start_task):
A flushing pad cannot be used to alloc_buffer from.
Original commit message from CVS:
* gst/gstbus.c: (gst_bus_init), (gst_bus_dispose), (gst_bus_post),
(gst_bus_pop), (gst_bus_source_prepare), (gst_bus_source_check),
(gst_bus_source_dispatch), (gst_bus_source_finalize),
(gst_bus_create_watch), (gst_bus_add_watch_full):
* gst/gstbus.h:
Implement a real GSource and use g_main_context_wakeup() to
signal new messages instead of the socketpair.
Original commit message from CVS:
* gst/gstbin.c: (bin_element_is_sink), (has_ancestor),
(bin_element_is_semi_sink), (append_child), (gst_bin_change_state):
* gst/gstpad.c: (gst_pad_set_active), (gst_pad_link_prepare),
(gst_pad_link), (gst_pad_accept_caps), (gst_pad_query),
(gst_pad_send_event), (gst_pad_start_task):
* gst/gstqueue.c: (gst_queue_init), (gst_queue_locked_flush),
(gst_queue_handle_sink_event), (gst_queue_chain), (gst_queue_loop),
(gst_queue_sink_activate), (gst_queue_src_activate),
(gst_queue_change_state):
* gst/gstqueue.h:
Fix state changes for non sinks. We now change sinks, then elements
with unconnected srcpads, then the rest.
More efficient queue unlocking in flush and state changes.
Set the pad activate mode even if it does not have an activate
function.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_basesrc_activate):
Don't go in pull mode for non-seekable sources.
* gst/elements/gsttypefindelement.c: (gst_type_find_element_init),
(gst_type_find_element_dispose), (gst_type_find_handle_src_query),
(free_entry), (stop_typefinding),
(gst_type_find_element_handle_event), (find_peek),
(gst_type_find_element_chain), (do_pull_typefind),
(gst_type_find_element_change_state):
Allow typefinding (w/o seeking) in push-mode, simplified version
of what was in 0.8.
* gst/gstutils.c: (gst_buffer_join):
* gst/gstutils.h:
gst_buffer_join() from 0.8.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_set_active), (gst_pad_link_prepare),
(gst_pad_link), (gst_pad_accept_caps), (gst_pad_query),
(gst_pad_send_event), (gst_pad_start_task):
Disable attempt at mode switching until it is figured out.
Original commit message from CVS:
* configure.ac: Use -no-common everywhere. In a sane world, it
would be the default in libtool, because without it, you can't
build DLLs on Windows.
* docs/gst/gstreamer-docs.sgml: Remove GstCpu, GstData, GstThread
* docs/gst/gstreamer-sections.txt:
* docs/gst/tmpl/gstcpu.sgml:
* docs/gst/tmpl/gstdata.sgml:
* docs/gst/tmpl/gstthread.sgml:
Original commit message from CVS:
* gst/gst.c:
* gst/gstmessage.c:
Make sure the class is reffed/unreffed once before threads can be
used. Fixes#304551.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_basesink_finish_preroll),
(gst_basesink_chain_unlocked), (gst_basesink_activate):
* gst/gstminiobject.c: (gst_mini_object_get_type),
(gst_mini_object_free):
* gst/gstpad.c: (gst_pad_accept_caps), (gst_pad_query),
(gst_pad_push), (gst_pad_push_event):
* gst/gstqueue.c: (gst_queue_change_state):
Don't queue buffers in basesink when we are flushing.
Unref buffer when flushing in basesink.
Flush queue when going to READY
Unref buffer when _push() returns an error.
Don't free MiniObject instance when refcount is incremented
in _finalize() so that we can recover objects.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_accept_caps), (gst_pad_set_caps),
(gst_pad_alloc_buffer), (gst_pad_query), (gst_pad_push):
* gst/gstqueue.c: (gst_queue_change_state):
Clear queue when going to READY.
Remove IN_SETCAPS flag too.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_basesrc_change_state):
Remove implicit cast from gboolean to GstElementStateReturn;
make sure we still return failure in paused => ready case if
the parent class fails to change state and our own stop
vfunc succeeds.
Original commit message from CVS:
2005-05-16 Andy Wingo <wingo@pobox.com>
* gst/gstbin.c (sink_iterator_filter): Err... um...
* check/gst/gstbin.c (test_ghost_pads): New test for the
ghosting-if-elements-not-in-same-bin behavior.
Original commit message from CVS:
* gst/elements/Makefile.am: Remove some elements that don't
need to be in the core (or even exist at all).
* gst/elements/gstaggregator.c:
* gst/elements/gstaggregator.h:
* gst/elements/gstmd5sink.c:
* gst/elements/gstmd5sink.h:
* gst/elements/gstmultifilesrc.c:
* gst/elements/gstmultifilesrc.h:
* gst/elements/gstpipefilter.c:
* gst/elements/gstpipefilter.h:
* gst/elements/gstshaper.c:
* gst/elements/gstshaper.h:
* gst/elements/gststatistics.c:
* gst/elements/gststatistics.h:
* po/POTFILES.in: Remove above files.
Original commit message from CVS:
2005-05-14 Andy Wingo <wingo@pobox.com>
* gst/gstbin.c (gst_bin_iterate_sinks): Use sink_iterator_filter
so as to get the refs right.
(sink_iterator_filter): New function, wraps bin_element_is_sink,
unreffing objects that don't pass the filter.
Original commit message from CVS:
2005-05-14 Andy Wingo <wingo@pobox.com>
* gst/gstpipeline.c (gst_pipeline_init): Drop ref on bus after
gst_element_set_bus.
(gst_pipeline_dispose): Set the bus on the pipeline to NULL. In
normal cases, this will destroy the bus.
* gst/gstutils.c (prepare_link_maybe_ghosting): Drop ref on root
object.
Original commit message from CVS:
2005-05-14 Andy Wingo <wingo@pobox.com>
* gst/gstbin.c (gst_bin_change_state): Fix state changes if a bin
has no sinks.
Original commit message from CVS:
2005-05-13 Andy Wingo <wingo@pobox.com>
* gst/gstutils.c (gst_element_link_pads): Instead of calling
gst_pad_link, call pad_link_maybe_ghosting,
(pad_link_maybe_ghosting): Links pads, making sure that the
elements being linked are in the same bin.
(find_common_root, object_has_ancestor, ghost_up, remove_pad):
Helpers for pad_link_maybe_ghosting.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_basesink_init),
(gst_basesink_activate):
* gst/base/gstbasesrc.c: (gst_basesrc_unlock),
(gst_basesrc_is_seekable):
* gst/gstbin.c: (gst_bin_add_func), (gst_bin_remove_func),
(bin_element_is_sink), (gst_bin_change_state):
* gst/gstelement.c: (gst_element_add_pad), (gst_element_query):
* gst/gstelement.h:
Identify sinks by their flag to avoid overly complicated
checks (fow now).
Do state changes even for elements not reachable from the
sinks.
BaseSink is a sink now :)
Some more debugging info in the basesrc.
Original commit message from CVS:
* gst/base/gstbasesrc.c: (gst_basesrc_do_seek):
Discont event offset format should be GST_FORMAT_BYTES,
not GST_FORMAT_TIME.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_add_func), (cb_parent_unset),
(gst_bin_get_state):
If a child is removed from a bin while we remove the child from
the bin and while we're retrieving its state, signal this to the
get_state function so we abort the wait (instead of waiting for
a timeout) and can immediately re-iterate over all other elements.
Original commit message from CVS:
* gst/gstelement.c: (gst_element_add_pad), (gst_element_query):
* gst/gstutils.c: (gst_element_get_compatible_pad_template),
(gst_element_link_pads), (gst_element_query_position),
(gst_element_query_convert), (intersect_caps_func),
(gst_pad_query_position), (gst_pad_query_convert):
Fix refcounting in utils function.
No point in trying to activate a pad when it's added, it could
be added from the state change function and then we deadlock, the
element has to decide what to do.
Original commit message from CVS:
2005-05-10 Andy Wingo <wingo@pobox.com>
* gst/elements/gstfakesink.c (gst_fakesink_render): Er, emit with
*all* the arguments.
* gst/base/gstbasetransform.c (gst_base_transform_event): Grab the
stream lock if it's a FLUSH_DONE; normal flushes don't get the
lock (according to the docs -- if this is wrong change the docs).
* gst/gstpipeline.c (gst_pipeline_change_state): Set the bus to
flush messages in the NULL state.
* gst/gstbus.c (gst_bus_post): If a bus is flushing, unref the
message immediately and return.
(gst_bus_set_flushing): New function. If a bus is flushing, it
flushes out any queued messages and immediately unrefs new
messages. This is so when an element goes to NULL, all of the
unhandled messages coming from it can be freed, and their
references to the element dropped. In other words: message source
ref considered harmful :P
* gst/gstbin.c (gst_bin_change_state): Unref peer element when
we're finished with it.
* gst/gstmessage.c (gst_message_new_state_changed):
Original commit message from CVS:
2005-05-09 Andy Wingo <wingo@pobox.com>
* gst/base/gstbasetransform.c (gst_base_transform_proxy_getcaps):
Intersect the peer's caps with our caps.
Original commit message from CVS:
Remove old query functions. Ported old code.
Added position/convert helper functions to gstutils.
Reordered gstpad.c code, grouping relevant things.
Remove gst_message_new(), always need to speficy a specific
message.
Original commit message from CVS:
2005-05-09 Andy Wingo <wingo@pobox.com>
* gst/gstiterator.h: Add some includes.
* gst/gstqueryutils.h: Include more headers.
* gst/gstpad.h:
* gst/gstpad.c (gst_pad_query_position): New routine, replaces
some uses of gst_pad_query.
* gst/gstqueryutils.c: Build fixes. Make parse functions ignore
NULL out parameters.
(gst_query_new_position): New proc, allocates a new position
query.
* gst/Makefile.am (libgstreamer_@GST_MAJORMINOR@_la_SOURCES): Add
gstqueryutils.c to the build.
* gst/gststructure.c (gst_structure_set_valist): Implement with
the generic G_VALUE_COLLECT.
Original commit message from CVS:
* gst/Makefile.am: (gst_headers):
Added gstqueryutils.h to the list of headers to install, that was
a 'nachty' move wingo :)
Original commit message from CVS:
2005-05-06 Andy Wingo <wingo@pobox.com>
* gst/gstquery.h
* gst/gstquery.c (_gst_query_initialize): Extend GstQuery from
GstData, init a memchunk.
(standard_definitions): Add a few query types, deprecate a few.
(gst_query_get_type): New proc.
(_gst_query_copy, _gst_query_free, gst_query_new): GstData
implementation.
(gst_query_new_application, gst_query_get_structure): New public
procs.
* docs/design/draft-query.txt: Removed LINKS from the query types,
because all the rest can be dispatched to other pads -- seemed
ugly to have a query that couldn't be dispatched. internal_links
is fine as a pad method.
* gst/gstpad.h: Add query2 as a pad method, add the new functions
in gstpad.c, but maintain binary compatibility for the moment.
Will fix before 0.9 is out.
* gst/gstqueryutils.c:
* gst/gstqueryutils.h: New files, implement 3 methods for each
query type: parse_query, parse_response, and set. Probably need an
allocator as well.
* gst/gst.h: Add gstquery.h and gstqueryutils.h to the list.
* gst/elements/gstfilesink.c (gst_filesink_query2):
* gst/base/gstbasesrc.c (gst_basesrc_query2): Replace old query,
query_types, and formats methods.
* gst/gstpad.c (gst_pad_query2, gst_pad_query2_default)
(gst_pad_set_query2_function): New functions.
(gst_real_pad_init): Set query2_default as the default query2
function. Basically just dispatches to internally linked pads.
Needs review!
* gst/gstdata_private.h (_GST_DATA_INIT): Set data->refcount to 1
without using the atomic operations. Only one thread can possibly
be accessing the data at this point. Changed so as to avoid
gst_atomic operations.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_proxy_getcaps):
* gst/elements/gstcapsfilter.c: (gst_capsfilter_getcaps):
* gst/gstpad.c: (gst_pad_peer_get_caps):
* gst/gstqueue.c: (gst_queue_init), (gst_queue_getcaps),
(gst_queue_bufferalloc), (gst_queue_handle_sink_event),
(gst_queue_src_activate), (gst_queue_change_state):
* gst/gstqueue.h:
* gst/gstutils.c: (gst_element_get_compatible_pad_template),
(intersect_caps_func):
Fix gst_pad_peer_get_caps(), make it return NULL if no peer.
Always take QUEUE_LOCK after STREAM_LOCK or we might deadlock.
Some fixes for the peer_get_caps() change.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_basesink_preroll_queue_empty),
(gst_basesink_handle_buffer), (gst_basesink_chain_unlocked),
(gst_basesink_activate):
Actually do something with error codes returned from the push
functions.
Original commit message from CVS:
2005-05-05 Andy Wingo <wingo@pobox.com>
* check/pipelines/simple_launch_lines.c (test_2_elements): "Fix"
the test suite.
Original commit message from CVS:
* gst/gstplugin.c: (gst_plugin_check_module),
(gst_plugin_check_file), (gst_plugin_load_file):
apply patch from #172526 to make register work on MacOSX
Original commit message from CVS:
* docs/design/draft-push-pull.txt:
* docs/design/draft-query.txt:
* gst/base/gstbasesrc.c: (gst_basesrc_get_range_unlocked),
(gst_basesrc_start):
Added draft for new query API.
Added draft for better selecting scheduling methods.
Make basesrc ignore length if the subclass does not support
it.
Original commit message from CVS:
* check/Makefile.am:
fix the broken rule for cleanup. Apparently this rule is
only needed on FC2, so maybe this warrants further autotool
inspection.
Original commit message from CVS:
* gst/gsttrashstack.h:
Ooohh. a nasty one! After having a failed pop() from the stack,
it's possible that the stack is empty. In that case, don't
follow the NULL pointer.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_set_active), (gst_pad_peer_set_active),
(gst_pad_set_checkgetrange_function),
(gst_pad_link_check_compatible_unlocked), (gst_pad_link_prepare),
(gst_pad_check_pull_range), (gst_pad_pull_range),
(gst_static_pad_template_get_caps), (gst_pad_start_task),
(gst_pad_pause_task), (gst_pad_stop_task):
* gst/gstplugin.c: (gst_plugin_load):
* gst/gstplugin.h:
Remove gst_library_load as it does more harm than good with
the new g_module flags.
Revert bogus caps template check in pad linking, pad caps
are important when linking not the template, which is more
general than the current caps.
Original commit message from CVS:
* check/gst/gstpad.c: (START_TEST): Oh yeah, it's always nice to
make the regressions tests work. Remove some code that is no
longer true.
* gst/gstpad.c: (gst_pad_link_check_templates_compatible_unlocked):
Disable warning for pads without templates.
Original commit message from CVS:
* gst/gstpad.c: Remove handling of filtered caps. Fix/merge
functions that handle filtered links.
* gst/gstpad.h: Remove 'appfilter' field and prototypes of
removed functions.
* gst/gstutils.c: Fix/remove utility functions that handle
filtered caps.
* gst/gstutils.h:
* gst/gstvalue.c: Add serialization/deserialization of caps
* gst/parse/grammar.y: Ignore filtered caps when linking. This
requires fixing so that the filter caps notation creates
a capsfilter element and sets the filter_caps property. I
think everyone probably wants to keep the shorthand notation.
* docs/gst/tmpl/gstelement.sgml: updates for API changes.
* docs/gst/tmpl/gstpad.sgml:
* gst/elements/gstelements.c: Register capsfilter element.
* gst/Makefile.am: fix spacing
* docs/random/ds/0.9-suggested-changes: random
Original commit message from CVS:
* gst/elements/Makefile.am:
* gst/elements/gstcapsfilter.c: New element that acts like an
identity, but filters caps. Will eventually replace filtered
caps in pad linking.
* gst/gstutils.c: (gst_element_create_all_pads): New function
to create all the ALWAYS pads that are registered with an
element class. This functionality should eventually be
merged in with GstElement initialization.
* gst/gstutils.h:
* testsuite/trigger/README: part of trigger test code that should
have been checked in a long time ago.
Original commit message from CVS:
* gst/Makefile.am: Remove as-libtool stuff. It's likely not
needed with new versions of libtool (nobody will confirm this),
and hard to carry around.
* gst/autoplug/Makefile.am:
* gst/base/Makefile.am:
* gst/elements/Makefile.am:
* gst/indexers/Makefile.am:
* gst/schedulers/Makefile.am:
* libs/gst/bytestream/Makefile.am:
* libs/gst/control/Makefile.am:
* libs/gst/dataprotocol/Makefile.am:
* libs/gst/getbits/Makefile.am:
Original commit message from CVS:
2005-04-18 Andy Wingo <wingo@pobox.com>
* gst/base/gstbasesrc.c (gst_basesrc_set_property)
(gst_basesrc_get_property): BLOCKSIZE is a ULONG. Rename ARG_...
to PROP_....
Original commit message from CVS:
Added typefind helper.
Small preroll fix in the base sink.
Disable typefind code in basesrc.
Crude port of typefindelement.
Fakesrc cleanups.
Original commit message from CVS:
* check/gst/gstbus.c: (gstbus_suite):
* check/gst/gstdata.c: (thread_ref), (gst_data_suite):
* check/gstcheck.h:
Fix up the timeout so that the test does not fail.
Original commit message from CVS:
* gst/gstplugin.c: (gst_plugin_check_file), (gst_plugin_load_file):
Switch to using G_MODULE_BIND_LOCAL, which means plugins are now
expected to link against libgstreamer.
* gst/base/Makefile.am: link against libgstreamer
* gst/elements/Makefile.am: same
Original commit message from CVS:
2005-03-31 Andy Wingo <wingo@pobox.com>
* tests/instantiate/Makefile.am:
* tests/instantiate/caps.c: Add test to test speed of caps copy
and free.
* tests/memchunk/gmemchunktest.c (main): Use alloc only on the
GMemChunk to be fair.
* gst/gsttrashstack.h: Remove warning about using the fallback
trash stack implementation, it's still faster than malloc.
Original commit message from CVS:
* gst/base/gstbasetransform.c: (gst_base_transform_base_init),
(gst_base_transform_class_init), (gst_base_transform_init),
(gst_base_transform_setcaps), (gst_base_transform_handle_buffer),
(gst_base_transform_get_property),
(gst_base_transform_sink_activate),
(gst_base_transform_src_activate),
(gst_base_transform_change_state):
* gst/base/gstbasetransform.h:
* gst/elements/gstidentity.c: (gst_identity_class_init),
(gst_identity_event), (gst_identity_check_perfect),
(gst_identity_transform), (gst_identity_start),
(gst_identity_stop):
Added start/stop methods to transform base class so subclasses
don't need to deal with state changes even.
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.
Original commit message from CVS:
* configure.ac:
* testsuite/trigger/Makefile.am:
* testsuite/trigger/trigger.c: A little example program to show
how trigger-based elements can work.
Original commit message from CVS:
* gst/base/Makefile.am:
* gst/base/README:
* gst/base/gstbasesink.c: (gst_basesink_get_type),
(gst_basesink_base_init), (gst_basesink_class_init),
(gst_basesink_pad_getcaps), (gst_basesink_init),
(gst_basesink_activate), (gst_basesink_change_state):
* gst/base/gstbasesink.h:
* gst/base/gstbasetransform.c: (gst_base_transform_get_type),
(gst_base_transform_base_init), (gst_base_transform_finalize),
(gst_base_transform_class_init), (gst_base_transform_init),
(gst_base_transform_proxy_getcaps), (gst_base_transform_setcaps),
(gst_base_transform_event), (gst_base_transform_getrange),
(gst_base_transform_chain), (gst_base_transform_handle_buffer),
(gst_base_transform_set_property),
(gst_base_transform_get_property),
(gst_base_transform_sink_activate),
(gst_base_transform_src_activate),
(gst_base_transform_change_state):
* gst/base/gstbasetransform.h:
* gst/elements/gstidentity.c: (gst_identity_finalize),
(gst_identity_class_init), (gst_identity_init),
(gst_identity_event), (gst_identity_check_perfect),
(gst_identity_transform), (gst_identity_set_property),
(gst_identity_get_property), (gst_identity_change_state):
* gst/elements/gstidentity.h:
* gst/gstelement.c: (gst_element_get_state_func),
(gst_element_lost_state), (gst_element_pads_activate):
* gst/gstpad.c: (gst_pad_set_active), (gst_pad_peer_set_active),
(gst_pad_check_pull_range), (gst_pad_pull_range):
* gst/gstpad.h:
Simplify pad activation.
Added function to check if pull_range can be performed.
Error out when pulling inactive or flushing pads.
Removed const from refcounted types as it does not make sense.
Simplify pad templates in basesink
Added base class for simple 1-to-1 transforms.
Make identity subclass the base transform.
Original commit message from CVS:
2005-03-29 Andy Wingo <wingo@pobox.com>
* docs/libs/gstreamer-libs-overrides.txt:
* docs/gst/gstreamer-overrides.txt: Add these files to CVS. Now I
really don't understand what's going on, but like whatever. I want
green buildbot!
Original commit message from CVS:
2005-03-29 Andy Wingo <wingo@pobox.com>
* docs/gst/Makefile.am:
* docs/libs/Makefile.am: Dist the overrides files.
* check/Makefile.am (clean-local): Remove .libs directories.
* gst/elements/Makefile.am (EXTRA_DIST): Add all the attic
elements to EXTRA_DIST, so po/ files are happy.
Original commit message from CVS:
2005-03-29 Andy Wingo <wingo@pobox.com>
* po/POTFILES: Remove gstspider.c.
* configure.ac (AC_OUTPUT): Add missing testsuite makefiles.
* docs/libs/gstreamer-libs-docs.sgml:
* docs/libs/gstreamer-libs-sections.txt: Remove the section on
bytestream.
* tests/complexity.c (main): Set the length of the preroll queue
on the sinks to prevent a lockup.
Original commit message from CVS:
2005-03-29 Andy Wingo <wingo@pobox.com>
* libs/gst/dataprotocol/Makefile.am:
* libs/gst/dataprotocol/dataprotocol-test.c: Remove test, it's
the same as the one in check/gst-libs/gdp.c.
Original commit message from CVS:
2005-03-29 Andy Wingo <wingo@pobox.com>
* po/, docs/gst/: Commit automatic changes to docs and po files.
* gst/elements/Makefile.am (libgstelements_la_LDFLAGS): Link to
the versioned libgstbase.
* check/Makefile.am: Depend on an unversioned gst-register, seems
to make autoconf happier.
* gst/base/Makefile.am: Make libgstbase a versioned lib.
Original commit message from CVS:
Added state change code.
Added/updated docs.
Added sink base class, make fakesink extend the base class.
Small cleanups in GstPipeline.
Original commit message from CVS:
* gst/Makefile.am: remove gstcpu.[ch]. The gst_cpu functionality
is broken and should be implemented in a different library.
* gst/gst.c: (init_post): don't call _gst_cpu_initialize()
* gst/gst.h: remove gstcpu.h
* gst/gstcpu.c: remove
* gst/gstcpu.h: remove
* gst/Makefile.am.future: Remove this file. It's ancient.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_class_init), (gst_bin_set_manager),
(gst_bin_send_event):
Add default event/set_manager handlers. The set_manager handler
takes care that the manager is distributed over kids that were
already in the bin before the manager was set. The event handler
is a utility virtual function that sends the event over all sinks,
so that gst_element_send_event (bin, event); has the expected
behaviour.
* gst/gstpad.c: (gst_pad_event_default):
Re-install default event handling for discontinuities, so that
seeking works without requiring hacks in applications or extra
code in sinks.
* gst/gstpipeline.c: (gst_pipeline_class_init),
(gst_pipeline_send_event):
Half hack, half utility: set a pipeline to PAUSED for seek events,
since that is the only way we can guarantee a/v sync. Means that
you can do gst_element_seek (pipeline, method, pos); on a pipeline
and it "just works".
Original commit message from CVS:
* docs/faq/gst-uninstalled:
add gst-plugins-base
* docs/gst/Makefile.am:
don't error out until docs are fixed
* docs/gst/gstreamer.types:
remove thread
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.
Original commit message from CVS:
Added GstBin test.
Added GstSystemClock test.
Implemented clock distribution code in GstBin.
Implemented iterate sinks method for future use.
Rearranged gstelement.h
Fix GstIterator comparison bug.
Moved some code to GstPipeline, mostly clocking related.
Original commit message from CVS:
Remove threadsafe properties. Fix elements because GObject
complains when installing a property before declaring a
set/get_property handler.
Rearrange gstelement.h file, use STATE macros for state locks.
Free mutexes in the finalize method instead of dispose.
Original commit message from CVS:
First THREADED backport attempt, focusing on adding locks and
making sure the API is threadsafe. Needs more work. More docs
follow this week.
Original commit message from CVS:
2005-02-24 Andy Wingo <wingo@pobox.com>
* tests/bench-complexity.scm:
* tests/complexity.gnuplot: New files, good for running complexity
benchmarks.
Original commit message from CVS:
2005-02-24 Andy Wingo <wingo@pobox.com>
* tests/Makefile.am:
* tests/complexity.c: New test, sets up N elements, at each level
teeing into M streams per element. Eeeenteresting.
Original commit message from CVS:
2005-02-24 Andy Wingo <wingo@pobox.com>
* tests/mass_elements.gnuplot: gnuplot file for the mass_elements
benchmark. Run as gnuplot mass_elements.gnuplot > foo.ps, after
running bench-mass_elements.scm.
* tests/bench-mass_elements.scm: New script, runs mass_elements
for various numbers of identities, outputting the results to a
file. Requires guile 1.6. Just for testing.
Original commit message from CVS:
* gst/gstelementfactory.c: (gst_element_factory_create):
* gst/gstobject.c: (gst_object_init),
(gst_object_set_name_default), (gst_object_set_name):
name objects by default, not in gst_element_factory_create. Allows
using elements created with g_object_new. (fixes#167283)
Original commit message from CVS:
* gst/gstinfo.c: (_gst_debug_init), (gst_debug_log_default):
make the time that debugging functions print relative to when
gst_init was called
Original commit message from CVS:
2005-02-18 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_dump_byte_array):
Allocate the 1 byte more memory that was forgotten!!!!!
Original commit message from CVS:
fixed a few typos, relabeled introductionary list of types
more notes abut dparam changes
many comments and notes on dparam implementation
new dparams are were not initialized to the default value
from param specs
Original commit message from CVS:
2005-02-04 Andy Wingo <wingo@pobox.com>
* gst/gstelement.c (gst_element_get_compatible_pad_template): Fix
the debugging on whether the caps are compatible.
Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c: (remove_decoupled),
(schedule_chain), (get_invalid_call), (chain_invalid_call),
(loop_group_schedule_function), (gst_opt_scheduler_iterate):
Remove some FIXMEs after analysing and commenting why they
are not issues.
Original commit message from CVS:
* testsuite/threads/Makefile.am:
* testsuite/threads/threadi.c: (cb_data), (cb_play), (main):
On Wim's request, split the test in three separately-compiled
tests that each test a very specific bug. Two of them still fail,
will create bugs for those. threadi.c indicates why they fail.
Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c:
(get_group_schedule_function):
Try to work with the threading mess that queue_link is.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_remove_func):
Explicitely make an element release locks in a group when being
remove from a bin.
* gst/gstqueue.c: (gst_queue_chain), (gst_queue_get):
If there's no scheduler, always return immediately (similar to
gst_element_interrupt).
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_child_state_change_func):
Remove a piece of code that could never be reached.
* docs/gst/gstreamer-sections.txt:
* gst/gstpad.c: (gst_pad_push), (gst_pad_pull),
(gst_pad_call_get_function):
* gst/gstpad.h:
* testsuite/pad/Makefile.am:
Fix#150546, enable tests.
Original commit message from CVS:
* docs/pwg/advanced-types.xml:
Fix description for buffer-frames=0.
* docs/gst/tmpl/gstbin.sgml:
* gst/gstbin.c: (gst_bin_child_state_change_func),
(gst_bin_change_state), (gst_bin_change_state_norecurse):
* gst/gstbin.h:
* testsuite/threads/Makefile.am:
* testsuite/threads/threadi.c: (cb_timeout), (cb_quit), (cb_eos),
(cb_state), (cb_play), (main):
Fix non-recursive state changes to *really* change the state
of the object, and not just call parent_class->state_change.
Fix a lot of lockups caused by this. Fixes#132775. Add test
for the problem. Also enable test to show #142588 (fixed).
* gst/gstthread.c: (gst_thread_change_state),
(gst_thread_child_state_change):
Don't exit the thread if we go to NULL and are inside thread
context. Instead, return control to the main thread context
and exit from there.
* gst/gstelement.c: (gst_element_disable_threadsafe_properties):
Don't unset virtual functions, since those may still be used.
That's not necessarily correct, but suffices for now.
* configure.ac:
* testsuite/Makefile.am:
* testsuite/pad/Makefile.am:
* testsuite/pad/chainnopull.c: (gst_test_sink_class_init),
(gst_test_sink_base_init), (gst_test_sink_chain),
(gst_test_sink_init), (main):
* testsuite/pad/getnopush.c: (gst_test_src_class_init),
(gst_test_src_base_init), (gst_test_src_get), (gst_test_src_init),
(main):
* testsuite/pad/link.c: (gst_test_element_class_init),
(gst_test_element_base_init), (gst_test_src_get),
(gst_test_src_loop), (gst_test_src_init), (gst_test_filter_chain),
(gst_test_filter_loop), (gst_test_filter_init),
(gst_test_sink_chain), (gst_test_sink_loop), (gst_test_sink_init),
(cb_error), (main):
Add tests to show #150546. Pass, but should fail (currently
disabled from the testsuite).
* gst/gstscheduler.c: (gst_scheduler_dispose):
Dereference child schedulers on dispose (#94464).
* testsuite/bytestream/filepadsink.c: (gst_fp_sink_init):
Fix typo.
* testsuite/threads/thread.c: (main):
Add more debug.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_push):
Add check that the pad on which the push is performed is not a
get-based pad (#150546).
Original commit message from CVS:
* gst/elements/gsttypefindelement.c:
(gst_type_find_element_handle_event):
Fix buffer pushing if stream EOSes during typefinding.
Original commit message from CVS:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* gst/gstvalue.c: (gst_string_wrap):
Allow NULL-strings as argument (#165365).
Original commit message from CVS:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* gst/schedulers/faircothreads.c:
(gst_fair_scheduler_cothread_queue_show):
Fix build without debug enabled.
Original commit message from CVS:
* gst/autoplug/gstspideridentity.c:
Cosmetic fix - spider_find_peek should be static
* gst/parse/parse.l:
Applying fix for #164261
Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c: (add_to_group),
(remove_from_group), (schedule_group), (normalize_group),
(gst_opt_scheduler_iterate):
Also ref/unref decoupled elements before iterating the
group since they are not added to the list of elements.
Original commit message from CVS:
* docs/pwg/advanced-types.xml:
* docs/random/mimetypes:
Add documentation on libsndfile types (#163309), by Steve Baker
<steve@stevebaker.org>.
* gst/gstelement.c: (gst_element_release_request_pad):
If an element has no explicit function, just remove the pad.
Original commit message from CVS:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* gst/registries/gstxmlregistry.c: (gst_xml_registry_load):
Fix memleak (#163801).
Original commit message from CVS:
* gst/gstprobe.c: (gst_probe_dispatcher_dispatch):
Another workaround for memory access while destroyed in callback.
Please, someone with refcount knowledge, have a look at this.
Original commit message from CVS:
* docs/random/omega/caps2:
* testsuite/caps/caps_strings:
replace framerate aproximations by their real value
(24000/1001, 30000/1001, 60000/1001)
Partially fixes bug #164049
Original commit message from CVS:
* docs/random/release:
updates
* gst/gst_private.h:
* gst/gstinfo.c:
* gst/gstobject.c:
move deep_notify logging to a new category
* gst/gstprobe.c:
* gst/gstprobe.h:
add stuff so bindings can wrap probes
Original commit message from CVS:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* gst/gstpluginfeature.c: (gst_plugin_feature_ensure_loaded):
Protect plugin loading by a mutex so it's threadsafe. Fixes
#163234.
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.
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.
Original commit message from CVS:
* gst/gstelement.c: (gst_element_link_many):
fix up g_return_if_fail's
* po/LINGUAS:
* po/de.po:
add German translation, that was somehow not included
Original commit message from CVS:
* gst/gstprobe.c: (gst_probe_dispatcher_dispatch):
Check for existence of probe after performing the probe before
re-accessing it to prevent segfaults caused by removal of the
probe in the callback.
Original commit message from CVS:
* testsuite/registry/Makefile.am:
* testsuite/registry/gst-print-formats.c:
(print_pad_templates_info), (print_element_list),
(print_typefind_list), (list_sort_func), (get_typefind_mime_list),
(g_list_uniqify), (get_pad_templates_info),
(get_element_mime_list), (print_mime_list), (main): A little
program that looks through the registry to find elements of
a given type. Not particularly interesting as a test, except
that there's no other test covering the same area.
Original commit message from CVS:
* tools/gst-launch.c: (idle_func), (fault_handler_sighandler),
(fault_handler_sigaction), (fault_spin),
(sigint_handler_sighandler), (play_handler), (main): Fix deadlocks
in signal.h-type signal handlers by not calling forbidden functions,
including gst_element_set_state().
Original commit message from CVS:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* gst/gstregistry.h:
* gst/registries/gstxmlregistry.c:
Fix macro's for Mingw (fixes#162276).
Original commit message from CVS:
quick shell oneliner to find undocumented members in docs/README
more enumtypes cleanup
activated documentation comments, now someone needs to document the enums :(
Original commit message from CVS:
* gst/gstplugin.c:
document gst_library_load a bit more (riff special case + return value if already loaded)
* testsuite/bytestream/filepadsink.c:
plugin name is 'gstbytestream', not 'bytestream'
Original commit message from CVS:
* docs/manual/advanced-dataaccess.xml:
Add section on how to use fakesrc/fakesink/identity in your
application, plus section on how to embed plugins. Also mention
probes.
* docs/manual/appendix-checklist.xml:
* docs/manual/appendix-debugging.xml:
* docs/manual/appendix-gnome.xml:
* docs/manual/appendix-integration.xml:
Debug -> checklist, GNOME -> integration, add sections on Linux,
KDE integration and add other things useful for application
development.
* docs/manual/manual.xml:
Remove some fixmes, update some file pointers.
* docs/pwg/appendix-checklist.xml:
Fix typo.
* docs/pwg/building-boiler.xml:
Remove ugly header and add commented fixme.
* docs/pwg/pwg.xml:
Add fixme.
* examples/manual/Makefile.am:
Add example for added docs.
Original commit message from CVS:
* docs/manual/advanced-autoplugging.xml:
* docs/manual/advanced-schedulers.xml:
* docs/manual/advanced-threads.xml:
Rewrites. Remove cothreads, go a bit into opt specifically,
document threads and their gotchas, and do some technical stuff
on autoplugging plus add some working examples. Fixes#157395.
* examples/manual/Makefile.am:
Add typefind/autoplugger example (one that actually works).
Remove queue example since it's a duplicate of the thread one.
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_deserialize_string):
use deprecated g_value_set_string_take_ownership to keep compatible
with glib 2.2
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_deserialize_string):
revert last patch, only dom a g_utf8_validate now before accepting
the string - caps parsing strips " from strings so we can't rely on
them
* testsuite/caps/value_serialize.c: (test_string_deserialization):
disable a test that tested the above and comment it
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_query):
Do query on realized pad, similar to how convert/send_event handle
this. Also makes sense, since this pad belongs to the function to
which this query will be sent. Fixes#158163.
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_deserialize_string):
check that a simple string that gets deserialized does not contain
invalid characters
* testsuite/caps/value_serialize.c: (test_string_deserialization):
remove a test that tested a wring behaviour
Original commit message from CVS:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* docs/gst/tmpl/gstprobe.sgml:
Fix documentation of probe callback - it is supposed to return
FALSE, not TRUE, to remove data from the stream (#159087).
Original commit message from CVS:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* gst/gstelementfactory.c: (gst_element_factory_create):
Fix compile failure if compiling without libxml2 support (#149936).
Original commit message from CVS:
* docs/manual/advanced-autoplugging.xml:
* docs/manual/highlevel-components.xml:
Move spider from autoplugging to components. Autoplugging is for
internals, not for solutions. ;-).
Original commit message from CVS:
* docs/manual/advanced-autoplugging.xml:
* docs/manual/advanced-clocks.xml:
* docs/manual/advanced-interfaces.xml:
* docs/manual/advanced-metadata.xml:
* docs/manual/advanced-position.xml:
* docs/manual/advanced-schedulers.xml:
* docs/manual/advanced-threads.xml:
* docs/manual/appendix-gnome.xml:
* docs/manual/appendix-programs.xml:
* docs/manual/appendix-quotes.xml:
* docs/manual/autoplugging.xml:
* docs/manual/basics-bins.xml:
* docs/manual/basics-data.xml:
* docs/manual/basics-elements.xml:
* docs/manual/basics-helloworld.xml:
* docs/manual/basics-init.xml:
* docs/manual/basics-pads.xml:
* docs/manual/basics-plugins.xml:
* docs/manual/bins-api.xml:
* docs/manual/bins.xml:
* docs/manual/buffers-api.xml:
* docs/manual/buffers.xml:
* docs/manual/clocks.xml:
* docs/manual/components.xml:
* docs/manual/cothreads.xml:
* docs/manual/debugging.xml:
* docs/manual/dparams-app.xml:
* docs/manual/dynamic.xml:
* docs/manual/elements-api.xml:
* docs/manual/elements.xml:
* docs/manual/factories.xml:
* docs/manual/gnome.xml:
* docs/manual/goals.xml:
* docs/manual/helloworld.xml:
* docs/manual/helloworld2.xml:
* docs/manual/highlevel-components.xml:
* docs/manual/highlevel-xml.xml:
* docs/manual/init-api.xml:
* docs/manual/intro-basics.xml:
* docs/manual/intro-motivation.xml:
* docs/manual/intro-preface.xml:
* docs/manual/intro.xml:
* docs/manual/links-api.xml:
* docs/manual/links.xml:
* docs/manual/manual.xml:
* docs/manual/motivation.xml:
* docs/manual/pads-api.xml:
* docs/manual/pads.xml:
* docs/manual/plugins-api.xml:
* docs/manual/plugins.xml:
* docs/manual/programs.xml:
* docs/manual/queues.xml:
* docs/manual/quotes.xml:
* docs/manual/schedulers.xml:
* docs/manual/states-api.xml:
* docs/manual/states.xml:
* docs/manual/threads.xml:
* docs/manual/typedetection.xml:
* docs/manual/win32.xml:
* docs/manual/xml.xml:
Try 2. This time, include a short preface as a "general
introduction", also add code blocks around all code samples
so they get compiled. We still need a way to tell readers
the filename of the code sample. In some cases, don't show
all code in the documentation, but do include it in the generated
code. This allows for focussing on specific bits in the docs,
while still having a full test application available.
* examples/manual/Makefile.am:
Fix up examples for new ADM. Add several of the new examples that
were either added or were missing from the build system.
* examples/manual/extract.pl:
Allow nameless blocks.
Original commit message from CVS:
* docs/manual/elements-api.xml:
* docs/manual/helloworld.xml:
* examples/manual/extract.pl:
fix last example. Add example of adding code blocks that are not
shown in docbook output.
Original commit message from CVS:
* docs/manual/dynamic.xml:
* docs/manual/elements-api.xml:
* docs/manual/gnome.xml:
* docs/manual/helloworld2.xml:
* docs/manual/init-api.xml:
* docs/manual/queues.xml:
* docs/manual/threads.xml:
* docs/manual/xml.xml:
* examples/manual/extract.pl:
Make it possible to extract example code from separate blocks.
Should make Ronald happy.
Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c: (add_to_group),
(remove_from_group), (group_elements_set_visited),
(normalize_group), (gst_opt_scheduler_iterate):
Fix bug where a flag was not updated on a decoupled entry point
because we were just checking the group element list and decoupled
elements are not in that list..
Original commit message from CVS:
* configure.ac: remove all mmx stuff, because it's not used.
* docs/random/ds/0.9-suggested-changes: additional notes
* include/Makefile.am: we don't use these anymore
* include/mmx.h: remove
* include/sse.h: remove
Original commit message from CVS:
* gst/gstcaps.c: (gst_caps_compare_structures):
Simple caps go first. This has the nice side-effect of fixing an
obscure warning.
Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c:
(gst_opt_scheduler_schedule_run_queue), (schedule_chain),
(gst_opt_scheduler_get_wrapper):
When we're recursing into a chain run, only run the directly
related group, not all queued ones. This will fix a possible
deadlock in chains with more than two groups.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_is_negotiated),
(gst_pad_get_negotiated_caps):
GST_RPAD_* will only operate on a RealPad (it casts the pointer,
it doesn't actually check the contents), so be sure to hand it
a RealPad else we'll crash.
Original commit message from CVS:
* gst/gstqueue.c: (gst_queue_init), (gst_queue_getcaps),
(gst_queue_link), (gst_queue_handle_src_query):
Reverted to 1.110 until this makes the testsuite and various
apps work.
Original commit message from CVS:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* gst/gstelement.c: (gst_element_error_full):
Use g_error_new_literal because error text may have
percentage signs in it. Fixes#160019.
Original commit message from CVS:
* gst/elements/gstbufferstore.c:
(gst_buffer_store_add_buffer_func):
don't try to make subbuffers bigger than they can be. (fixes
#159970)
Original commit message from CVS:
* gst/gstcaps.c: (gst_caps_is_fixed_foreach):
* gst/gstpad.c: (_gst_pad_default_fixate_value),
(_gst_pad_default_fixate_foreach):
* gst/gstvalue.c: (gst_type_is_fixed), (gst_value_is_fixed):
* gst/gstvalue.h:
Deprecate _type_is_fixed, use _value_is_fixed instead, since
in some cases (arrays), the fixedness depends on the content.
* gst/gstqueue.c: (gst_queue_handle_src_query):
Check for availability before doing something.
Original commit message from CVS:
* testsuite/threads/Makefile.am:
* testsuite/threads/signals.c: (gst_test_get_type),
(gst_test_class_init), (gst_test_init), (gst_test_dispose),
(gst_test_set_property), (gst_test_get_property),
(gst_test_do_signal1), (signal2_handler), (gst_test_do_signal2),
(gst_test_do_prop), (run_thread), (main):
Added a bunch of testcases that show threadsafety bugs in glib.
Original commit message from CVS:
* gst/gstelement.c: (gst_element_negotiate_pads):
simplify
* gst/gstvalue.c: (gst_string_wrap), (gst_string_unwrap),
(gst_value_serialize_string), (gst_value_deserialize_string):
add unwrapping of previously wrapped strings. Fix bug in wrapping
while at it.
* testsuite/caps/value_serialize.c: (test1),
(test_string_serialization), (test_string_deserialization), (main):
add tests for string (de)serialization
Original commit message from CVS:
* testsuite/threads/159566.c: (object_deep_notify), (main):
* testsuite/threads/Makefile.am:
Added testsuite to show bug #159566
Original commit message from CVS:
* gst/gstthread.c: (gst_thread_dispose), (gst_thread_change_state),
(gst_thread_child_state_change), (gst_thread_main_loop):
Ref the thread object in the GThread mainloop. Break out of the
thread mainloop if it holds the last ref. This properly exits
the threads when disposing the thread from its own context. It
also avoids possible deadlocks in the dispose function.
Original commit message from CVS:
2004-11-24 Martin Soto <martinsoto@users.sourceforge.net>
* gst/gstqueue.c (gst_queue_link_sink): Grab the lock only when
it is necessary to wait.
Original commit message from CVS:
* docs/pwg/appendix-checklist.xml:
Add some random notes on thinks to check when writing an element.
This list can be extended as people see fit.
Original commit message from CVS:
2004-11-23 Martin Soto <martinsoto@users.sourceforge.net>
* gst/gstqueue.c (gst_queue_init, gst_queue_link_sink)
(gst_queue_link_src): Allow for renegotiating the caps of the sink
pad. The queue will now wait until it is empty and forward the new
caps to the source.
* gst/gstbin.c (gst_bin_set_element_sched)
(gst_bin_unset_element_sched): Make sure that all elements and
links are registered and unregistered with the scheduler exactly
once. This elaborates on a fix by Benjamin Otte, but
guarantees that decoupled elements are also registered.
Original commit message from CVS:
* docs/manual/quotes.xml:
add a quote
* configure.ac:
* gst/gst.c:
* gst/gstinfo.c:
add LIBDIR and move init message higher up so it's at the start
Original commit message from CVS:
* gst/elements/gstfakesink.c: (gst_fakesink_class_init):
* gst/elements/gstidentity.c: (gst_identity_class_init):
Use G_SIGNAL_TYPE_STATIC_SCOPE, patch by Christophe Fergeau
<teuf@gnome.org> (#157263).
* gst/elements/gsttypefindelement.c: (gst_type_find_element_init),
(gst_type_find_handle_src_query):
Subtract size of internally stored data from position queries.
Original commit message from CVS:
2004-11-07 Martin Soto <martinsoto@users.sourceforge.net>
* gst/schedulers/fairscheduler.c:
* gst/schedulers/faircothreads.c:
* gst/schedulers/faircothreads.h:
New cothread based scheduler: Fair scheduler.
* gst/schedulers/gthread-cothreads.h:
Add the standard #if around the whole file.
Defining symbol GTHREAD_COTHREADS_NO_DEFINITIONS will now prevent
compilation of the functions defined in this file. This is
necessary to be able to use this file as a normal header.
* gst/schedulers/Makefile.am: Add compiling support for fair
scheduler.
* docs/gst/Makefile.am (IGNORE_HFILES): Exclude internal fair
scheduler cothreads layer from documentation generation.
Original commit message from CVS:
* gst/autoplug/gstspideridentity.c:
(gst_spider_identity_sink_loop_type_finding):
Don't crash if that function is not implemented.
Original commit message from CVS:
* docs/pwg/intro-preface.xml:
Hm, ok, so the brackets weren't really useful...
* docs/pwg/other-ntoone.xml:
Fix embarassing typo.
Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c: (add_to_group),
(remove_from_group), (normalize_group), (group_migrate_connected),
(gst_opt_scheduler_iterate):
* testsuite/schedulers/.cvsignore:
* testsuite/schedulers/Makefile.am:
* testsuite/schedulers/queue_link.c: (main):
Added testcase for schduler segfault.
Fix scheduler segfault when removing a decoupled
entry point as the last element from a group.
Original commit message from CVS:
2004-11-03 Christophe Fergeau <teuf@gnome.org>
* docs/random/signal: added notes about using BOXED for GstBuffer
signal marshallers, not POINTER
Original commit message from CVS:
2004-11-03 Christophe Fergeau <teuf@gnome.org>
* gst/elements/gstidentity.c: (gst_identity_class_init): GstBuffer is
a boxed type, marshal the signal with VOID__BOXED, not VOID__POINTER
Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c: (add_to_group),
(gst_opt_scheduler_iterate):
Aplied patch #154061. Running a pipeline in which an element
calls GST_ELEMENT_ERROR in the chain function, the opt
scheduler doesn't unref the chain so it never gets freed.
Original commit message from CVS:
* gst/gststructure.c: (gst_structure_get_abbrs),
(gst_structure_from_abbr), (gst_structure_to_abbr):
Remove that ugly if-then thing in the code that converts
between strings and types.
Original commit message from CVS:
* gst/gstscheduler.c: (gst_scheduler_add_element),
(gst_scheduler_remove_element), (gst_scheduler_state_transition):
Aplied clock distribution patch, this should fix bug
#148787.
Original commit message from CVS:
* gst/parse/parse.l:
* testsuite/parse/parse1.c: (main):
Since parse can do 'element name=a:b' make 'a:b.' work as
well.
Added testcase to verify fix.
Original commit message from CVS:
* tools/gst-inspect.c: (print_pad_info), (print_plugin_features):
Use the realpad when printing the direction.
Add extra \n when printing extensions of typefind factories.
Original commit message from CVS:
* gst/gstqueue.c: (gst_queue_init), (gst_queue_handle_src_query):
Subtract current queue contents from position queries.
Original commit message from CVS:
2004-10-09 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* gst/elements/gstfakesrc.c: (gst_fakesrc_get):
Set element to EOS before sending EOS event
Original commit message from CVS:
* gst/elements/gsttypefindelement.c:
(gst_type_find_element_handle_event):
Handle EOS events when doing the transition from
typefind to data passing. This should fix the
infinite loops in short files.
Original commit message from CVS:
* gst/gstthread.c: (gst_thread_change_state),
(gst_thread_child_state_change):
Make sure no iteration happens while performing
the state change as it could mess up the internal
consistency of the thread state.
Original commit message from CVS:
* gst/gstthread.c: (gst_thread_dispose), (gst_thread_sync),
(gst_thread_change_state), (gst_thread_child_state_change):
Do not try to grab the iterate lock in the state change method
when we are in the same thread as the iterate or else we
could deadlock. Some other cleanups.
Original commit message from CVS:
* gst/elements/gsttypefindelement.c: (stop_typefinding):
Push the buffer store instead of clearing it in case that
the stream is not seekable.
Original commit message from CVS:
* gst/gstthread.c: (gst_thread_init), (gst_thread_change_state),
(gst_thread_main_loop):
Lock the iteration and the state change so that automatic
negotiation and fixation does not happen at the same time
as the in stream negotiation.
Original commit message from CVS:
* docs/Makefile.am:
* docs/manual/elements-api.xml:
restructure so that common stuff is shown first
* docs/manual/init-api.xml:
convert to examples
* docs/manual/manual.xml:
* docs/manuals.mak:
* docs/url.entities:
link to API on the website, possibly override later in build
* examples/manual/.cvsignore:
ignore more
* examples/manual/Makefile.am:
add more examples
* examples/manual/extract.pl:
error out on failure
Original commit message from CVS:
* gst/gstelement.c: (gst_element_change_state):
Well, actually, I was about to remove this insane assert when
I noticed Wim already did that. A warning is nice so we can
fix actual ugs (using --g-fatal-warnings and backtraces), so
I added that instead.
Original commit message from CVS:
* gst/gstelement.c: (gst_element_threadsafe_properties_pre_run),
(gst_element_threadsafe_properties_post_run),
(gst_element_set_state), (gst_element_change_state):
Added extra refcounting around various places.
Original commit message from CVS:
* gst/autoplug/gstspider.c: (gst_spider_class_init),
(gst_spider_identity_plug):
add a template for spider's sink
* gst/gst.c: (gst_register_core_elements):
queue's rank should be NULL, we don't want spider to add it.
Original commit message from CVS:
* gst/elements/gstfilesrc.c: (gst_filesrc_get_mmap):
work with non-regular files that can be mmapped (like /dev/zero)
* gst/elements/gsttypefindelement.c: (gst_type_find_element_chain):
get rid of typefinds that require a seek when we can't seek instead
of trying them over and over again
* tools/gst-launch.c: (idle_func), (error_cb), (main):
return non-zero failure value when the pipeline was interrupted or
an error occurred
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstscheduler.c: (gst_scheduler_register):
* gst/gstscheduler.h:
add gst_scheduler_register shortcut similar to gst_element_register
* gst/schedulers/entryscheduler.c: (plugin_init):
* gst/schedulers/gstbasicscheduler.c: (plugin_init):
* gst/schedulers/gstoptimalscheduler.c: (plugin_init):
use it
Original commit message from CVS:
2004-08-10 Colin Walters <walters@redhat.com>
* gst/registries/gstxmlregistry.c (gst_xml_registry_open_func):
Don't use O_EXCL to open temporary registry. It will prevent
registry creation if a temporary one already exists, which
is unnecessary.
Original commit message from CVS:
* tests/mass_elements.c: (main):
allow specifying src and sink element explicitly, so I can test
videotestsrc instead of fakesrc
Original commit message from CVS:
* gst/gststructure.c: (gst_structure_id_empty_new_with_size),
(gst_structure_id_empty_new), (gst_structure_empty_new),
(gst_structure_copy):
add gst_structure_id_empty_new_with_size to allow preallocating
value array sizes. Use this in gst_structure_copy to get rid of
reallocs.
don't do quark=>string=>quark when copying structures
Original commit message from CVS:
* gst/schedulers/entryscheduler.c:
(gst_entry_scheduler_remove_element):
fix for GST_DISABLE_DEBUG
* tools/gst-launch.c: (print_tag):
fixes for G_DISABLE_ASSERT
Original commit message from CVS:
* gst/gst.c: (gst_register_core_elements):
fix for G_DISABLE_ASSERT
* gst/gstinfo.c: (__gst_in_valgrind):
add for GST_DISABLE_DEBUG
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_get_type),
(gst_bin_child_state_change_func):
* gst/gstthread.c: (gst_thread_change_state):
Backported some debug logging from a reverted patch
Don't try to destroy the thread twice. Added some more
debugging in GstThread. Unlock and signal even if we
are in the thread context.
Original commit message from CVS:
* libs/gst/dataprotocol/dataprotocol-test.c: (conversion_test):
Use GST_READ_GUINTxx_BE(), since it accesses unaligned memory.
Original commit message from CVS:
* testsuite/caps/fraction-convert.c: (check_from_double_convert),
(check_from_fraction_convert), (transform_test), (main):
Make the test less pedantic about float roundoff errors.
Original commit message from CVS:
* gst/elements/gstfilesrc.c: (gst_filesrc_open_file),
(gst_filesrc_srcpad_event):
make seek events to before start/after end of file not fail, but
seek to start/end instead
* testsuite/caps/fraction-convert.c: (check_from_double_convert):
add more output
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_set_explicit_caps):
check that caps are fixed
* gst/gstpad.c: (gst_pad_template_new):
don't try to simplify caps, costs too much time on gst_init
* gst/gstplugin.c: (gst_plugin_add_feature):
G_ERROR if features are added twice
* gst/gsttypefind.c: (gst_type_find_register):
* gst/gstelementfactory.c: (gst_element_register):
don't add features twice
* docs/random/ds/0.9-suggested-changes:
add note about possible gst_init optimization
Original commit message from CVS:
* testsuite/elements/Makefile.am:
* testsuite/elements/struct_i386.h:
* testsuite/elements/struct_size.c: (main): A little test
to keep distcheck from working if someone changes a structure
size accidentally.
Original commit message from CVS:
* gst/gstbin.c: (set_kid_state_func), (gst_bin_set_state):
* gst/gstthread.c: (gst_thread_release), (gst_thread_set_state):
Make sure that a bin state change tries to keep the children
in sync.
Added debug logging to the thread.
Original commit message from CVS:
update the version number
add gstinterface to the build
add many definitions needed by plugins, GST_CAT_DEFAULT only available in the Debug build ?
Original commit message from CVS:
* gst/autoplug/gstspideridentity.c: (gst_spider_identity_link):
don't delay links on the sink elements, it causes unnegotiated
links.
* gst/elements/gsttypefindelement.c:
(gst_type_find_element_base_init):
add our padtemplates, we indeed do have some.
* gst/elements/gsttypefindelement.c:
(gst_type_find_element_handle_event),
(gst_type_find_element_chain):
don't push data when typefinding failed.
* gst/gstpad.c: (gst_pad_link_fixate):
check that no fixate function returns empty caps.
* gst/gstpad.c: (gst_pad_push):
check that the link is negotiated before data gets pushed.
* tools/gst-register.c: (main):
don't assert (fixes#148283)
Original commit message from CVS:
2004-07-23 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* gst/elements/gstmultifilesrc.c: (gst_multifilesrc_class_init),
(gst_multifilesrc_init), (gst_multifilesrc_set_property),
(gst_multifilesrc_get_property), (gst_multifilesrc_get):
* gst/elements/gstmultifilesrc.h:
Added newmedia property so it generates newmedia events between each
file when property is set, as well as fixed eos handling
Original commit message from CVS:
* gst/gststructure.c: (gst_structure_id_empty_new),
(gst_structure_empty_new): Set type field correctly.
* gst/gststructure.h: Check type field correctly.
* testsuite/caps/Makefile.am:
* testsuite/caps/structure.c: (test1), (main): Add a very small
test for structures.
Original commit message from CVS:
* docs/random/ds/0.9-suggested-changes: more comments
* tools/gst-launch.c: (idle_func): Fix hard-to-translate string.
Original commit message from CVS:
* gst/gstelementfactory.c: (gst_element_register):
set the factory in the class struct, so gst_element_get_factory
actually works
* gst/parse/grammar.y:
set element to playing when it gets unlocked as we can't rely on the
bin state - all elements in the bin state might still be locked in
NULL)
Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c: (remove_from_group),
(gst_opt_scheduler_pad_link):
fix 147894-2 and the group_link problem.
Original commit message from CVS:
* testsuite/schedulers/147894-2.c: (queue_empty), (queue_filled),
(handoff_identity), (main):
* testsuite/schedulers/147894.c: (queue_empty), (queue_filled),
(handoff_identity), (main):
* testsuite/schedulers/Makefile.am:
* testsuite/schedulers/group_link.c: (main):
Show bug in scheduler when linking chain and loop based element
where the chain based element was not yet in a group.
Original commit message from CVS:
* gst/.cvsignore:
* gst/autoplug/.cvsignore:
* gst/elements/.cvsignore:
* gst/indexers/.cvsignore:
* libs/gst/bytestream/.cvsignore:
* libs/gst/control/.cvsignore:
* libs/gst/getbits/.cvsignore:
* testsuite/states/.cvsignore:
* testsuite/threads/.cvsignore:
keep this up to date, since I seem to be the only one who cares
about not missing files on commits
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_get_type), (gst_bin_class_init),
(gst_bin_fix_state), (gst_bin_add_func), (gst_bin_remove_func),
(gst_bin_child_state_change_func), (set_kid_state_func),
(gst_bin_set_state), (gst_bin_change_state_norecurse):
make state changes work correctly and reentrant (so removing
elements from bins during state changes of bins doesn't cause
segfaults or even wrong states)
add debugging category and debugging output to print children states
* gst/gstbin.c: (gst_bin_dispose):
add some assertion checks
* gst/gstbin.h:
* gst/gstbin.c: (gst_bin_sync_children_state):
deprecate this function - it just does gst_bin_set_state (bin,
GST_STATE (bin))
* testsuite/threads/queue.c: (main):
don't use gst_bin_sync_children_state anymore
* testsuite/states/Makefile.am:
* testsuite/states/bin.c:
test that the state changes of bins work as expected
* gst/gstthread.c: (gst_thread_class_init), (gst_thread_set_state):
some adjustments to change states correctly, too
* gst/gstthread.c: (gst_thread_change_state):
don't enable/disable "threadsafe" properties, they're unused and
cause random segfaults
* testsuite/threads/Makefile.am:
the queue check randomly passes now, ignore it
Original commit message from CVS:
* gst/schedulers/entryscheduler.c:
(gst_entry_scheduler_loop_wrapper),
(gst_entry_scheduler_chain_wrapper),
(gst_entry_scheduler_get_wrapper):
reset the state when the cothread starts, so we don't get assertion
failures on restarting of cothreads
Original commit message from CVS:
* gst/gstelement.c: (gst_element_link_pads_filtered):
use correct sinkpad, if only sinkpad is specified, but not srcpad
(fixes#147889)
* gst/gstelement.c: (gst_element_set_state_func),
(gst_element_change_state): ref/unref the element, signal handlers
could get rid of the element otherwise
Original commit message from CVS:
* docs/random/ds/0.9-suggested-changes:
Make note about renaming fixed-list to array.
* gst/gstvalue.c: (gst_value_intersect_fixed_list),
(_gst_value_initialize):
Add array intersections.
* testsuite/caps/intersect2.c: (main):
Add test for array intersections.
Original commit message from CVS:
* testsuite/schedulers/142183-2.c: (handoff_identity), (main):
* testsuite/schedulers/142183.c: (handoff_identity), (main):
* testsuite/schedulers/Makefile.am:
Added testsuite for bug 142183 in its two incarnations. Refcount
is not increased for scheduled elements and threadsafe properties
mutexes are not properly unlocked.
Original commit message from CVS:
* gst/schedulers/gstoptimalscheduler.c: (gst_opt_scheduler_init),
(create_chain), (destroy_chain), (create_group), (destroy_group),
(add_to_group), (merge_groups), (group_elements), (group_inc_link),
(group_dec_link), (gst_opt_scheduler_pad_link),
(group_inc_links_for_element), (group_migrate_connected):
Call group_inc_link with the proper src->sink ordering --
break this, and we break sort_chain. patch from wingo for bug
147713.
Partially revert patch 1.89. When adding a loop based element to
the scheduler, the links to other groups are automatically followed
and incremented. This should not happen because the bin will call
pad_link explicitly for those connection, resulting in them counted
twice. Results in assertion failure on pipeline cleanup.
Original commit message from CVS:
* testsuite/schedulers/143777-2.c: (main):
* testsuite/schedulers/147713.c: (handoff_src), (handoff_sink),
(main):
* testsuite/schedulers/Makefile.am:
Added cleanup code to testcase 143777-2.
Added testcase to show bug 147713, does not really show the
deadlock as I can't figure out how to trigger it, but it does
demonstrate bad ordering in the scheduler.
Original commit message from CVS:
* gst/gstvalue.c: (gst_greatest_common_divisor):
use ints and return ints, fractions only use ints, too, so this
avoids accidently casting multiplications to unsigned
(gst_value_lcopy_fraction): it's ints, not uint32
(gst_value_set_fraction): disallow minint, multiplying and negation
are broken with it
(gst_value_fraction_multiply): fix to make large numbers work and get
rid of the assumption that the multiplication of two ints fits an
int64 - dunno if that's true for all systems
* testsuite/caps/Makefile.am:
* testsuite/caps/fraction-multiply-and-zero.c:
(check_multiplication), (check_equal), (zero_test), (main):
add tests for all the stuff above
* testsuite/caps/value_compare.c: (test1):
fix comment
* tests/.cvsignore:
* testsuite/caps/.cvsignore:
* testsuite/debug/.cvsignore:
* testsuite/dlopen/.cvsignore:
* testsuite/states/.cvsignore:
get up to date
Original commit message from CVS:
2004-07-16 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* docs/manual/bins-api.xml:
* docs/manual/factories.xml:
* docs/manual/helloworld.xml:
* docs/manual/links-api.xml:
fixes for out of date info, incorrect info and grammar