Commit graph

483 commits

Author SHA1 Message Date
Edward Hervey
32adac81ee gstcaps: New gst_caps_steal_structure() method
This allows removing structures from caps without them being freed. Helpful when
plugins need to move around structures without having to do an expensive structure
copy.

API:gst_caps_steal_structure

https://bugzilla.gnome.org/show_bug.cgi?id=621527
2010-06-14 13:16:18 +02:00
Tim-Philipp Müller
66fc4c8ba2 info: add new TRACE log level and move refcounting there from LOG level
This makes it possible to easily get a *:5 debug log without all
the refcounting noise, and drastically reduces the number of lines
output for a normal log (46m to 28m for a 20min video). The full log
including refcounting information can still be gotten using *:7.

Fixes #620460.
2010-06-05 12:53:15 +01:00
Sebastian Dröge
e35fe4ef9c structure: API: Add gst_structure_fixate_field_string() 2010-05-22 10:01:44 +02:00
Thiago Santos
d020295ae0 tags: Adds geo location direction tags
Adds 3 new geo location tags involving direction and
movement of capture. Those are:

API: GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION
API: GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION
API: GST_TAG_GEO_LOCATION_MOVEMENT_SPEED

Fixes #617223
2010-05-03 09:50:09 -03:00
Thiago Santos
2cc0bcb798 tags: Adds GST_TAG_DEVICE_MANUFACTURER and GST_TAG_DEVICE_MODEL
Adds those new tags to describe the device manufacturer and
model used to create medias.

API: GST_TAG_DEVICE_MANUFACTURER
API: GST_TAG_DEVICE_MODEL

Fixes #615941
2010-05-03 09:05:45 -03:00
Thiago Santos
e875577b0f tags: Add new _USER_RATING tag
Adds a new tag for user favorite media rating.
User rating informs how much (from 0 to 100) a user
'likes' a media.
Having an percent uint range for this is easy to map into other scales,
like some players that allow users to attribute 'stars' to its
media.

API: GST_TAG_USER_RATING

Fixes #520697
2010-03-24 15:18:53 -03:00
Robert Swain
1a3257132d message: add QoS message to inform apps of lost data
This has been implemented as per part-qos.txt and partially addresses
bug #322947
2010-03-17 19:16:42 +01:00
Thiago Santos
f563ac57f8 tags: Adds new geo location tags
Adds new tags GST_TAG_GEO_LOCATION_COUNTRY,
GST_TAG_GEO_LOCATION_CITY and GST_TAG_GEO_LOCATION_SUBLOCATION.

API: GST_TAG_GEO_LOCATION_COUNTRY
API: GST_TAG_GEO_LOCATION_CITY
API: GST_TAG_GEO_LOCATION_SUBLOCATION

Fixes #612410
2010-03-11 15:31:06 -03:00
Benjamin Otte
e8f65e8bff Make code safe for -Wredundant-decls
Adds that warning to configure.ac

Includes a tiny change of the GST_BOILERPLATE_FULL() macro:
The get_type() function is no longer declared before being defined.

