Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times),
(gst_base_sink_get_position):
The reported position must always be smaller than the last seen
timestamps (or timestamp + duration for reverse).
Original commit message from CVS:
Patch by: Rob Bradford <rob at robster dot org dot uk>
* gst/gstregistry.c: (gst_registry_scan_path_level):
Don't recurse into .debug directories as some distros install
the debugging symbols next to the plugins in .debug directories
and dlopen() crashes on them sometimes. Fixes bug #508070.
Add FIXME for 0.11 to not recurse into directories at all because
it's very inconsistent to the behaviour of other PATH environment
variables.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times),
(gst_base_sink_get_position_last), (gst_base_sink_get_position):
Fix position query range checks in reverse playback.
Original commit message from CVS:
* gst/gstelement.c:
* gst/gstelement.h:
Deprecated gst_element_get_pad() as it can't be used sanely. It's not
clear of the reference to the resulting pad must be released later
or not, resulting in possible leaks. Fixes bug #533865.
Original commit message from CVS:
Patch by: José Alburquerque <jaalburqu at svn dot gnome dot org>
* gst/gstelementfactory.c:
Small doc fix. Fixes#535285.
Original commit message from CVS:
Based on patch by: Bjarne Rosengren <bjarne at axis dot com>
* libs/gst/base/gstbasesrc.c: (gst_base_src_send_event),
(gst_base_src_get_range), (gst_base_src_pad_get_range),
(gst_base_src_loop), (gst_base_src_set_flushing),
(gst_base_src_change_state):
Make sending an EOS event to the basesrc non-blocking even if the
implementation does blocking waits in the create function. This is done
by unlocking the create function when EOS is sent.
Fixes#535218.
Original commit message from CVS:
* tools/gst-inspect.c: (print_element_properties_info):
If possible print the element type of GValueArray properties.
Original commit message from CVS:
* tests/check/gst/gstpipeline.c:
Extending the test a little to verify that we also get the NULL state-
change message.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_event_default_dispatch):
The default event function on a sinkpad should return TRUE when
there are no internal links but should collect the return values from
the internal links otherwise.
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_src_event),
(gst_type_find_element_handle_event):
Use faster and safer _pad_push_event().
Original commit message from CVS:
* gst/parse/grammar.y:
* tests/check/pipelines/parse-launch.c:
Get all missing elements from a parse launch string if possible
(ie. if the FATAL_ERRORS flag has been specified). Fixes#528178.
Original commit message from CVS:
* tests/check/Makefile.am:
* tests/check/pipelines/parse-launch.c:
Add some unit tests for the new gst_parse_launch*_full() API.
(Exposes a previously-existing memory leak in the error code
path, so adding to VALGRIND_TO_FIX for now).
Original commit message from CVS:
patch by: Suresh Kumar P <sureshkumar.pp@gmail.com>
* docs/faq/gst-uninstalled:
Also support ffmpeg in gst-uninstalled.
Original commit message from CVS:
* configure.ac:
After discussion on IRC use the binary registry as default
but allow to disable it with --disable-binary-registry.
* win32/common/libgstreamer.def:
Add the two new symbols for the binary registry.
Original commit message from CVS:
* gst/gstparse.c: (_gst_parse_escape), (gst_parse_launchv):
* gst/gstutils.c: (gst_parse_bin_from_description):
* gst/parse/grammar.y: (graph):
More guards against bad input; typo fix; some minor clean-ups.
Original commit message from CVS:
Patch by: Sjoerd Simons <sjoerd at luon dot net>
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_sync_times):
If nothing else can be used, use the last buffer's start time as
the segment's last stop. Fixes bug #534258.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_alloc_buffer_full):
Move size sanity check to the right place: downstream may return
a buffer with a smaller size if the buffer caps are different than
the requested ones, as may happen when doing reverse negotiation.
Original commit message from CVS:
* plugins/elements/gstfilesink.c: (gst_file_sink_set_location),
(gst_file_sink_render):
* plugins/elements/gstfilesrc.c: (gst_file_src_set_location),
(gst_file_src_start):
Small cleanups. Add note adbout g_fopen() on windows and why we don't
use it yet.
Original commit message from CVS:
* docs/manual/advanced-autoplugging.xml:
* docs/manual/basics-helloworld.xml:
* docs/manual/basics-pads.xml:
* docs/manual/highlevel-components.xml:
Avoid using a bad function in the example code.
Original commit message from CVS:
Patch by: Tim-Philipp Müller <tim.muller at collabora co uk>
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_sink_event):
Unref events that the GstBaseTransform::event vfunc didn't want to
have forwarded by the base class. Closes a leak in identity.
Fixes bug #446763.
Original commit message from CVS:
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/base/gstbasesink.c: (gst_base_sink_wait_clock):
* libs/gst/base/gstbasesink.h:
Expose a method that was previously used internally to synchronize
against the clock because it can be useful for subclasses too.
GstBaseSink::gst_base_sink_wait_clock()
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_buffer_alloc_unchecked):
Add sanity check to make sure we don't get smaller buffers
than requested (and fallback to normal buffer alloc if we do).
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_adjust_time),
(gst_base_sink_wait_clock), (gst_base_sink_wait_eos),
(gst_base_sink_do_sync), (gst_base_sink_chain_unlocked):
Refactor adjusting the running_time with latency and offset into a
separate method.
When doing clipping, we still want to use the subclass get_times method,
just in case the DURATION or TIMESTAMP are not set.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_start):
Use right error code when typefinding fails, so we can use
the default (translated) error messages.
Original commit message from CVS:
* libs/gst/base/gstbasesrc.c: (gst_base_src_get_range),
(gst_base_src_start):
When the subclass did not set caps on outgoing buffers, configure the
caps we negotiated on the source pad.
When the typefind helper does not find caps, error out properly instead
of doing things with NULL caps.
Original commit message from CVS:
* tests/check/gst/gstcaps.c: (test_intersect2), (gst_caps_suite):
Add David's and Benjamin's tests for array subtraction to the
unit test suite, which suggests that #147931 is fixed these days.
Original commit message from CVS:
* gst/gstevent.c:
Document that gst_event_new_tag() and gst_event_new_navigation()
take ownership of the taglist/structure passed to them. (#533635).
Original commit message from CVS:
* docs/Makefile.am:
Don't descend into the plugins dir if plugin docs building
is disabled.
* docs/README:
Add a note about the new type:GTypeName syntax for the plugin
documentation .types file.
Original commit message from CVS:
* gst/gstmessage.c: (gst_message_new_error),
(gst_message_new_warning), (gst_message_new_info):
* gst/gstmessage.h:
Mark the debug string parameters as const. Fixes bug #533490.
Original commit message from CVS:
* libs/gst/base/gsttypefindhelper.c: (helper_find_peek):
Sort buffer cache list by end offsets. This makes sure that we don't
stop to search for a cached buffer that contains the requested data
too early.
Also read a minimum of 4k bytes instead of 512 bytes as this is a bit
more efficient. Fixes bug #459862.
Original commit message from CVS:
* gst/gstinfo.c:
Explain why we copy the list.
* gst/gstpipeline.c:
Improve docs.
* gst/gstutils.c:
Add one debug-log statement to help tracing probelms with linking pads.
Original commit message from CVS:
* gst/parse/grammar.y:
Remove unneeded value unset.
* tests/check/gst/gstvalue.c: (GST_START_TEST), (gst_value_suite):
Add unit test for de/serialization of caps.
Original commit message from CVS:
* plugins/elements/gstfakesink.c:
(marshal_VOID__MINIOBJECT_OBJECT), (gst_fake_sink_class_init):
* plugins/elements/gstfakesrc.c: (marshal_VOID__MINIOBJECT_OBJECT),
(gst_fake_src_class_init):
Use custom marshalers that take GstMiniObject as first parameter.
Using OBJECT as parameter while a GstMiniObject is given will lead
to assertions if built with G_ENABLE_DEBUG. Fixes bug #525532.
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c:
(gst_type_find_element_handle_event),
(gst_type_find_element_send_cached_events),
(gst_type_find_element_change_state):
Clean up on FLUSH_STOP and not FLUSH_START. Forward both events
immediately.
Original commit message from CVS:
* plugins/elements/gsttypefindelement.c:
(gst_type_find_handle_src_query), (stop_typefinding),
(gst_type_find_element_handle_event),
(gst_type_find_element_send_cached_events),
(gst_type_find_element_change_state):
Forward FLUSH_START events immediately and clean up instead of
caching them.
Original commit message from CVS:
Patch by: Sjoerd Simons <sjoerd at luon dot net>
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_buffer_alloc):
Check the caps of the buffer returned by gst_pad_alloc_buffer() and
fall back to default negotiation in the chain function if the caps
are different from what was requested. Fixes bug #526768.
Original commit message from CVS:
* gst/gstsegment.c:
* tests/check/gst/gstsegment.c:
No, let's not use g_slice_{dup|copy} here, since they only exist
since GLib 2.14 and we still depend only on >= 2.12. Also add
unit test for gst_segment_copy().
Original commit message from CVS:
* gst/gstutils.h: (GST_BOILERPLATE_FULL):
Try to fix 'dereferencing type-punned pointer will break strict
aliasing rules' warnings with C++ compilers and GLib >= 2.14.0: GLib
changed the default GType typedef from gulong to gsize at some point,
but kept GType typedef'ed to gulong for C++ for ABI reasons; the
g_once_* functions all take a gsize * though, so work around the type
mismatch for C++ by doing everything in gsize and casting to GType
later.
Original commit message from CVS:
* plugins/elements/gstmultiqueue.c:
Add documentation for the signals to push our core plugin docs
coverage back up to 100%.
Original commit message from CVS:
* gst/gstinfo.h (GST_FUNCTION):
Reverted GST_FUNCTION to the old version as we don't want the
full signature in C++ code. Also added support for MSVC.
Original commit message from CVS:
Based on a patch by: Sjoerd Simons <sjoerd at luon dot net>
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_buffer_alloc):
Don't passthrough buffer allocation too easily if the caps change.
This breaks when working in passthrough mode and upstream changes
it's caps. Fixes bug #526768.
Original commit message from CVS:
* win32/common/config.h.in:
Don't define GST_FUNCTION, if GLib supports MSVC we'd much rather
use the real thing than having "???" unconditionally.
Original commit message from CVS:
* plugins/elements/gstfakesrc.c: (gst_fake_src_class_init),
(gst_fake_src_init), (gst_fake_src_set_property),
(gst_fake_src_get_property), (gst_fake_src_start):
* plugins/elements/gstfakesrc.h:
Added format property to control the format of the newsegment events.
API: GstFakeSrc:format
Original commit message from CVS:
Patch by: Sjoerd Simons <sjoerd at luon net>
* gst/gstbus.c: (gst_bus_source_dispatch):
Don't print a warning if the queue is empty when we try to pop
here. That could happen if another thread or callback set the
bus to flushing between the source's check/prepare and the
dispatch being called (#531538).
Original commit message from CVS:
* tests/check/gst/gstvalue.c: (GST_START_TEST), (gst_value_suite):
Add unit test for deserializing uint64s and check some really large
numbers in the int64 test.
Original commit message from CVS:
* tools/gst-inspect.c: (n_print), (print_hierarchy),
(print_interfaces), (print_element_properties_info),
(print_signal_info):
Use "%s" as format string instead of printing strings directly.
Original commit message from CVS:
* gst/gstclock.c: (gst_clock_set_calibration):
Make some checks actually useful.
* gst/gstregistrybinary.c: (gst_registry_binary_load_plugin):
Remove some unused code. Unsigned integers tend to be >= 0.
Original commit message from CVS:
* gst/gstminiobject.c: (gst_value_get_mini_object):
Fix 'Since:' version in gst_value_dup_mini_object() docs blurb: this
function was not in the unscheduled 0.10.19 release.
Original commit message from CVS:
* gst/gstdebugutils.c: (debug_dump_element_pad):
Remove some code that is unused after Stefan's refactoring and uses
uninitialized variables now, resulting in a compiler warning.
Original commit message from CVS:
* gst/gstregistry.c: (gst_registry_scan_path_level):
Run g_str_has_suffix() only on the file name, not the
entire file path.
Original commit message from CVS:
* plugins/elements/gstqueue.c: (gst_queue_leak_downstream):
Since we're not called only from the chain function any longer,
we can't assume that there's always data in the queue, so move
the is_full check to the beginning of the loop (otherwise we'd
hit the assert when changing the limit properties while the
queue is empty or not running yet).
Also, only set a discont if items were actually removed from
the queue.
* tests/check/elements/queue.c: (test_leaky_downstream):
Test case for the above.
Original commit message from CVS:
Patch by: Jonas Holmberg <jonas dot holmberg at axis dot com>
* plugins/elements/gstqueue.c: (gst_queue_leak_downstream),
(gst_queue_chain), (queue_capacity_change),
(gst_queue_set_property):
When changing thr max capacity of a leaky queue, immediatly drop buffers
instead of waiting for a push on the sinkpad. Fixes#530637.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstevent.c: (gst_event_has_name):
* gst/gstevent.h:
* tests/check/gst/gstevent.c: (GST_START_TEST):
Add method to conveniently check the name of a custom event with
gst_event_has_name().
Reformat the event docs so that related methods are put together instead
of the default alphabetical sort.
Update unit test with new method.
API: GstEvent::gst_event_has_name()
Original commit message from CVS:
* libs/gst/check/Makefile.am:
Don't add an explicit link to libgstreamer-0.10.la; it's already
included in GST_OBJ_LIBS.
Original commit message from CVS:
Patch by Edward Hervey <edward.hervey@collabora.co.uk>
* tools/gst-run.c:
Include <unistd.h> conditionally on HAVE_UNISTD_H as elsewhere.
Original commit message from CVS:
* gst/gstbin.c: (gst_bin_class_init), (gst_bin_init),
(gst_bin_dispose):
Use the GLib stuff to create a private structure.
Add some locking around some dispose methods to make them a little
safer, see #529723. Patch by: Antoine Tremblay <hexa00 at gmail dot com>
Original commit message from CVS:
* gst/gst.c: (init_post), (gst_deinit):
* tests/check/gst/gstpipeline.c: (GST_START_TEST), (pipeline_thread),
(test_concurrent_create), (gst_pipeline_suite):
Ref some more classes in gst_init() to work around thread-safety
issues in pre-2.16 GLibs, and add basic unit test.
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_query_latency),
(gst_base_sink_send_event):
Rearrange the latency query code. We always want to do the upstream
query, even if we are not live so that the upstream elements can get the
latency results too. If we fail doing the query and we are live, we
return TRUE afterwards.
Original commit message from CVS:
patch by: Jason Zhao <e3423c@motorola.com>
* docs/gst/running.xml:
* gst/gst.c:
Enable/disable scan_and_update_registry() based on commandline switch
or environment variable. Fixes#520468.
* ChangeLog:
Fix typo in my previous commit.
Original commit message from CVS:
* gst/gstregistrybinary.c:
Add a warning of we hit unhandled factories when saving.
More debug logging detail, but move to LOG category.