Commit graph

112 commits

Author SHA1 Message Date
Tim-Philipp Müller f7c34e5c14 tools/gst-launch.c: More space on the left for the tag names, to cater for the 'extended comment' tag (not touching t...
Original commit message from CVS:
* tools/gst-launch.c: (print_tag):
More space on the left for the tag names, to cater
for the 'extended comment' tag (not touching the
string for the first line since it's translated).
2006-08-15 10:08:34 +00:00
Jan Schmidt 2444ba9601 tools/gst-launch.c: If the top-level of the parse is a normal bin, it doesn't do the right logic to run as a top-leve...
Original commit message from CVS:
* tools/gst-launch.c: (main):
If the top-level of the parse is a normal bin, it doesn't do the
right logic to run as a top-level element, so place it inside a
pipeline.
2006-07-26 06:18:44 +00:00
Andy Wingo 2ef04375e6 tools/gst-launch.c (main): Handle err == NULL. gst/gst.c (init_post, ensure_current_registry) (ensure_current_registr...
Original commit message from CVS:
2006-07-08  Andy Wingo  <wingo@pobox.com>

* tools/gst-launch.c (main): Handle err == NULL.

* gst/gst.c (init_post, ensure_current_registry)
(ensure_current_registry_forking)
(ensure_current_registry_nonforking): Reduce #ifdef ratnest by
factoring out the registry scanning into separate functions. Don't
fork for the rescan is GST_REGISTRY_FORK=no; useful in debugging.
Better environment var name/interface suggestions accepted.
2006-07-08 13:22:32 +00:00
Tim-Philipp Müller ede8ab01eb tools/gst-launch.c: Fix use of uninitialized variable in the hypothetical case that some broken plugin creates a GST_...
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).
2006-05-13 17:50:11 +00:00
Tim-Philipp Müller aa0515d436 tools/gst-launch.c: Print something more intelligible for image tags when using the -t switch (#341556).
Original commit message from CVS:
* tools/gst-launch.c: (print_tag):
Print something more intelligible for image tags when
using the -t switch (#341556).
2006-05-12 16:50:37 +00:00
Tim-Philipp Müller 84e61b79c6 tools/: Fix up includes: need to include stdlib.h in tools.h for exit().
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().
2006-05-09 10:53:18 +00:00
Tim-Philipp Müller 177b07d897 tools/: Use the string passed to g_option_context_new() for what it's intended for - the program name is already prin...
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.
2006-05-05 17:45:41 +00:00
Tim-Philipp Müller 73fd4a213a tools/: Add back --version command line option (#340460).
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.
2006-05-05 17:07:42 +00:00
Wim Taymans 5c8d6fdb6e tools/gst-launch.c: NO_PREROLL is not an ERROR so don't send confusing messages to the user.
Original commit message from CVS:
* tools/gst-launch.c: (main):
NO_PREROLL is not an ERROR so don't send confusing messages
to the user.
2006-02-14 17:25:11 +00:00
Tim-Philipp Müller e210231950 tools/gst-launch.c: Catch errors during preroll (#320084).
Original commit message from CVS:
* tools/gst-launch.c: (event_loop), (main):
Catch errors during preroll (#320084).
2006-02-04 11:56:18 +00:00
Edward Hervey 5fa6a29e9f tools/gst-launch.c: Clarify the output strings, makes it easier to translate.
Original commit message from CVS:
* tools/gst-launch.c: (main):
Clarify the output strings, makes it easier to translate.
Fixes #322626
2005-11-28 09:55:19 +00:00
Wim Taymans 7f22710f65 gst/base/gstbasesink.c: Some more debug.
Original commit message from CVS:
* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_get_position):
Some more debug.

* gst/gstbin.c: (message_check), (bin_replace_message),
(bin_remove_messages), (is_eos), (gst_bin_add_func),
(update_degree), (gst_bin_sort_iterator_next), (bin_bus_handler),
(bin_query_duration_init), (bin_query_duration_fold),
(bin_query_duration_done), (bin_query_generic_fold),
(gst_bin_query):
* tools/gst-launch.c: (main):
Remove old option.
2005-10-27 08:55:44 +00:00
Wim Taymans 0176d5a0cf Seriously, this is better than a previous commit as we only need to notify the fact that an element changed state in ...
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.
2005-10-18 16:25:38 +00:00
Wim Taymans 20aff65b34 Make messages future proof. state-change gets a flag if it was a message comming from the streaming thread.
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
2005-10-18 13:19:16 +00:00
Thomas Vander Stichele d4ea9fbeba gst/base/: fix up debugging
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
2005-10-13 15:22:26 +00:00
Stefan Kost 2bc2709c85 fix GOption context leaks doc fixes
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gst.c:
* gst/gsterror.h:
* tools/gst-inspect.c: (main):
* tools/gst-launch.c: (main):
* tools/gst-run.c: (main):
* tools/gst-xmlinspect.c: (main):
fix GOption context leaks
doc fixes
2005-10-13 09:57:15 +00:00
Wim Taymans c64fcb487b Some doc updates.
Original commit message from CVS:
* docs/design/part-states.txt:
* tools/gst-launch.c: (main):
Some doc updates.
Revert non-intentional change.
2005-10-12 12:58:55 +00:00
Wim Taymans 6d0be74351 Use GstClockTime in _get_state() instead of GTimeVal.
Original commit message from CVS:
* check/gst/gstbin.c: (GST_START_TEST):
* check/gst/gstelement.c: (GST_START_TEST):
* check/gst/gstevent.c: (GST_START_TEST), (test_event):
* check/gst/gstghostpad.c: (GST_START_TEST):
* check/gst/gstpipeline.c: (GST_START_TEST):
* check/pipelines/simple_launch_lines.c: (run_pipeline):
* check/states/sinks.c: (GST_START_TEST):
* gst/elements/gsttypefindelement.c: (stop_typefinding):
* gst/gstbin.c: (gst_bin_provide_clock_func), (gst_bin_add_func),
(gst_bin_remove_func), (gst_bin_get_state_func),
(gst_bin_recalc_state), (gst_bin_change_state_func),
(bin_bus_handler):
* gst/gstelement.c: (gst_element_get_state_func),
(gst_element_get_state), (gst_element_abort_state),
(gst_element_commit_state), (gst_element_set_state),
(gst_element_change_state), (gst_element_change_state_func):
* gst/gstelement.h:
* gst/gstpipeline.c: (gst_pipeline_class_init), (do_pipeline_seek),
(gst_pipeline_provide_clock_func):
* gst/gstutils.c: (gst_element_link_pads_filtered):
* tools/gst-launch.c: (main):
* tools/gst-typefind.c: (main):
Use GstClockTime in _get_state() instead of GTimeVal.
Remove old code in gstutils.c
2005-10-12 12:18:48 +00:00
Thomas Vander Stichele 6e59ecdf7b more str null protection
Original commit message from CVS:
more str null protection
2005-10-11 16:21:05 +00:00
Thomas Vander Stichele 03159ca232 gst/gst-i18n-lib.h: check for ENABLE_NLS, not GETTEXT_PACKAGE
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
2005-10-11 16:05:16 +00:00
Wim Taymans 2153c45964 check/: Check fixes, use API as stated in design docs, remove hacks.
Original commit message from CVS:
* check/Makefile.am:
* check/generic/states.c: (GST_START_TEST):
* check/gst/gstbin.c: (GST_START_TEST):
* check/gst/gstpipeline.c: (GST_START_TEST), (gst_pipeline_suite):
* check/states/sinks.c: (GST_START_TEST):
* check/states/sinks2.c: (GST_START_TEST), (gst_object_suite),
(main):
Check fixes, use API as stated in design docs, remove hacks.

* gst/base/gstbasesink.c: (gst_base_sink_handle_object),
(gst_base_sink_change_state):
Catch stopping our task while we're shutting down.

* gst/gstbin.c: (gst_bin_init), (gst_bin_add_func),
(gst_bin_remove_func), (gst_bin_get_state_func),
(gst_bin_recalc_state), (gst_bin_change_state_func),
(bin_bus_handler):
* gst/gstbin.h:
* gst/gstelement.c: (gst_element_init),
(gst_element_get_state_func), (gst_element_abort_state),
(gst_element_commit_state), (gst_element_lost_state),
(gst_element_set_state), (gst_element_change_state),
(gst_element_change_state_func):
* gst/gstelement.h:
New state change algorithm (see #318116)

* gst/gstpipeline.c: (gst_pipeline_class_init),
(gst_pipeline_init), (gst_pipeline_set_property),
(gst_pipeline_get_property), (do_pipeline_seek),
(gst_pipeline_change_state), (gst_pipeline_provide_clock_func):
* gst/gstpipeline.h:
Remove crude state change hacks.

* gst/gstutils.h:
Remove crude hacks.

* tools/gst-launch.c: (main):
Fixes for state change. Needs some more work to fully use the
new stuff.
2005-10-10 16:38:26 +00:00
Ronald ac8289c7a9 Merged in popt removal + GOption addition patch from Ronald, bug #169772.
Original commit message from CVS:
2005-10-10  Andy Wingo  <wingo@pobox.com>

Merged in popt removal + GOption addition patch from Ronald, bug
#169772.

* docs/gst/gstreamer-sections.txt: Add STATE_(UN)LOCK_FULL, move
GstElement macros around, remove popt-related symbols, add goption
stuff.

* configure.ac: Remove popt checks, require GLib 2.6 for GOption.

* docs/gst/Makefile.am:
* docs/libs/Makefile.am: No POPT_CFLAGS.

* examples/manual/Makefile.am:
* docs/manual/basics-init.xml: Doc updates with an example.

* gst/gst.c: (gst_init_get_option_group), (gst_init_check),
(gst_init), (parse_one_option), (parse_goption_arg):
* gst/gst.h: Removed gst_init_with_popt_table and friends. Took a
bit of hand merging and debugging to get the GOption stuff working
tho.

* tests/Makefile.am:
* tools/Makefile.am:
* tools/gst-inspect.c: (main):
* tools/gst-launch.c: (main):
* tools/gst-run.c: (main):
* tools/gst-xmlinspect.c: (main): Thanks Ronald!
2005-10-10 15:53:59 +00:00
Wim Taymans 677becd06a gst/gstmessage.*: Clean up.
Original commit message from CVS:
* gst/gstmessage.c: (gst_message_new_custom),
(gst_message_new_eos), (gst_message_new_error),
(gst_message_new_warning), (gst_message_new_tag),
(gst_message_new_state_changed), (gst_message_new_clock_provide),
(gst_message_new_new_clock), (gst_message_new_segment_start),
(gst_message_new_segment_done), (gst_message_parse_state_changed),
(gst_message_parse_clock_provide), (gst_message_parse_new_clock):
* gst/gstmessage.h:
Clean up.
Added clock related messages.

* gst/gstpipeline.c: (gst_pipeline_change_state):
Post message when the clock changed.

* tools/gst-launch.c: (event_loop):
Print new clock.
2005-10-08 12:36:36 +00:00
Wim Taymans c2691f6c80 tools/gst-launch.c: Better message printout.
Original commit message from CVS:
* tools/gst-launch.c: (event_loop):
Better message printout.
2005-10-08 09:38:19 +00:00
Wim Taymans ce081d6341 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:
* 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.
2005-10-08 08:58:45 +00:00
Thomas Vander Stichele 46b1a61af4 don't use if not declared
Original commit message from CVS:
don't use if not declared
2005-10-07 15:13:25 +00:00
Tim-Philipp Müller 7d32a34c83 tools/gst-launch.c: Don't try to run erroneous pipelines.
Original commit message from CVS:
* tools/gst-launch.c: (main):
Don't try to run erroneous pipelines.
2005-10-04 11:51:37 +00:00
Wim Taymans 4fd77c1920 The timeout handler should have lower priority than the source so we don't timeout before popping a message with 0 ti...
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.
2005-09-20 17:30:35 +00:00
Wim Taymans 1c1af875d4 GstBusHandler -> GstBusFunc, return value has the same meaning as any other GSource (FALSE == remove source).
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.
2005-09-19 11:18:03 +00:00
Andy Wingo e040bb2dbe gst/gstelement.h (GstState): Renamed from GstElementState, changed to be a normal enum instead of 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.
2005-09-02 15:42:00 +00:00
Jan Schmidt 864b976fef Revert unpopular change for GST_MESSAGE_SRC to GObject.
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):
Revert unpopular change for GST_MESSAGE_SRC to GObject.
2005-08-25 10:51:14 +00:00
Jan Schmidt 59a41141ca Change GST_MESSAGE_SRC to be a GObject rather than a GstObject, so that applications can sensibly post custom message...
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.
2005-08-24 11:54:37 +00:00
Thomas Vander Stichele b27244a943 don't convert NULL structures to strings
Original commit message from CVS:
don't convert NULL structures to strings
2005-08-15 18:15:38 +00:00
Wim Taymans 5c875fadec tools/gst-launch.c: Don't block forever for the state change to complete, the pipeline already did with a sensible ti...
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.
2005-07-19 14:52:59 +00:00
Wim Taymans a8d8310819 Totally dump messages in -launch with the -m option.
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,
2005-07-15 10:30:49 +00:00
Wim Taymans f7c0c25d58 gst/base/gstbasetransform.c: Added more debug info in the negotiate process.
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.
2005-07-12 17:17:34 +00:00
Thomas Vander Stichele a59215bb4e valgrind unit tests as check-local; add gst_deinit
Original commit message from CVS:
valgrind unit tests as check-local; add gst_deinit
2005-07-11 15:10:40 +00:00
Thomas Vander Stichele 3127459e22 gst/gstelement.c: add debug
Original commit message from CVS:

* gst/gstelement.c: (gst_element_get_bus):
add debug
* tools/gst-launch.c: (check_intr), (event_loop):
fix bus leaks
2005-07-10 00:07:51 +00:00
Andy Wingo f8e79bdf86 *.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>

* *.c: Don't cast to GST_OBJECT when reffing or unreffing. Large
source-munging commit!!!
2005-06-28 09:59:01 +00:00
Andy Wingo f2cf753b17 gst/base/gsttypefindhelper.c (gst_type_find_helper): Unref any remaining buffer.
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.
2005-06-27 18:35:05 +00:00
Wim Taymans 4e9438da9f Allow elements to post EOS in the state change function.
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.
2005-06-25 17:51:12 +00:00
Wim Taymans 1cda8197e9 Added support for live sources and other elements that cannot do preroll.
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.
2005-06-23 10:37:09 +00:00
Wim Taymans 32f9787436 tools/gst-launch.c: Unref message after using its contents instead of before.
Original commit message from CVS:
* tools/gst-launch.c: (event_loop):
Unref message after using its contents instead of
before.
2005-05-25 11:26:14 +00:00
Wim Taymans f60dcb51d5 tools/gst-launch.c: Message was unreffed too soon.
Original commit message from CVS:
* tools/gst-launch.c: (event_loop):
Message was unreffed too soon.
2005-05-17 10:41:51 +00:00
Andy Wingo b4d7be2014 GCC 4 fixen.
Original commit message from CVS:
2005-05-04  Andy Wingo <wingo@pobox.com>

* check/Makefile.am:
* docs/gst/tmpl/gstatomic.sgml:
* docs/gst/tmpl/gstplugin.sgml:
* gst/base/gstbasesink.c: (gst_basesink_activate):
* gst/base/gstbasesrc.c: (gst_basesrc_class_init),
(gst_basesrc_init), (gst_basesrc_set_dataflow_funcs),
(gst_basesrc_query), (gst_basesrc_set_property),
(gst_basesrc_get_property), (gst_basesrc_check_get_range),
(gst_basesrc_activate):
* gst/base/gstbasesrc.h:
* gst/base/gstbasetransform.c: (gst_base_transform_sink_activate),
(gst_base_transform_src_activate):
* gst/elements/gstelements.c:
* gst/elements/gstfakesrc.c: (gst_fakesrc_class_init),
(gst_fakesrc_set_property), (gst_fakesrc_get_property):
* gst/elements/gsttee.c: (gst_tee_sink_activate):
* gst/elements/gsttypefindelement.c: (find_element_get_length),
(gst_type_find_element_checkgetrange),
(gst_type_find_element_activate):
* gst/gstbin.c: (gst_bin_save_thyself), (gst_bin_restore_thyself):
* gst/gstcaps.c: (gst_caps_do_simplify), (gst_caps_save_thyself),
(gst_caps_load_thyself):
* gst/gstelement.c: (gst_element_pads_activate),
(gst_element_save_thyself), (gst_element_restore_thyself):
* gst/gstpad.c: (gst_pad_load_and_link), (gst_pad_save_thyself),
(gst_ghost_pad_save_thyself), (gst_pad_check_pull_range):
* gst/gstpad.h:
* gst/gstxml.c: (gst_xml_write), (gst_xml_parse_doc),
(gst_xml_parse_file), (gst_xml_parse_memory),
(gst_xml_get_element), (gst_xml_make_element):
* gst/indexers/gstfileindex.c: (gst_file_index_load),
(_file_index_id_save_xml), (gst_file_index_commit):
* gst/registries/gstlibxmlregistry.c: (read_string), (read_uint),
(read_enum), (load_pad_template), (load_feature), (load_plugin),
(load_paths):
* libs/gst/dataprotocol/dataprotocol.c: (gst_dp_packet_from_caps),
(gst_dp_packet_from_event), (gst_dp_caps_from_packet):
* tools/gst-complete.c: (main):
* tools/gst-compprep.c: (main):
* tools/gst-inspect.c: (print_element_properties_info):
* tools/gst-launch.c: (xmllaunch_parse_cmdline):
* tools/gst-xmlinspect.c: (print_element_properties):
GCC 4 fixen.
2005-05-04 21:29:44 +00:00
Wim Taymans c2f41a8906 Next big merge.
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.
2005-03-21 17:34:02 +00:00
Wim Taymans 007cff6d75 Doc updates.
Original commit message from CVS:
* docs/design/part-MT-refcounting.txt:
* docs/design/part-clocks.txt:
* docs/design/part-gstelement.txt:
* docs/design/part-gstobject.txt:
* docs/design/part-standards.txt:
* gst/gstbin.c: (gst_bin_add_func), (gst_bin_add),
(gst_bin_remove_func), (gst_bin_remove):
* gst/gstbin.h:
* gst/gstbuffer.c:
* gst/gstcaps.h:
* testsuite/clock/clock1.c: (main):
* testsuite/clock/clock2.c: (gst_clock_debug), (element_wait),
(main):
* testsuite/dlopen/loadgst.c: (do_test):
* testsuite/refcounting/bin.c: (add_remove_test1),
(add_remove_test2), (main):
* testsuite/refcounting/element.c: (main):
* testsuite/refcounting/element_pad.c: (main):
* testsuite/refcounting/pad.c: (main):
* tools/gst-launch.c: (sigint_handler_sighandler):
* tools/gst-typefind.c: (main):
Doc updates.
Added doc about clock.
removed gst_bin_iterate_recurse_up(), marked methods
for removal.
Fix more testsuites.
2005-03-10 12:51:45 +00:00
Wim Taymans c47dc4d853 First THREADED backport attempt, focusing on adding locks and making sure the API is threadsafe. Needs more work. Mor...
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.
2005-03-07 18:27:42 +00:00
David Schleef d84d463b1d tools/gst-launch.c: Fix deadlocks in signal.h-type signal handlers by not calling forbidden functions, including gst_...
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().
2005-01-06 03:31:17 +00:00
Benjamin Otte 3d53a08118 gst/elements/gstfilesrc.c: work with non-regular files that can be mmapped (like /dev/zero)
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
2004-08-12 09:12:13 +00:00