https://bugzilla.gnome.org/show_bug.cgi?id=611692
2010-03-10 20:45:33 +01:00
Tim-Philipp Müller
c6554049de registry: deprecate useless gst_registry_xml_{read|write}_cache()
The only reason these two functions are still around is that at some
point in the past they were in a public header, so we can't really
remove them now even though they should have been private all along
(and aren't really particularly useful). Since these are just empty
stubs now that do nothing but return FALSE and will be removed in
0.11 anyway, we may just as well deprecate them formally.
2010-01-06 19:19:40 +00:00
Thiago Santos
a3078cf0cd gsttaglist: Adds new tags
Adds the following new tags:
GST_TAG_SHOW_NAME
GST_TAG_SHOW_SORTNAME
GST_TAG_SHOW_EPISODE_NUMBER
GST_TAG_SHOW_SEASON_NUMBER
GST_TAG_LYRICS
GST_TAG_COMPOSER_SORTNAME
GST_TAG_GROUPING

Fixes #599759
2009-12-21 11:58:12 -03:00
Edward Hervey
8f40effea6 gstinfo: API: Add GST_DEBUG_REGISTER_FUNCPTR method.
This is a variant of GST_DEBUG_FUNCPTR which does not return anything.
2009-12-01 17:56:19 +01:00
Stefan Kost
309187c2ce docs: enable docs for GstObjectClass to fix links 2009-11-27 14:18:38 +02:00
Stefan Kost
1b5391fb47 docs: add docs for GstPluginFlags
This also makes links to them work.
2009-11-27 14:18:38 +02:00
Sebastian Dröge
fee1ad3a0a event: API: Add sink-message event
gst_event_new_sink_message()
gst_event_parse_sink_message()

This event is used for sending a GstMessage downstream and synchronized
with the stream, to be posted by the sink once it reaches the sink.

Fixes bug #602275.
2009-11-18 13:12:27 +01:00
Sebastian Dröge
0ed24bc50e utils: API: Add multiplication and addition functions for fractions
gst_util_fraction_add()
gst_util_fraction_multiply()

These work on plain integers instead of GValues to
keep the overhead as low as possible.
2009-11-16 09:56:32 +01:00
Sebastian Dröge
e4257e8d5f gstutils: API: Add fraction helper functions
gst_util_greatest_common_divisor()
gst_util_double_to_fraction()
gst_util_fraction_to_double()

Using these instead of going over GValue has much lower overhead.

Also add float<->fraction transform functions for GValue.
2009-11-16 09:56:32 +01:00
Sebastian Dröge
039ef83523 registry: API: Add gst_{default,}_registry_get_feature_list_cookie()
This returns the internal feature list cookie, which changes every
time a feature is added or removed. This can be used by elements
to check if they should update their cached feature lists.
2009-11-10 18:17:26 +01:00
Stefan Kost
f63ecd04a8 pad: rename new api from _refed to _reffed.
Due to popular demand rename the new api as we still can.
API: gst_pad_get_caps_reffed(), gst_pad_peer_get_caps_reffed()
2009-11-05 12:54:32 +02:00
Sebastian Dröge
f9e3b72ff6 structure: API: Add gst_structure_id_has_field{,_typed} 2009-11-02 09:24:10 +01:00
Tim-Philipp Müller
4a9e983f4a docs: add Since tag to docs for new API
And tell gtk-doc that GstRegistryPrivate is private.
2009-10-24 10:31:08 +01:00
Edward Hervey
ebee258806 gstpluginfeature: API : new gst_plugin_feature_list_copy() method
This allows copying AND incrementing the refcount at the same time,
avoiding a double iteratio of the GList
2009-10-24 10:39:30 +02:00
Benjamin Otte
0ff4086507 Improve caps setters API
This patch adds gst_caps_set_value() and allows gst_caps_set_simple() to
work on non-simple caps. See the API documentation for the functions
about what they do.

The intention of these changes is to ease working with caps in caps
transform functions. An example for this would be ffmpegcolorspace,
where the caps transform function could be changed to look roughly like
this (pseudocode ahead):
  result = gst_caps_copy (template_caps);
  value = gst_structure_get_value (gst_caps_get_structure (caps, 0),
    "widh");
  gst_caps_set_value (result, value);
  /* same for height, framerate and par */
  return caps;
which is much cleaner and easier to understand than the current code.

https://bugzilla.gnome.org/show_bug.cgi?id=597690
2009-10-15 19:10:50 +02:00
Stefan Kost
fcc5d783df pad: add variants of gst_pad_get_caps() that don't copy caps. Fixes #590941
In most places in core and baseclasses we just need the caps to do caps-
intersections. In that case ref'ed caps are enough (no need to copy).
This patch also switches the code to use the new functions.
API: gst_pad_get_caps_refed(), gst_pad_peer_get_caps_refed()
2009-10-07 22:41:30 +03:00
Jan Schmidt
51675e0c2a registry: Add registry helper phase 1
Phase 1 of adding the registry scan helper
2009-10-06 19:51:42 +01:00
Sebastian Dröge
b2cab40745 iterator: API: Add gst_iterator_new_single()
This allows "iteration" over a single object of some type,
which happens often for the GstPadIterIntLinksFunction for example.
2009-08-26 16:39:19 +02:00
Sebastian Dröge
76338950f9 gstutils: Add new scaling functions to the docs 2009-08-13 16:32:28 +02:00
Stefan Kost
568202cb47 caps: add gst_caps_can_intersect()
Often we don't need the result of the intersection. Add a variant that only
tries to intersect. It can break out earlier and does less GValue copying.
API: gst_caps_can_intersect()
2009-08-06 15:30:33 +03:00
Sebastian Dröge
ea9e3392c1 taglist: Add new ALBUM_ARTIST tag to the docs 2009-08-06 06:50:41 +02:00
Stefan Kost
2cb16ad7aa info: allow getting other log categories. Fixes #587417
Add a new macro GST_DEBUG_CATEGORY_GET to get a log category by name. This
allows plugins to use e.g. core categories like PERFORMANCE or CLOCK.
API: GST_DEBUG_CATEGORY_GET
2009-07-06 19:54:30 +01:00
Wim Taymans
6438f6f9b9 bufferlist: Various cleanups
Add new method to iterate a bufferlist without having to allocate an iterator.
Add convenience method for getting an item from the list based on the group and
index.
Remove redundant _do_data callback and method.
Update unit-tests and add some more for the new methods.
2009-06-19 15:31:53 +02:00
Tim-Philipp Müller
dccea0406b taglist: add functions to create a new taglist with tags in one go
Add functions to create a new tag list and set tags in one go, which
is nice for use in combination with functions that take ownership of
the taglist, such as gst_event_new_tag() or gst_element_found_tags().

API: add gst_tag_list_new_full()
API: add gst_tag_list_new_full_valist()
2009-06-14 16:17:50 +01:00
Wim Taymans
e969b3a399 message: add step-start message 2009-06-12 13:16:29 +02:00
Tim-Philipp Müller
cdd47a37e9 structure: add gst_structure_*_get*() vararg functions
Add a bunch of vararg getter convenience functions to complement
the vararg setter functions, and a basic unit test. Fixes #534208.

API: gst_structure_get()
API: gst_structure_id_get()
API: gst_structure_get_valist()
API: gst_structure_id_get_valist()
2009-06-10 09:39:12 +01:00
Stefan Kost
ed88db818b registry: allow plugins to cache extra data in registry. Fixes #570233
Add a GstStructure to GstPlugin. Plugins can retieve it in plugin_init and
access the cached info or build the cache and store it there.
2009-06-07 23:48:59 +03:00
Wim Taymans
0e74bfe248 segment: add gst_segment_set_running_time
Added new method for closing the segment to a specific running time.

API: GstSegment::gst_segment_set_running_time()
2009-06-04 12:53:20 +02:00
Tim-Philipp Müller
604097bc3a API: add GST_MESSAGE_SRC_NAME macro
Add GST_MESSAGE_SRC_NAME macro that always returns a non-NULL string.
Useful for debugging and logging purposes.
2009-06-04 00:40:51 +01:00
Wim Taymans
92984a116b segment: add method for converting to position
Add gst_segment_to_position() that converts a running_time to a position in the
segment. A faulty variant of this function is currently used in inputselector
but we'll need it for frame stepping too.

API: GstSegment::gst_segment_to_position()
2009-06-03 19:06:30 +02:00
Wim Taymans
386c516e51 add new API for framestepping
Add new STEP event and methods for creating/parsing the event
Update design docs.
Add new STEP_DONE message and method to create/parse.

API: GstEvent::gst_event_new_step()
API: GstEvent::gst_event_parse_step()
API: GstMessage::gst_message_new_step_done()
API: GstMessage::gst_message_parse_step_done()
2009-06-01 13:36:49 +02:00
Tim-Philipp Müller
c8acbbfde0 structure: add gst_structure_id_new() convenience function
Add convenience wrapper for gst_structure_id_empty_new() plus
gst_structure_id_set() and use it in a few places.

API: gst_structure_id_new()
2009-05-29 19:28:10 +01:00
Wim Taymans
83b2c63a30 element: add start_time field an methods
Add a start_time field and some methods. The start_time will contain the
running_time of when the element last went to paused. This time can be user to
report the position in PAUSED but also to do more correct clipping and
stepping later.
2009-05-29 11:55:38 +02:00
Wim Taymans
8f7c59936e pad: add pad private structure
Add pad private structure and move the new chainlistfunc into the private
struct. This avoids ABI breakage and allows us to expand in the future.
2009-05-28 16:36:32 +02:00
Sebastian Dröge
4e8f547f98 API: Add gst_message_{new,parse}_tag_full() to get/set the source pad
Fixes bug #582588.
2009-05-27 14:32:51 +02:00
Wim Taymans
bb8f296d45 clock: use seqlocks to parallellize readers 2009-05-15 16:14:52 +02:00
Wim Taymans
ae08561ae6 element: add gst_element_lost_state_full()
Add a gst_element_lost_state_full() with an extra argument to control
distribution of a new base_time. We will need this for flushing step
operations.

API: GstElement::gst_element_lost_state_full()
2009-05-14 11:36:28 +02:00
Jonas Holmberg
22a48fb08c bufferlist: hook up the pad functions
Reuse buffer code for bufferlists. Not sure if this measurably impacts performance
for the simple buffer case, if it does after doing some benchmarks, we can
decouple it later.

Fixes #572285
2009-05-12 15:18:53 +02:00
Jonas Holmberg
d99cf4db1b bufferlist: add docs/build/debug/unittest
See #572285
2009-05-12 15:18:52 +02:00
José Alburquerque
7ff2f9233f API: Add gst_plugin_register_static_full()
This is mainly useful for bindings that need to provide
some additional user data to the registration function.

Fixes bug #545787.
2009-05-12 09:02:45 +02:00
Sebastian Dröge
99341f710c docs: Add new functions to the docs 2009-05-12 09:02:44 +02:00
Tim-Philipp Müller
0b285bfa40 tags: add a tag for the container format
API: add GST_TAG_CONTAINER_FORMAT
2009-05-11 23:44:19 +01:00
Wim Taymans
d2c5ea9a40 TaskPool: remove _set_func()
Remove the static function set on the TaskPool before _prepare() is called and
allow for assigning a function to a Task when we _push().
Update the examples
2009-05-12 00:27:38 +02:00
Wim Taymans
02250179d9 GstTask: add methods for configuring the pool
Add getter and setter for configuring the GstTaskPool to use for a GstTask.
2009-05-12 00:26:58 +02:00
Wim Taymans
4d326be6cf taskpool: fix docs, make push/join generic
Fix some more docs.
Make _push() return a generic id (this can be something else than a GThread in
some cases) and make _join() use that generic id.
2009-05-12 00:22:25 +02:00
Wim Taymans
aadac11ae3 taskpool: add new object to manage threads
Add a new object GstTaskPool to manage the streaming threads.
This will allow us to create and use custom configured threads.
2009-05-12 00:22:19 +02:00
Wim Taymans
2d8a22c1da Task: add method to set the priority
Add a method to configure a priority for the threads used by GstTask.
2009-05-12 00:08:35 +02:00
Wim Taymans
e72efeccd1 GstMessage: Add STREAM_STATUS message methods
Add methods to handle the stream_status message types.
2009-05-11 23:47:22 +02:00
Wim Taymans
9d8d9e0805 GstTask: allow setting callbacks
Allow setting thread callbacks that will allow us to control the threads used by
the task.
2009-05-11 23:19:53 +02:00
Wim Taymans
c31c3f215f GstTask: unify task state functions
Add new gst_task_set_state() to change the state of the task instead of
duplicating the code in each function.

API: GstTask::gst_task_set_state()
2009-05-11 22:59:35 +02:00
Wim Taymans
54401df78c gstobject: add gst_object_ref_sink
Add the gst_object_ref_sink() method to match the glib one.

API: GstObject::gst_object_ref_sink()
2009-05-11 22:35:08 +02:00
Jan Schmidt
4c6c9c2d5b paramspecs: revert gst_param_spec_is_mutable() for release
Revert the gst_param_spec_is_mutable API for this release so we can
discuss it a bit further first.
2009-04-16 00:48:11 +01:00
David Schleef
1ecf114c0e Add param spec flags for when a property can be changed
Adds GST_PARAM_MUTABLE* flags to indicate in which states a
property can be changed and take effect.  Fixes #571559
2009-04-12 18:45:24 -07:00
Tim-Philipp Müller
116c8be6bf API: add FIXME and DUMPMEM log levels and convenience macros
Two new log levels to dump FIXMEs into the log and to log data
in form of a hex dump (#578114).

API: GST_CAT_FIXME_OBJECT
API: GST_CAT_MEMDUMP_OBJECT
API: GST_CAT_FIXME
API: GST_CAT_MEMDUMP
API: GST_FIXME_OBJECT
API: GST_MEMDUMP_OBJECT
API: GST_FIXME
API: GST_MEMDUMP
2009-04-08 21:32:05 +01:00
Tim-Philipp Müller
c4e10b9535 API: add gst_tag_list_get_buffer{_index}
Convenience API, mostly for image tags, so people don't have to
figure out the whole GValue/GstValue thing just for this.
2009-03-26 14:21:10 +00:00
Tim-Philipp Müller
26f9f721ff API: add GST_TAG_SUBTITLE_CODEC
Yes, 'codec' isn't exactly the best word, but let's be consistent with AUDIO_CODEC
and VIDEO_CODEC (which may be 'raw' formats as well after all). Prerequisite for
bug  #576552.
2009-03-25 00:50:07 +00:00
Tim-Philipp Müller
0492ca71f5 API: add GST_QUERY_CAST
because we can, and for consistency.
2009-03-20 00:39:41 +00:00
Wim Taymans
ca33a78881 info: refactor debug colors for win32 and other
Refactor the debug line code to use as much code as possible for the win32 and
other color codings.
Update docs with new symbol.
2009-03-18 18:45:41 +01:00
Sebastian Dröge
3c6448c64e API: Add gst_util_array_binary_search() for binary searchs on a sorted array
This will be mostly useful in all elements that have some kind of internal
seek/index table. Currently almost all of them (or even all of them)
are using a linear search although the used array is already sorted,
wasting some CPU time without good reason.

Fixes bug #573623.
2009-03-02 16:17:45 +01:00
Wim Taymans
76e4fca773 Remove undeclared symbols from docs
Remove some undeclared symbols from the docs.
2009-02-24 11:40:14 +01:00
Alessandro Decina
d3940f520b GstPad: Add gst_pad_set_blocked_async_full
This allows connecting a GDestroyNotify for when the callback is removed/replaced.
Partially fixes #514717
2009-02-22 20:01:05 +01:00
Wim Taymans
4b986a4a94 Add message to request a state change
Add a GST_MESSAGE_REQUEST_STATE that can be posted by element when they would
like to have the application change the state of the pipeline. the primary use
case is to pause the pipeline when an audio mixer is mixing a higher priority
stream but it can also be used for other purposes.

Add some docs and a unit test.

Implement the REQUEST_STATE message in gst-launch.

API: gst_message_new_request_state()
API: gst_message_parse_request_state()
API: GST_MESSAGE_REQUEST_STATE
2009-02-18 15:31:55 +01:00
Sebastian Dröge
e74460824f taglist: API: Add HOMEPAGE tag
This tag will list a homepage for the media,
i.e. the artist's or movie's homepage.

This is different to GST_TAG_LOCATION as the latter
lists the original location of the media.

Fixes bug #571227.
2009-02-12 10:42:47 +01:00
Jonas Holmberg
abffdb2ac3 Implement the systemclock with gstpoll
Add a property to select the clock type, currently REALTIME and MONOTONIC when
posix timers are available.

Implement the systemclock with GstPoll instead of GCond. This allows us to
schedule timeouts with nanosecond precission on newer kernels and with ppoll
support. It's also resilient to changes to the systemclock because of NTP or
similar.
2009-02-03 18:04:46 +01:00
Wim Taymans
5cfb02af4a GstPoll: add methods to use gstpoll for timeouts
Add a special timer mode in GstPoll that makes it only use the control socket
with a timeout to schedule timeouts. Also add a pair of methods to wakeup the
timeout thread.
API: GstPoll::gst_poll_new_timer()
API: GstPoll::gst_poll_write_control()
API: GstPoll::gst_poll_read_control()
2009-02-03 17:49:02 +01:00
Tim-Philipp Müller
2ae03ba72f Add API for making a GStreamer plugin 'dependent' on external files, directories or environment variables, so that GS...
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt::
* gst/gst_private.h: (GstPluginDep), (_GstPluginPrivate):
* gst/gstplugin.c: (gst_plugin_init), (gst_plugin_finalize),
(gst_plugin_class_init), (gst_plugin_list_free),
(gst_plugin_ext_dep_get_env_vars_hash),
(_priv_plugin_deps_env_vars_changed),
(gst_plugin_ext_dep_extract_env_vars_paths),
(gst_plugin_ext_dep_get_hash_from_stat_entry),
(gst_plugin_ext_dep_direntry_matches),
(gst_plugin_ext_dep_scan_dir_and_match_names),
(gst_plugin_ext_dep_scan_path_with_filenames),
(gst_plugin_ext_dep_get_stat_hash),
(_priv_plugin_deps_files_changed), (gst_plugin_ext_dep_free),
(gst_plugin_ext_dep_strv_equal), (gst_plugin_ext_dep_equals),
(gst_plugin_add_dependency), (gst_plugin_add_dependency_simple):
* gst/gstplugin.h: (GstPluginPrivate), (GstPluginFlags),
(GST_PLUGIN_DEPENDENCY_FLAG_NONE),
(GST_PLUGIN_DEPENDENCY_FLAG_RECURSE),
(GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY),
(GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX),
(GstPluginDependencyFlags), (GstPluginFilter):
* gst/gstregistry.c: (gst_registry_scan_path_level):
* gst/gstregistrybinary.c: (gst_registry_binary_save_feature),
(gst_registry_binary_save_plugin_dep),
(gst_registry_binary_save_plugin),
(gst_registry_binary_load_feature),
(gst_registry_binary_load_plugin_dep_strv),
(gst_registry_binary_load_plugin_dep),
(gst_registry_binary_load_plugin):
* gst/gstregistrybinary.h: (GST_MAGIC_BINARY_VERSION_STR),
(GstBinaryPluginElement), (_GstBinaryDep), (GstBinaryDep):
* gst/gstregistryxml.c: (gst_registry_xml_save_plugin):
Add API for making a GStreamer plugin 'dependent' on external files,
directories or environment variables, so that GStreamer knows when
it needs to re-load GStreamer plugins that wrap other plugin systems.
Fixes bug #350477.
API: add gst_plugin_add_dependency()
API: add gst_plugin_add_dependency_simple()
2009-01-06 17:58:59 +00:00
Sebastian Dröge
9b65eb6838 API: Add URI query type. This is useful to query the URI of a sink/source element and can be used by demuxers that ne...
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstquark.c:
* gst/gstquark.h:
* gst/gstquery.c: (gst_query_new_uri), (gst_query_set_uri),
(gst_query_parse_uri):
* gst/gstquery.h:
API: Add URI query type. This is useful to query the URI
of a sink/source element and can be used by demuxers that
need to get data from other files.
This query should go upstream by default.
Fixes bug #562949.
* plugins/elements/gstfdsink.c: (gst_fd_sink_query):
* plugins/elements/gstfdsrc.c: (gst_fd_src_class_init),
(gst_fd_src_query):
* plugins/elements/gstfilesink.c: (gst_file_sink_query):
* plugins/elements/gstfilesrc.c: (gst_file_src_class_init),
(gst_file_src_query):
Implement URI query.
2008-12-20 17:33:44 +00:00
Stefan Kost
0961f05009 Rename api added in previous commit and add since tag to docs.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gsttagsetter.c:
* gst/gsttagsetter.h:
Rename api added in previous commit and add since tag to docs.
API: gst_tag_setter_reset_tags()
2008-12-16 15:51:52 +00:00
Stefan Kost
2e25b024cc Add function to reset tagsetter for element reuse.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gsttagsetter.c:
* gst/gsttagsetter.h:
Add function to reset tagsetter for element reuse.
API: gst_tag_setter_flush()
2008-12-16 14:05:40 +00:00
Wim Taymans
c311f2153a Add method to recalculate and redistribute the latency on a bin.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstbin.c: (gst_bin_recalculate_latency),
(gst_bin_change_state_func):
* gst/gstbin.h:
Add method to recalculate and redistribute the latency on a bin.
API: gst_bin_recalculate_latency().
2008-11-18 09:58:33 +00:00
Andy Wingo
5f5fbbdd7d Add sequence numbers to events and messages. See #559250.
Original commit message from CVS:
2008-11-04  Andy Wingo  <wingo@pobox.com>

Add sequence numbers to events and messages. See #559250.

* gst/gstutils.c (gst_util_seqnum_next, gst_util_seqnum_compare):
New functions.

* gst/gstevent.h:
* gst/gstevent.c (_gst_event_copy, gst_event_new): Initialize new
events with a new sequence number, and copy it when copying.
(gst_event_get_seqnum, gst_event_set_seqnum): Accessors for an
event's sequence number.

* gst/gstmessage.h:
* gst/gstmessage.c (_gst_message_copy, gst_message_new_custom):
(gst_event_get_seqnum, gst_event_set_seqnum): As with events, so
with messages.

* docs/gst/gstreamer-sections.txt: Add new functions to the docs.
2008-11-04 12:22:53 +00:00
Stefan Kost
7407326abb docs/: Change to xinclude based build - its faster and easier to maintain.
Original commit message from CVS:
* docs/Makefile.am:
* docs/gst/gstreamer-docs.sgml:
* docs/gst/gstreamer-sections.txt:
* docs/gst/running.xml:
* docs/libs/gstreamer-libs-docs.sgml:
Change to xinclude based build - its faster and easier to maintain.
2008-10-30 15:29:51 +00:00
Sebastian Dröge
5644be89d7 API: Move float endianness conversion macros from libgstfloatcast to core as it's useful in general, even in core. Fi...
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstutils.h:
API: Move float endianness conversion macros from libgstfloatcast
to core as it's useful in general, even in core. Fixes bug #555196.
This adds GDOUBLE_FROM_BE, GDOUBLE_FROM_LE, GDOUBLE_TO_BE,
GDOUBLE_TO_LE, GDOUBLE_SWAP_LE_BE, GFLOAT_FROM_BE, GFLOAT_FROM_LE,
GFLOAT_TO_BE, GFLOAT_TO_LE, GFLOAT_SWAP_LE_BE.
Also add GST_READ_ and GST_WRITE_ macros for floats and doubles:
GST_READ_FLOAT_LE, GST_READ_FLOAT_BE, GST_READ_DOUBLE_LE,
GST_READ_DOUBLE_BE, GST_WRITE_FLOAT_LE, GST_WRITE_FLOAT_BE,
GST_WRITE_DOUBLE_LE, GST_WRITE_DOUBLE_BE.
2008-10-23 07:09:21 +00:00
Andy Wingo
996961603e docs/gst/gstreamer-sections.txt: Placate doc pendants.
Original commit message from CVS:
2008-10-08  Andy Wingo  <wingo@pobox.com>

* docs/gst/gstreamer-sections.txt: Placate doc pendants.
2008-10-08 11:11:25 +00:00
Sebastian Dröge
22dd04f7e0 Always use the unaligned variants of GST_READ_UINT* and GST_WRITE_UINT* as it's too easy to break the ISO C strict al...
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstutils.h:
Always use the unaligned variants of GST_READ_UINT* and GST_WRITE_UINT*
as it's too easy to break the ISO C strict aliasing rules with simple
casts to the corresponding type and this would introduce hard to debug
bugs. Fixes bug #545714.
API: Add GST_READ_UINT24_(LE|BE) and GST_WRITE_UINT24_(LE|BE).
2008-10-07 12:00:49 +00:00
Thijs Vermeir
a6c9220c57 docs/gst/gstreamer-sections.txt: Fix documentation
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
Fix documentation
2008-10-06 21:52:57 +00:00
Wim Taymans
cb98130213 Implement STRUCTURE_CHANGED messages. These messages will be used to signal the parent bin of link/unlink operations ...
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstmessage.c: (gst_message_new_structure_change),
(gst_message_parse_structure_change):
* gst/gstmessage.h:
Implement STRUCTURE_CHANGED messages. These messages will be used to
signal the parent bin of link/unlink operations that could require a
resync when doing a state change. See ##510354.
API: gst_message_new_structure_change()
API: gst_message_parse_structure_change()
2008-10-06 15:31:49 +00:00
Stefan Kost
ce1f50ae11 Add new tags for geo location and clarify purpose of existing location tag. Fixes #481169
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gsttaglist.c:
* gst/gsttaglist.h:
Add new tags for geo location and clarify purpose of existing location
tag. Fixes #481169
2008-09-01 13:35:32 +00:00
Olivier Crete
68037404b8 Add threadsafe replacement functions for getting internal links of an element. Deprecate the old internal links funct...
Original commit message from CVS:
Based on patch by: Olivier Crete <tester at tester dot ca>
* docs/gst/gstreamer-sections.txt:
* win32/common/libgstreamer.def:
* gst/gstpad.c: (gst_pad_init),
(gst_pad_set_iterate_internal_links_function),
(int_link_iter_data_free), (iterate_pad),
(gst_pad_iterate_internal_links_default),
(gst_pad_iterate_internal_links), (gst_pad_get_internal_links):
* gst/gstpad.h:
Add threadsafe replacement functions for getting internal links of an
element. Deprecate the old internal links functions.
API:GstPad::gst_pad_set_iterate_internal_links_function()
API:GstPad::GstPadIterIntLinkFunction
API:GstPad::gst_pad_iterate_internal_links()
API:GstPad::gst_pad_iterate_internal_links_default()
* gst/gstghostpad.c: (gst_proxy_pad_do_iterate_internal_links),
(gst_proxy_pad_init):
Implement threadsafe internal links.
* tests/check/elements/tee.c: (GST_START_TEST), (tee_suite):
Unit test for internal links on tee. See #549504.
2008-09-01 10:42:04 +00:00
Stefan Kost
bdbd0bfac4 Document preset-iface vmethods.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstpreset.h:
Document preset-iface vmethods.
2008-08-11 08:06:20 +00:00
Stefan Kost
6cf55f54e3 Add new taglist item GST_TAG_KEYWORDS, needed for #520694 .
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gsttaglist.h:
Add new taglist item GST_TAG_KEYWORDS, needed for #520694 .
2008-08-01 11:34:06 +00:00
Sebastian Dröge
4bfb1fe70c Remove GST_DISABLE_(ENUMTYPES|INDEX|URI) everywhere.
Original commit message from CVS:
* configure.ac:
* docs/gst/gstreamer-sections.txt:
* docs/gst/gstreamer.types:
* docs/gst/gstreamer.types.in:
* gst/Makefile.am:
* gst/gst.c:
* gst/gstbin.c: (gst_bin_class_init), (gst_bin_set_index_func):
* gst/gstconfig.h.in:
* gst/gstelement.c: (gst_element_get_index):
* gst/gstregistrybinary.c: (gst_registry_binary_save_feature),
(gst_registry_binary_load_feature),
(gst_registry_binary_read_cache):
* gst/gstregistryxml.c: (load_feature),
(gst_registry_xml_read_cache), (gst_registry_xml_save_feature):
* plugins/Makefile.am:
* tools/gst-indent:
* tools/gst-inspect.c: (print_index_info), (print_element_list),
(print_plugin_features), (print_element_features):
* tools/gst-xmlinspect.c: (print_event_masks),
(print_element_info):
* win32/common/gstconfig.h:
Remove GST_DISABLE_(ENUMTYPES|INDEX|URI) everywhere.
Disabling the indexers and URI handler code will only reduce the
required amount of memory by a very small amount but on the other hand
requires much more maintaince work. Apart from that many places of
code are broken when disabling them.
Disabling the enum types doesn't reduce the required amount of memory
by more than a few bytes and makes it hard to fix bugs like #539772,
i.e. use the enums as GObject properties.
2008-07-31 15:20:32 +00:00
Stefan Kost
e80386183e docs/gst/gstreamer-sections.txt: Cleanup section-file.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
Cleanup section-file.
2008-07-29 13:30:02 +00:00
Sebastian Dröge
3ee5b33c7e API: Add GST_TAG_ATTACHMENT for generic file attachments to streams.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gsttaglist.c: (_gst_tag_initialize):
* gst/gsttaglist.h:
API: Add GST_TAG_ATTACHMENT for generic file attachments to streams.
Fixes bug #538568.
2008-06-20 08:39:54 +00:00
Stefan Kost
bedb591973 configure.ac: Add DATADIR for storing presets.
Original commit message from CVS:
Patch by: Stefan Kost  <ensonic@users.sf.net>
* configure.ac:
Add DATADIR for storing presets.
* docs/gst/gstreamer-docs.sgml:
* docs/gst/gstreamer-sections.txt:
* docs/gst/gstreamer.types.in:
Add GstPreset to docs.
* gst/Makefile.am:
* gst/gst.h:
* gst/gstpreset.c: (preset_get_paths), (preset_skip_property),
(preset_open_and_parse_header), (preset_parse_version),
(preset_merge), (preset_get_keyfile),
(gst_preset_default_get_preset_names),
(gst_preset_default_get_property_names),
(gst_preset_default_load_preset),
(gst_preset_default_save_presets_file),
(gst_preset_default_save_preset),
(gst_preset_default_rename_preset),
(gst_preset_default_delete_preset), (gst_preset_default_set_meta),
(gst_preset_default_get_meta), (gst_preset_default_randomize),
(gst_preset_default_reset), (gst_preset_get_preset_names),
(gst_preset_get_property_names), (gst_preset_load_preset),
(gst_preset_save_preset), (gst_preset_rename_preset),
(gst_preset_delete_preset), (gst_preset_set_meta),
(gst_preset_get_meta), (gst_preset_class_init),
(gst_preset_base_init), (gst_preset_get_type):
* gst/gstpreset.h:
Add GstPreset to core. Fixes #396779
* tests/check/Makefile.am:
* tests/check/gst/gstpreset.c: (gst_preset_test_get_property),
(gst_preset_test_set_property), (gst_preset_test_class_init),
(gst_preset_test_base_init), (gst_preset_test_get_type),
(gst_preset_test_plugin_init), (GST_START_TEST),
(remove_preset_file), (test_setup), (test_teardown),
(gst_preset_suite):
Add GstPreset unit tests.
2008-05-27 15:11:35 +00:00
Tim-Philipp Müller
b05a18fcfc API: add gst_bin_find_unlinked_pad()
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gstutils.c: (element_find_unlinked_pad),
(gst_bin_find_unlinked_pad), (gst_bin_find_unconnected_pad),
* gst/gstutils.h:
API: add gst_bin_find_unlinked_pad()
API: deprecate gst_bin_find_unconnected_pad() (#401456)
2008-05-27 10:50:49 +00:00
Tim-Philipp Müller
ebc08ddfb9 API: gst_parse_launch_full()
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gst.c: (init_post):
* gst/gst_private.h: (_GstParseContext):
* gst/gstparse.c: (gst_parse_error_quark), (gst_parse_context_new),
(gst_parse_context_free), (gst_parse_context_get_missing_elements),
(gst_parse_launchv), (gst_parse_launchv_full), (gst_parse_launch),
(gst_parse_launch_full):
* gst/gstparse.h: (GST_PARSE_FLAG_NONE), (GST_PARSE_FLAG_FATAL_ERRORS),
(GstParseFlags), (GstParseContext):
* gst/gstutils.c: (gst_parse_bin_from_description),
(gst_parse_bin_from_description_full):
* gst/gstutils.h:
* gst/parse/grammar.y:
* gst/parse/types.h:
* win32/common/libgstreamer.def:
Add new gst_parse_*_full API (#528178):
API: gst_parse_launch_full()
API: gst_parse_launchv_full()
API: gst_parse_bin_from_description_full()
API: gst_parse_context_new()
API: gst_parse_context_free()
API: gst_parse_context_get_missing_elements()
2008-05-24 15:33:53 +00:00
Tim-Philipp Müller
ffee4e6260 API: add gst_type_find_suggest_simple(), #533740.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
* gst/gsttypefind.c: (gst_type_find_suggest_simple):
* gst/gsttypefind.h:
* win32/common/libgstreamer.def:
API: add gst_type_find_suggest_simple(), #533740.
2008-05-19 10:46:44 +00:00
Wim Taymans
cf45b88349 Add method to conveniently check the name of a custom event with gst_event_has_name().
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()
2008-04-29 11:23:51 +00:00
Stefan Kost
012d5584ff docs/gst/gstreamer-sections.txt: Move GParamSepc macros to standart section.
Original commit message from CVS:
* docs/gst/gstreamer-sections.txt:
Move GParamSepc macros to standart section.
* gst/gstbin.c:
Dn't document _get_type - its in private section in docs anyway and
this doc-blob was incomplete.
* gst/gstclock.h:
Fix wrong symbol names in docs.
* gst/gstmacros.h:
Add once doc sentence.
* tests/check/gst/.cvsignore:
Ignore more.
2008-04-23 06:57:30 +00:00
Stefan Kost
4a638e29d9 Add GST_PARAM_CONTROLLABLE and GST_PARAM_USER_SHIFT. Move paramspec docs to own section.
Original commit message from CVS:
* docs/gst/gstreamer-docs.sgml:
* docs/gst/gstreamer-sections.txt:
* gst/gstparamspecs.c:
* gst/gstparamspecs.h:
Add GST_PARAM_CONTROLLABLE and GST_PARAM_USER_SHIFT. Move paramspec
docs to own section.
* gst/gstvalue.c:
This now only documents GValue.
* docs/libs/gstreamer-libs-sections.txt:
* libs/gst/controller/gstcontroller.h:
Remove GST_PARAM_CONTROLLABLE.
2008-04-15 06:16:33 +00:00
José Alburquerque
f273ee8c4b Add gst_pad_add_*_probe_full() functions with a notify callback that lets the caller free the data it passes to the p...
Original commit message from CVS:
Based on patch by: José Alburquerque <jaalburqu at svn dot gnome dot org>
* gst/gstutils.c: (gst_pad_add_data_probe),
(gst_pad_add_data_probe_full), (gst_pad_add_event_probe),
(gst_pad_add_event_probe_full), (gst_pad_add_buffer_probe),
(gst_pad_add_buffer_probe_full):
* gst/gstutils.h:
* docs/gst/gstreamer-sections.txt:
* win32/common/libgstreamer.def:
Add gst_pad_add_*_probe_full() functions with a notify callback that
lets the caller free the data it passes to the probe functions. This
is useful for bindings such as gst-python or gstreamermm (#526814).
API: gst_pad_add_data_probe_full
API: gst_pad_add_buffer_probe_full
API: gst_pad_add_event_probe_full
* tests/check/gst/gstutils.c:
Add minimal unit test to make sure freeing the data actually works
as expected.
* tests/benchmarks/.cvsignore:
Random cvsignore addendum.
2008-04-10 20:46:51 +00:00