Original commit message from CVS:
* plugins/elements/gstcapsfilter.c: (gst_capsfilter_prepare_buf):
The caps intersection algorithm can produce multiple copies of the
caps. Until that is fixed, we need to simplify the result to be
sure whether the allowed caps are fixed or not.
* plugins/elements/gstqueue.c: (gst_queue_init),
(gst_queue_bufferalloc), (gst_queue_acceptcaps),
(gst_queue_push_one):
Proxied buffer alloc should not set the caps on the source pad.
When pushing buffers, we always accept the caps change that triggers.
This prevents negotiation errors caused by caps changing mid-stream
and then being refused on our source pad (because upstream is now
refusing those caps).
Original commit message from CVS:
* tests/examples/helloworld/helloworld.c: (main):
Must plug audioconvert and audioresample between decoder
and audio sink.
Original commit message from CVS:
* gst/gstregistryxml.c: (read_string), (load_pad_template),
(load_feature), (load_plugin):
Allow empty strings for some of the plugin fields so we don't
drop valid plugin entries that were written out correctly.
Original commit message from CVS:
* gst/gstregistryxml.c: (gst_registry_xml_write_cache):
Use g_remove and g_rename instead of remove and rename that don't
handle utf8 characters. rename was failing for users who had specific
characters in their name then the registry was built at each gstreamer init.
* win32/vs6/gst_inspect.dsp:
* win32/vs6/gst_launch.dsp:
* win32/vs6/libgstbase.dsp:
* win32/vs6/libgstcoreelements.dsp:
* win32/vs6/libgstreamer.dsp:
Use a debug version of libxml2 (libxml2D.lib,libxml2D.dll) for DEBUG build
of libgstreamer and clean unused libraries in project links settings.
Original commit message from CVS:
* plugins/elements/gstqueue.c: (gst_queue_push_one):
The queue is not responsible for pushing an EOS when receiving a fatal
flow error. It's up to the real element driving the pipeline to do that.
Original commit message from CVS:
* plugins/elements/gstqueue.c: (gst_queue_push_one):
The queue was posting a non-needed GST_MESSAGE_ERROR when pushing a
buffer returned a fatal error. It should just send an EOS and stop
it's task.
Upstream elements will then properly receive the GST_FLOW_UNEXPECTED
when pushing buffers on the queue and will be able to handle the event.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_position):
Don't report POSITION based on clock time if sync is
disabled in a sink.
Original commit message from CVS:
* gst/gstobject.h:
Add cast to make compiler happy - refcount variable was a gint
in GstObject but is a guint in GObject and g_atomic_int_get()
wants a gint *.
Original commit message from CVS:
* tools/gst-launch.c: (print_tag):
Fix use of uninitialized variable in the hypothetical
case that some broken plugin creates a GST_TAG_IMAGE
tag containing a NULL buffer (#341667).
Original commit message from CVS:
* tools/gst-launch.c: (print_tag):
Print something more intelligible for image tags when
using the -t switch (#341556).
Original commit message from CVS:
* Makefile.am:
updates for win32
* configure.ac:
define GST_MAJORMINOR so we have it available in win32/common/config.h
Possibly remove it from our Makefile.am files later
* win32/common/config.h:
* win32/common/config.h.in:
added GST_MAJORMINOR
* win32/common/gstenumtypes.c: (register_gst_resource_error):
* win32/common/gstversion.h:
updated
Original commit message from CVS:
* plugins/elements/gstqueue.c: (gst_queue_chain), (gst_queue_loop),
(gst_queue_set_property):
Don't forget to signal the _chain or _loop function
when the queue size or thresholds change since that might
cause them to make progres again.
Original commit message from CVS:
* gst/gstbuffer.c: (_gst_buffer_initialize):
Register subbufer along with the buffer type so that
it does not accidentally gets registered from N
different streaming threads in a non threadsafe way.
Original commit message from CVS:
* gst/gstbuffer.h:
* gst/gstevent.h:
* gst/gstmessage.h:
Make gtk-doc generate docs for our inlined gst_buffer_ref(),
gst_event_ref() and gst_message_ref() functions again
(ugly hack, please do fix if there's a better way besides
overrides.txt, which doesn't seem to work).
Original commit message from CVS:
2006-05-10 Thomas Vander Stichele <thomas at apestaart dot org>
* libs/gst/check/gstcheck.h:
add an assert for setting state to avoid lots of repetitive code
in the future
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_serialize_flags):
fix a leak if no flags are set
* tests/check/gst/gstvalue.c: (GST_START_TEST):
fix leak in tests
Original commit message from CVS:
* docs/manual/basics-pads.xml:
Expand a bit on caps and filtered links and update
examples that were still using the no longer existing
gst_pad_link_filtered() (#338206).
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_finalize),
(gst_collect_pads_add_pad), (gst_collect_pads_remove_pad),
(gst_collect_pads_set_flushing), (gst_collect_pads_start),
(gst_collect_pads_stop):
* libs/gst/base/gstcollectpads.h:
No need to call _stop in _finalize.
Iterate the main pad list in _finalize.
Added some more debug.
Free lists and data in the right order.
Also free data whem doing _remove_pad when stopped for
backward compatibility protect ::started with PAD_LOCK as
well.
Original commit message from CVS:
* gst/gststructure.c: (gst_structure_gtype_from_abbr),
(gst_structure_parse_value):
add some comments
rename a method so that it actually says what it does better
Original commit message from CVS:
* gst/gstevent.c: (_gst_event_initialize):
* gst/gstformat.c: (_gst_format_initialize):
make sure some essential types used by events are registered
as part of gst_init()
* gst/gstvalue.c: (gst_value_serialize_flags):
if no flags are set, serialize them to a value that represents NONE
so that deserializing them works
* tests/check/gst/gstvalue.c: (GST_START_TEST), (gst_value_suite):
add tests for serialization and deserialization of flags
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_collect),
(gst_collect_pads_collect_range), (gst_collect_pads_available),
(gst_collect_pads_check_pads), (gst_collect_pads_check_collected),
(gst_collect_pads_event), (gst_collect_pads_chain):
Update docs.
Better debug info.
Catch and return errors from the collect function
Refuse data on eos pads.
Original commit message from CVS:
* gst/gstinterface.h:
GST_IMPLEMENTS_INTERFACE and GST_IS_IMPLEMENTS_INTERFACE use the normal
GInterface type checking.
They were previously using non-defined macros.
Original commit message from CVS:
* libs/gst/base/gstcollectpads.c: (gst_collect_pads_init),
(gst_collect_pads_finalize), (gst_collect_pads_add_pad),
(gst_collect_pads_remove_pad), (gst_collect_pads_set_flushing),
(gst_collect_pads_start), (gst_collect_pads_stop),
(gst_collect_pads_peek), (gst_collect_pads_pop),
(gst_collect_pads_available), (gst_collect_pads_read),
(gst_collect_pads_flush), (gst_collect_pads_check_pads),
(gst_collect_pads_is_collected), (gst_collect_pads_event),
(gst_collect_pads_chain):
* libs/gst/base/gstcollectpads.h:
Clean up the mess that is collectpads, add comments and
FIXMEs where needed.
Maintain a separate pad list so we can add pads while
collecting the other ones. For this we need a new separate
lock (see comics).
Fix memory leak in finalize.
Refactor some weird code to set/unset pad flushing flags, mark
with comments.
Don't crash in _available, _read, _flush when we're EOS.
* tests/check/libs/.cvsignore:
Ignore adapter check binary.
Original commit message from CVS:
* gst/gstbuffer.c: (gst_buffer_make_metadata_writable):
gst_buffer_make_metadata_writable() should maintain the
buffer flags (those that make sense at least) (see #340859).
Original commit message from CVS:
* tools/gst-inspect.c:
* tools/gst-launch.c:
* tools/gst-typefind.c:
* tools/gst-xmlinspect.c:
* tools/tools.h:
Fix up includes: need to include stdlib.h in tools.h for exit().
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek),
(gst_base_src_loop), (gst_base_src_change_state):
Always push non-flushing serialized events in the streaming
thread.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_configure_segment):
Add applied_rate to the debug
* libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek):
Copy applied_rate into the outgoing NEWSEGMENT event
Original commit message from CVS:
Patch by: Philippe Rouquier <philippero at libertysurf dot fr>
* libs/gst/base/gstbasesink.c: (gst_base_sink_set_flushing),
(gst_base_sink_change_state):
call ::unlock before taking the PREROLL_LOCK so we can safely
handle elements that lock in ::render.
Fixes#340174.
Original commit message from CVS:
* autogen.sh: (CONFIGURE_DEF_OPT):
Darwin's libtoolize is in fact called glibtoolize.
Adding glibtoolize to the list of accepted names for libtoolize.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_loop):
Unify error handling, don't post an error message
when a push() returns EOS but perform our normal EOS
handling code. Fixes#340772.
Original commit message from CVS:
* docs/design/part-overview.txt:
Make upsteam/downstream concepts more clear.
Give an example of serialized/non-serialized events.
* docs/design/part-events.txt:
* docs/design/part-streams.txt:
Mention applied_rate.
* docs/design/part-trickmodes.txt:
Mention applied rate, flesh out some more use cases.
* gst/gstevent.c: (gst_event_new_new_segment),
(gst_event_parse_new_segment), (gst_event_new_new_segment_full),
(gst_event_parse_new_segment_full), (gst_event_new_tag),
(gst_event_parse_tag), (gst_event_new_buffer_size),
(gst_event_parse_buffer_size), (gst_event_new_qos),
(gst_event_parse_qos), (gst_event_parse_seek),
(gst_event_new_navigation):
* gst/gstevent.h:
Add applied_rate field to NEWSEGMENT event.
API: gst_event_new_new_segment_full()
API: gst_event_parse_new_segment_full()
* gst/gstsegment.c: (gst_segment_init), (gst_segment_set_seek),
(gst_segment_set_newsegment), (gst_segment_set_newsegment_full),
(gst_segment_to_stream_time), (gst_segment_to_running_time):
* gst/gstsegment.h:
Add applied_rate to GstSegment structure.
Make calculation of stream_time and running_time more correct
wrt rate/applied_rate.
Add some more docs.
API: GstSegment::applied_rate field
API: gst_segment_set_newsegment_full();
* libs/gst/base/gstbasesink.c: (gst_base_sink_configure_segment),
(gst_base_sink_get_sync_times), (gst_base_sink_get_position):
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_sink_eventfunc),
(gst_base_transform_handle_buffer):
Parse and use applied_rate in the GstSegment field.
* tests/check/gst/gstevent.c: (GST_START_TEST):
Add check for applied_rate field.
* tests/check/gst/gstsegment.c: (GST_START_TEST),
(gstsegments_suite):
Add more checks for various GstSegment operations.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times),
(gst_base_sink_do_sync), (gst_base_sink_chain_unlocked),
(gst_base_sink_get_position), (gst_base_sink_change_state):
Store the sync time of the buffer end position separatly in a
new variable eos_rtime so we can properly sync the EOS event.
Fixes#340697.
Fix the docs for gst_base_sink_set_qos_enabled().
Don't set segment start to invalid value when we receive a
non TIME newsegment.
get closer to handling position reporting for negative rates
correctly.
Original commit message from CVS:
* gst/gstcaps.c:
Docs about how to print caps for debug purposes.
* gst/gstpadtemplate.c: (gst_static_pad_template_get):
use gst_caps_make_writable instead of gst_caps_copy, Fixes#340608
Original commit message from CVS:
* gst/gstelement.c:
use full enum names and preprend a '%' in docs strings to make recent
gtk-doc turn that into a link
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.