Original commit message from CVS:
* gst/gstcaps.c: (gst_caps_merge_structure):
* gst/gstcaps.h:
Fix docs and indentation again.
* tests/check/gst/gstquery.c: (GST_START_TEST):
Fix leak in tests and add some more tests.
Original commit message from CVS:
Patch by: Torsten Schoenfeld <kaffeetisch at gmx dot de>
* gst/gstquery.c: (gst_query_new_segment):
* tests/check/gst/gstquery.c: (GST_START_TEST):
Initialize variables when creating a new segment query.
Fixes#353121.
Original commit message from CVS:
Patch by: Torsten Schoenfeld <kaffeetisch at gmx dot de>
* gst/gstelement.c: (gst_element_get_bus):
* tests/check/gst/gstelement.c: (GST_START_TEST):
Check for NULL before _reffing the bus. Fixes#353122.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_start_task), (gst_pad_pause_task),
(gst_pad_stop_task):
Improve debugging for task functions.
* gst/gsttask.c: (gst_task_func), (gst_task_set_lock),
(gst_task_start), (gst_task_pause), (gst_task_join):
Make sure that the task function started and finished after a
join().
Don't try to push the task function on the threadpool multiple
times.
Improve the g_warning message with some useful suggestions
about how to fix the problem.
Original commit message from CVS:
* gst/gstxml.c: (gst_xml_dispose), (gst_xml_parse_file),
(gst_xml_parse_memory), (gst_xml_get_element):
Chain up to parent class in dispose function and also
unref the elements in the toplevel_elements GList.
Don't leak XmlDocPtr in _parse_file() and _parse_memory().
Always return a reference in gst_xml_get_element() rather
than only sometimes.
* tools/gst-launch.c: (xmllaunch_parse_cmdline):
Don't leak GstXml object.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstcaps.c: (gst_structure_is_equal_foreach),
(gst_caps_merge):
* gst/gstcaps.h:
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_transform_caps):
API: Add gst_caps_merge() and use it in basetransform, fixes#345444
in a better way
Original commit message from CVS:
* gst/gstxml.c: (gst_xml_class_init), (gst_xml_dispose):
Implement GObject::dispose virtual method in GstXML so we can free the
top_elements GList.
Original commit message from CVS:
* gst/gstbuffer.c: (gst_buffer_make_metadata_writable),
(gst_buffer_create_sub):
Copy duration/offset_end/caps when creating a subbuffer of the
complete parent.
Make the subbuffer read-only when we make the metadata writable for
now. Fixes#351768.
* tests/check/gst/gstbuffer.c: (GST_START_TEST):
Added check for metadata copy when creating subbuffers.
Original commit message from CVS:
* gst/gst.c:
* gst/gstpad.c: (gst_pad_set_active):
* libs/gst/base/gstbasetransform.c:
(gst_base_transform_transform_caps):
Simplify caps to get rid of duplicates, fixes#345444
Original commit message from CVS:
* gst/gstvalue.c: (gst_value_compare_list),
(gst_value_compare_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_range),
(gst_value_get_compare_func), (gst_value_compare),
(gst_value_compare_with_func):
* gst/gstvalue.h:
Saves the expensive lookup of the compare function in many cases
(#345444)
Original commit message from CVS:
* docs/random/ensonic/logging.txt:
update ideas
* gst/gstinfo.c: (gst_debug_log_default):
reorder fields, save some columns, add optinal color codes for log-
levels
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/Makefile.am:
* gst/gst.c: (init_post):
* gst/gst_private.h:
* gst/gstquark.c: (_priv_gst_quarks_initialize):
* gst/gstquark.h:
* 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_new_convert),
(gst_query_set_convert), (gst_query_parse_convert),
(gst_query_new_segment), (gst_query_set_segment),
(gst_query_parse_segment), (gst_query_new_seeking),
(gst_query_set_seeking), (gst_query_parse_seeking):
Add internal helpers for pre-registering quarks from static strings
and using the quark values directly instead of looking them up when
creating and parsing queries. Can be used for event construction too.
Closes#350432.
Original commit message from CVS:
* gst/gstutils.c: (gst_util_set_value_from_string):
Fix memleak (#351502).
* tests/check/gst/gstutils.c: (GST_START_TEST), (gst_utils_suite):
Add unit test for most of gst_util_set_value_from_string()
(not that one would want to encourage use of this function).
Original commit message from CVS:
* gst/gstinfo.c: (gst_debug_print_object):
Make GST_PTR_FORMAT print messages as well.
* tests/check/gst/gstinfo.c: (printf_extension_log_func),
(GST_START_TEST), (gst_info_suite):
More tests.
Original commit message from CVS:
* gst/gstelementfactory.c: (gst_element_register):
If the GstElementClass doesn't have a GstElementDetails with all fields
filled up correctly (longname, description AND author), then error out
nicely instead of crashing.
Original commit message from CVS:
* gst/gststructure.c:
Fix typo in docs and re-wrap docs blurb to not exceed 80 chars/line.
* gst/gstvalue.h:
Expand on the difference between arrays and lists as we use them.
Original commit message from CVS:
* gst/gstbuffer.c:
* gst/gsttask.c: (gst_task_join):
Small doc updates.
* gst/gstpad.c: (gst_pad_activate_pull), (gst_pad_activate_push),
(gst_pad_stop_task):
When pad (de)activation failed for some reason, restore the old
activation mode and set the pad to flushing instead of assuming the
pad is deactivated.
If the _task_join() failed, reinstall the task on the pad so that it can
be stopped later and return an error.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
Add GstClockClass vmethod docs.
* gst/gstcaps.h:
Mark #endif with comment for associated #if
* gst/gstclock.c: (gst_clock_id_wait):
* gst/gstclock.h:
Add vmethod wait_jitter to avoid an unneeded _get_time() for
most clock implementations.
Document vmethods.
Flesh out docs about resolution methods.
API: GstClockClass::wait_jitter
* gst/gstsystemclock.c: (gst_system_clock_class_init),
(gst_system_clock_async_thread),
(gst_system_clock_id_wait_jitter_unlocked),
(gst_system_clock_id_wait_jitter):
Use base class wait_jitter variant for improved performance
due to less clock polling.
Original commit message from CVS:
* gst/gst.c: (gst_init_check), (init_post):
Set gst as being initialized before scanning/updating the registry,
since there might be some plugins that call gst_init() and we don't
want to loop back in.
Closes#350879
Original commit message from CVS:
* docs/design/part-qos.txt:
Bring docs in line with the code. Mostly the sign of the jitter was
wrong in the docs.
* gst/gstclock.c:
Fix the docs for the jitter.
* gst/gstevent.c: (gst_event_new_custom), (gst_event_new_tag),
(gst_event_parse_tag), (gst_event_new_buffer_size),
(gst_event_parse_buffer_size), (gst_event_parse_qos),
(gst_event_new_seek), (gst_event_parse_seek),
(gst_event_new_navigation):
Make sure the GstStructure has no parent when creating custom
events.
Add some more argument checking so that we avoid 0.0 rates.
Flesh out the docs for the QoS event some more.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gst.c: (gst_init_get_option_group), (gst_init_check),
(ensure_current_registry_forking), (ensure_current_registry),
(parse_one_option), (parse_goption_arg), (gst_deinit),
(gst_registry_fork_is_enabled), (gst_registry_fork_set_enabled):
* gst/gst.h:
Doc updates.
Added API and command line option to disable registry forking in
addition to the environment variable.
Constify some static arrays.
Added some more debug.
Don't deinit twice.
API: gst_registry_fork_is_enabled()
API: gst_registry_fork_set_enabled()
API: --gst-disable-registry-fork command line option
Original commit message from CVS:
* configure.ac:
* docs/gst/gstreamer-sections.txt:
* gst/gstconfig.h.in:
* gst/gstinfo.c: (_gst_debug_init), (gst_debug_print_segment),
(_gst_info_printf_extension_ptr),
(_gst_info_printf_extension_segment):
API: add GST_SEGMENT_FORMAT, which is a printf extension we
register that lets us easily dump GstSegments into debug
logs (#350419).
* tests/check/gst/gstinfo.c: (segment_printf_extension_log_func),
(info_segment_format_printf_extension), (gst_info_suite):
Add simple unit test that logs a bunch of different segments (not
valgrinded at the moment because of leaks in gst_debug_add_log_function).
Original commit message from CVS:
* gst/gstghostpad.c: (gst_ghost_pad_do_unlink):
Unlinking from a pad without a target is now a perfectly valid case
which should NOT raise an assertion.
This case would happen if a linked ghostpad its target set to NULL after
it was previously linked.
Original commit message from CVS:
* gst/gstelementfactory.c: (gst_element_factory_create):
Remove unnecessary ref/unref pair
* gst/parse/grammar.y:
Make sure to free the parse buffer on all code paths.
Move a g_free up to the error handler where it's easier to see.
* tests/check/gst/gstevent.c: (test_event):
Extending timeout for downstream travelling events to 10 seconds to
hopefully avoid intermittent failure on the buildbots.
* tests/check/pipelines/parse-launch.c: (run_delayed_test):
Don't manually set the state of the src element - it will happen as a
natural consequence of the pipeline changing state, and that way it
will do it in the right order too.
Original commit message from CVS:
* gst/gstpad.c: (gst_pad_class_init), (gst_pad_dispose),
(gst_pad_get_property), (gst_pad_activate_pull),
(gst_pad_activate_push), (gst_pad_set_blocked_async),
(gst_pad_set_activate_function),
(gst_pad_set_activatepull_function),
(gst_pad_set_activatepush_function), (gst_pad_set_chain_function),
(gst_pad_set_getrange_function),
(gst_pad_set_checkgetrange_function), (gst_pad_set_event_function),
(gst_pad_set_query_function), (gst_pad_set_query_type_function),
(gst_pad_set_internal_link_function), (gst_pad_set_link_function),
(gst_pad_set_unlink_function), (gst_pad_set_getcaps_function),
(gst_pad_set_acceptcaps_function),
(gst_pad_set_fixatecaps_function), (gst_pad_set_setcaps_function),
(gst_pad_set_bufferalloc_function), (gst_pad_link_check_hierarchy),
(gst_pad_get_caps_unlocked), (gst_pad_get_caps),
(gst_pad_peer_get_caps), (gst_pad_accept_caps),
(gst_pad_peer_accept_caps), (gst_pad_set_caps),
(gst_pad_configure_sink), (gst_pad_configure_src),
(gst_pad_get_allowed_caps), (gst_pad_get_negotiated_caps),
(gst_pad_buffer_alloc_unchecked), (gst_pad_alloc_buffer_full),
(gst_pad_query), (gst_pad_load_and_link), (handle_pad_block),
(gst_pad_chain_unchecked), (gst_pad_push), (gst_pad_get_range),
(gst_pad_send_event):
Use _DEBUG_OBJECT when it makes sense.
Protect GST_PAD_CAPS with the OBJECT_LOCK.
Small cleanups and code reflows.
Avoid caps refcounting in _accept_caps.
Refactor alloc_buffer so that the code performed on the peer is in a
separate function. Also if the pad does not implement a buffer alloc
function, we should still check if the pad is flushing before falling
back to the default allocator.
Original commit message from CVS:
* gst/parse/Makefile.am:
* gst/parse/grammar.y:
* gst/parse/parse.l:
Reverted previous patch as it required to bump the flex dependency to
2.5.31, where fc4/5 seem to ship only the ancient 2.5.4a :(
Original commit message from CVS:
Patch by: Marc-Andre Lureau <marcandre.lureau@gmail.com>
* gst/parse/Makefile.am:
* gst/parse/grammar.y:
* gst/parse/parse.l:
push & pop the state of the lexer for reentrant use case
Fixes#349180
Original commit message from CVS:
* gst/parse/grammar.y:
* gst/parse/parse.l:
* tests/check/pipelines/parse-launch.c: (expected_fail_pipe),
(GST_START_TEST), (parse_suite):
Fix some of the leaks exposed by extending the parse-launch testsuite,
and move the 3 I can't figure out into a separate test that won't run
the pipelines unless the appropriate line is uncommented.
Original commit message from CVS:
* gst/gstcaps.c: (gst_static_caps_get), (gst_caps_get_structure):
Fix useless assert, a uint is always positive.
* gst/gststructure.c: (gst_structure_nth_field_name),
(gst_structure_foreach), (gst_structure_map_in_place):
Check input arguments for public functions to avoid obvious crashes.
* plugins/elements/gstfakesink.c: (gst_fake_sink_render):
* plugins/elements/gstfakesink.h:
Do less useless typechecking.
Original commit message from CVS:
* gst/gststructure.c: (gst_structure_id_set),
(gst_structure_id_set_valist):
* gst/gststructure.h:
Add API for setting values into structures without performing
a quark lookup, if the appropriate quark is already known.
API: gst_structure_id_set
API: gst_structure_id_set_valist
* gst/parse/grammar.y:
* gst/parse/parse.l:
Remove some dead code shown by the coverage information.
Don't throw a critical g_warning when encountering a syntax error,
just warn and let the normal error path handle it.
* plugins/elements/gstelements.c:
Bump the rank of filesink up to PRIMARY so that it is preferred over
gnomevfssink for file:// sink uri's
* tests/check/pipelines/parse-launch.c: (expected_fail_pipe),
(GST_START_TEST), (run_delayed_test),
(gst_parse_test_element_base_init),
(gst_parse_test_element_class_init), (gst_parse_test_element_init),
(gst_parse_test_element_change_state),
(gst_register_parse_element), (parse_suite):
Beef up the tests for parse syntax to check that more error cases
fail as they are supposed to. Increases the test coverage a bit.
Original commit message from CVS:
* docs/manual/basics-elements.xml:
Fix gst_element_link() example.
* gst/gstutils.c:
Mention in API docs that one should usually gst_bin_add()
elements to a bin or pipeline before doing the linking.
Original commit message from CVS:
* gst/gstbuffer.c: (gst_buffer_get_type), (gst_buffer_new),
(gst_subbuffer_get_type), (gst_buffer_create_sub):
Avoid function call for known types by keeping the buffer and
subbuffer GType global.
* plugins/elements/gstfilesrc.c: (gst_file_src_create_read):
Random silly optimisations in read() path.
Original commit message from CVS:
* gst/gstminiobject.c:
update docs
* plugins/elements/gstfdsrc.c: (gst_fd_src_set_property),
(gst_fd_src_create):
log recurring events at LOG level
add more debug for when the fd gets set
Original commit message from CVS:
* gst/gstparse.c: (gst_parse_launch):
Also remove reentrance checks if flex is MT save (#348179)
Fix my empty ChangeLog entry below