Commit graph

362 commits

Author SHA1 Message Date
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
Thomas Vander Stichele
dd9cc6adb7 ignore more
Original commit message from CVS:
ignore more
2005-06-17 09:12:33 +00:00
Andy Wingo
4b908e33e0 gst/gstutils.c: RPAD fixes all around.
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.
2005-06-08 22:16:27 +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
6e4b02d62b tools/gst-inspect.c: A plugin feature does unfortunatly not use the object name yet...
Original commit message from CVS:
* tools/gst-inspect.c: (print_plugin_features):
A plugin feature does unfortunatly not use the
object name yet...
2005-05-19 08:41:42 +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
Wim Taymans
8df6cd7243 Remove old query functions. Ported old code.
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.
2005-05-09 10:53:13 +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
Ronald S. Bultje
560d0ba1de Use libxml2 for registry parsing, use staticpadtemplates in elementfactories. Makes gst_init() +/- 10x faster.
Original commit message from CVS:
* docs/gst/tmpl/gstelementfactory.sgml:
* gst/gstelement.h:
* gst/gstelementfactory.c: (gst_element_factory_init),
(gst_element_factory_cleanup), (gst_element_register),
(__gst_element_factory_add_static_pad_template),
(gst_element_factory_get_static_pad_templates),
(gst_element_factory_can_src_caps),
(gst_element_factory_can_sink_caps):
* gst/registries/Makefile.am:
* gst/registries/gstlibxmlregistry.c: (gst_xml_registry_get_type),
(gst_xml_registry_class_init), (gst_xml_registry_init),
(gst_xml_registry_new), (gst_xml_registry_set_property),
(gst_xml_registry_get_property), (get_time), (make_dir),
(gst_xml_registry_get_perms_func),
(plugin_times_older_than_recurse), (plugin_times_older_than),
(gst_xml_registry_open_func), (gst_xml_registry_load_func),
(gst_xml_registry_save_func), (gst_xml_registry_close_func),
(add_to_char_array), (read_string), (read_uint), (read_enum),
(load_pad_template), (load_feature), (load_plugin), (load_paths),
(gst_xml_registry_load), (gst_xml_registry_load_plugin),
(gst_xml_registry_save_caps), (gst_xml_registry_save_pad_template),
(gst_xml_registry_save_feature), (gst_xml_registry_save_plugin),
(gst_xml_registry_save), (gst_xml_registry_rebuild_recurse),
(gst_xml_registry_rebuild):
* gst/registries/gstlibxmlregistry.h:
* tools/gst-compprep.c: (main):
* tools/gst-inspect.c: (print_pad_templates_info):
* tools/gst-xmlinspect.c: (print_element_info):
Use libxml2 for registry parsing, use staticpadtemplates in
elementfactories. Makes gst_init() +/- 10x faster.
2005-04-12 15:00:30 +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
Ronald S. Bultje
182b6e6fa8 tools/gst-launch.1.in: Fix typo (#166699).
Original commit message from CVS:
* tools/gst-launch.1.in:
Fix typo (#166699).
2005-02-08 18:05:29 +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
3f066467ac tools/gst-inspect.c: print signal arguments as pointers if they are
Original commit message from CVS:
* tools/gst-inspect.c: (print_signal_info):
print signal arguments as pointers if they are
2004-10-22 20:11:43 +00:00
Wim Taymans
47bf817960 tools/gst-inspect.c: Use the realpad when printing the direction.
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.
2004-10-19 09:33:58 +00:00
Thomas Vander Stichele
6b835e324f fix origin and package name; make gst-inspect print plugin info for element
Original commit message from CVS:
fix origin and package name; make gst-inspect print plugin info for element
2004-08-12 11:50:31 +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
Benjamin Otte
f1472b4ed2 gst/schedulers/entryscheduler.c: fix for GST_DISABLE_DEBUG
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
2004-08-03 14:29:31 +00:00
Brian Cameron
d2172d6881 Corrected core-dumping problem on Solaris when filename is NULL, as when running gst-inspect with gstcoreelements.
Original commit message from CVS:
Corrected core-dumping problem on Solaris when filename is NULL, as when
running gst-inspect with gstcoreelements.
2004-07-30 20:18:11 +00:00
Benjamin Otte
1a8f31e577 gst/autoplug/gstspideridentity.c: don't delay links on the sink elements, it causes unnegotiated links.
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)
2004-07-25 15:01:52 +00:00
David Schleef
23d19ce876 docs/random/ds/0.9-suggested-changes: more comments
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.
2004-07-22 23:29:30 +00:00
David Schleef
e44786e7a0 tools/: Add man page. (bug #140219)
Original commit message from CVS:
* tools/Makefile.am:
* tools/gst-xmlinspect.1.in:  Add man page. (bug #140219)
2004-07-04 23:36:29 +00:00
Thomas Vander Stichele
477783c722 i18n-ize register
Original commit message from CVS:
i18n-ize register
2004-06-26 13:09:37 +00:00
Johan Dahlin
d6ae3e5426 tools/gst-inspect.c (main): Fallback to plugin if no element is found. This matches the old behavior better. Thanks t...
Original commit message from CVS:
* tools/gst-inspect.c (main): Fallback to plugin if no element is
found. This matches the old behavior better. Thanks to Thomas for
pointing out.
2004-06-15 14:17:55 +00:00
Johan Dahlin
ae5f02d5c4 Simplify, remove -n and always print names if -a is specified
Original commit message from CVS:
(main): Simplify, remove -n and always print names if -a is specified
2004-06-14 11:28:16 +00:00
Johan Dahlin
45e3b8be25 tools/gst-inspect.c (main): Add two new command line options: -a to print all elements and -n to print the name on ea...
Original commit message from CVS:
* tools/gst-inspect.c (main): Add two new command line options: -a
to print all elements and -n to print the name on each line. Also
fix some error reporting.
2004-06-14 11:04:06 +00:00
Jan Schmidt
cc9d178af2 Add a libxml2 version check to make gst-compprep compile again on FC1
Original commit message from CVS:
Add a libxml2 version check to make gst-compprep compile again on FC1
2004-06-12 15:27:59 +00:00
Steve Lhomme
30128f9b16 Somehow a clean fix to the semi-private export
Original commit message from CVS:
Somehow a clean fix to the semi-private export
2004-06-12 13:45:17 +00:00
Steve Lhomme
f50188b8a0 Fix a bug to enable/disable DEBUG under MSVC
Original commit message from CVS:
Fix a bug to enable/disable DEBUG under MSVC
2004-06-12 10:51:35 +00:00
Jan Schmidt
c7ec369f93 tools/gst-compprep.c: Make an error that baffled me a bit clearer
Original commit message from CVS:
* tools/gst-compprep.c: (handle_xmlerror), (main):
Make an error that baffled me a bit clearer
2004-06-12 10:14:40 +00:00
Benjamin Otte
60bc42d1fc tools/gst-inspect.c: don't free random data twice. (fixes #144185)
Original commit message from CVS:
reviewed by Benjamin Otte  <in7y118@public.uni-hamburg.de>
* tools/gst-inspect.c: (print_signal_info):
don't free random data twice. (fixes #144185)
2004-06-11 20:57:29 +00:00
Johan Dahlin
df7b9dc725 Regression, return -1 when no features can be found
Original commit message from CVS:
Regression, return -1 when no features can be found
2004-05-23 18:41:25 +00:00
Johan Dahlin
2e1ff49925 tools/gst-inspect.c (main): Cleanup most parts of it, don't be so verbose and print GstElement signal names all the t...
Original commit message from CVS:
* tools/gst-inspect.c (main): Cleanup most parts of it, don't be
so verbose and print GstElement signal names all the time.
2004-05-23 17:52:54 +00:00
Stéphane Loeuillet
afd9f869a8 typos : unkown => unknown
Original commit message from CVS:
typos : unkown => unknown
2004-05-14 11:37:56 +00:00
David Schleef
037c9d2b34 gst/gstinfo.h: Add missing inline function.
Original commit message from CVS:
* gst/gstinfo.h: Add missing inline function.
* gst/gsttrace.c: add include
* gst/parse/grammar.y: remove unused code
* gst/registries/gstxmlregistry.c: (make_dir): make mkdir call
more portable.
* tools/gst-register.c: wrap unistd.h
More additions/fixes from Steve for the MSVC build.
* win32/GStreamer.vcproj:
* win32/Makefile:
* win32/Makefile.inspect:
* win32/Makefile.launch:
* win32/Makefile.register:
* win32/README.txt:
* win32/gst-inspect.vcproj:
* win32/gst-launch.vcproj:
* win32/gst-register.vcproj:
* win32/gstbytestream.def:
* win32/gstbytestream.vcproj:
* win32/gstconfig.h:
* win32/gstelements.def:
* win32/gstelements.vcproj:
* win32/gstenumtypes.c:
* win32/gstenumtypes.h:
* win32/gstoptimalscheduler.def:
* win32/gstoptimalscheduler.vcproj:
* win32/gstreamer.def:
* win32/gstspider.def:
* win32/gstspider.vcproj:
* win32/gstversion.h:
* win32/msvc71.sln:
2004-05-10 18:07:24 +00:00
David Schleef
ca7539c40e Changes to handle compilers that don't have variadic macro support. In particular, glib headers define some inlines ...
Original commit message from CVS:
Changes to handle compilers that don't have variadic macro
support.  In particular, glib headers define some inlines
that need G_LOG_DOMAIN defined.  Additional fixes for MSVC
builds.
* gst/Makefile.am:
* gst/cothreads.c:
* gst/elements/gstfdsink.c:
* gst/elements/gstfdsrc.c:
* gst/elements/gstfilesink.c:
* gst/elements/gstfilesrc.c:
* gst/gst_private.h:
* gst/gstatomic.c:
* gst/gstcaps.c: (gst_caps_append):
* gst/gstcpu.c: (gst_cpuid_i386):
* gst/gstelement.c:
* gst/gsterror.c:
* gst/gstfilter.c:
* gst/gstinfo.h:
* gst/gstprobe.c:
* gst/gstquery.c:
* gst/gstregistry.c:
* gst/gststructure.c:
* gst/gsttaginterface.c:
* gst/gsttrace.c: (gst_trace_new):
* gst/gsttrashstack.c:
* gst/gsturi.c:
* gst/gstvalue.c:
* gst/parse/grammar.y:
* gst/parse/parse.l:
* tools/gst-inspect.c: (main):
* tools/gst-launch.c: (main):
* tools/gst-xmlinspect.c: (PUT_STRING):
2004-05-07 02:36:28 +00:00
Thomas Vander Stichele
e7b9201555 reorganize C/LIB flags add gst_info to gstcompat.h
Original commit message from CVS:
reorganize C/LIB flags
add gst_info to gstcompat.h
2004-05-04 12:38:36 +00:00
Stéphane Loeuillet
ac27b7cdba hum, vorbisfile => oggdemux ! vorbisdec ! audioconvert
Original commit message from CVS:

hum, vorbisfile => oggdemux ! vorbisdec ! audioconvert
2004-05-02 23:49:11 +00:00
Stéphane Loeuillet
0b3089e537 first try at hunting old elements that where renamed like :
Original commit message from CVS:

first try at hunting old elements that where renamed like :
- parsewav (never existed, should be wavparse)
- vorbisfile (now oggdemux ! vorbisdec)
- disksink (now filesink)
2004-05-02 23:30:31 +00:00
Benjamin Otte
ab8fc54334 gst/: remove useless _gst_progname stuff
Original commit message from CVS:
* gst/gst.c: (init_post):
* gst/gstinfo.c:
remove useless _gst_progname stuff
* tools/gst-inspect.c: (print_field), (print_caps):
improve caps output
2004-04-29 01:44:13 +00:00
Thomas Vander Stichele
d4bfafcf63 print rank numerically as well
Original commit message from CVS:
print rank numerically as well
2004-04-14 16:14:39 +00:00
Thomas Vander Stichele
324e81e1e2 build fix
Original commit message from CVS:
build fix
2004-04-13 13:07:00 +00:00
Thomas Vander Stichele
7baa6c18e7 don't mix tabs and spaces
Original commit message from CVS:
don't mix tabs and spaces
2004-03-15 19:27:17 +00:00
Thomas Vander Stichele
7073ff35de uncommit
Original commit message from CVS:
uncommit
2004-03-15 18:22:45 +00:00
Johan Dahlin
3b724deada tools/Makefile.am (EXTRA_DIST): Add gst-indent
Original commit message from CVS:
* tools/Makefile.am (EXTRA_DIST): Add gst-indent
2004-03-15 18:21:12 +00:00
Thomas Vander Stichele
fe6f356a5d distcheck fixes
Original commit message from CVS:
distcheck fixes
2004-03-15 18:20:03 +00:00
Thomas Vander Stichele
c01cd4e835 g_error fix, m/m version fix
Original commit message from CVS:
g_error fix, m/m version fix
2004-03-14 17:54:22 +00:00
Thomas Vander Stichele
41f304f8cd update
Original commit message from CVS:
update
2004-03-14 16:44:04 +00:00