Sebastian Dröge
7477b25df5
caps: Add new data type for handling caps features to the caps
...
These are meant to specify features in caps that are required
for a specific structure, for example a specific memory type
or meta.
Semantically they could be though of as an extension of the media
type name of the structures and are handled exactly like that.
2013-03-31 18:15:52 +02:00
Sebastian Dröge
171c79c9a7
structure: Make sure that subsets have all fields of the superset
...
"video/x-h264,parsed=(boolean)true" is not a superset of
"video/x-h264,stream-format=(string)byte-stream,alignment=(string)nal"
for example.
https://bugzilla.gnome.org/show_bug.cgi?id=693365
2013-02-13 10:46:37 +01:00
Tim-Philipp Müller
22036ef1c4
caps, structure, taglist: micro-optimisations
...
Avoid some unnecessary GValue copying by making use of
gst_structure_id_take_value() where possible.
2012-12-22 16:55:26 +00:00
Wim Taymans
5f2fbb6370
add debug category
...
Adding a debug category is nicer than logging to the default category
2012-12-14 11:09:30 +01:00
Tim-Philipp Müller
666c8c11c6
Fix FSF address
...
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 20:44:48 +00:00
Tim-Philipp Müller
c2175db889
sample: add serialisation/deserialisation functions for GstSample
...
Since these things are inside taglists now, it would be good to be
able to print them and deserialise them.
https://bugzilla.gnome.org/show_bug.cgi?id=681322
2012-09-16 23:20:46 +01:00
Tim-Philipp Müller
ffdefd7720
value: add GstTagList serialisation/deserialisation
...
So we can serialise/deserialise taglists inside structures,
which used to work automagically before because GstTagList
was just a typedef to GstStructure (same for the GType),
but now that it's a separate GType we need to register
explicit functions for this.
Helps with GDP stuff in pipelines/streamheader tests.
2012-07-20 09:39:53 +01:00
Edward Hervey
634cb80c8e
structure: Demote WARNING to DEBUG
...
It is not an issue to get fields that don't exist, calling code should
handle that.
2012-07-11 10:24:51 +02:00
Edward Hervey
d3ffa82639
Remove 0.10-related documentation and "Since" markers
2012-07-10 12:03:27 +02:00
Sebastian Rasmussen
aab5b579a8
gststructure: Set lcopy string const exactly as glib's macro
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=679534
2012-07-07 13:32:41 +01:00
Edward Hervey
d2627a158e
structure: Demote WARNING to INFO
...
It is common to use gst_structure_get() to know if a field is present
or not.
2012-07-06 12:48:44 +02:00
Anton Belka
0bdd1224d3
docs: fix gst_structure_to_string() docs
2012-05-17 12:01:51 +02:00
Wim Taymans
ce67b0e539
docs: update more documentation
2012-03-29 13:34:50 +02:00
Wim Taymans
89d0316895
structure: add allocation debug
2012-03-11 17:22:01 +01:00
Tim-Philipp Müller
ebe525be4c
structure: print a g_warning() if someone tries to construct 0.10-style raw audio/video caps
2012-02-29 12:41:44 +00:00
Edward Hervey
479b7ff5f1
gststructure: Set "transfer none" to return values that shouldn't be freed
2012-01-26 18:54:50 +01:00
Vincent Penquerc'h
39533f4364
gstvalue: add stepped ranges
...
int and int64 ranges can now have an optional step (defaulting to 1).
Members of the range are those values within the min and max bounds
which are a multiple of this step.
https://bugzilla.gnome.org/show_bug.cgi?id=665294
2012-01-24 12:11:44 +00:00
Tim-Philipp Müller
66d19b65fb
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
tools/gst-inspect.c
2012-01-13 00:22:03 +00:00
Tim-Philipp Müller
c721d53773
Remove GST_TYPE_DATE, our own GDate type
...
Which we had to add because GLib didn't have it
back in the day. Port everything to plain old
G_TYPE_DATE, which is also a boxed type. Ideally
we'd just use GDateTime for everything, but it
doesn't support not setting some of the fields
unfortuntely (which would be very useful for
tag handling in general, if we could express
2012-01 for example).
https://bugzilla.gnome.org/show_bug.cgi?id=666351
2012-01-12 20:50:53 +00:00
Vincent Penquerc'h
98c99630ad
gststructure: clarify _get docs about the returned reference
...
https://bugzilla.gnome.org/show_bug.cgi?id=667689
2012-01-11 12:23:25 +00:00
Sebastian Dröge
33f53d46ab
structure: Add "bitmask" as alias for (GstBitmask) when (de-)serializing values
2012-01-05 10:24:14 +01:00
Wim Taymans
9c0d8ca718
Merge branch 'master' into 0.11
...
Conflicts:
gst/gstelement.h
gst/gstghostpad.c
gst/gstminiobject.c
2011-11-08 12:54:15 +01:00
Tim-Philipp Müller
16dcd5e958
docs: fix Since: markers for API added after 0.10.35
2011-11-08 00:32:36 +00:00
Wim Taymans
c9a4037805
Merge branch 'master' into 0.11
...
Conflicts:
gst/gstvalue.c
2011-11-07 17:17:39 +01:00
Vincent Penquerc'h
b37d06aed8
gstvalue: quicker version of intersection when we do not need the result
...
https://bugzilla.gnome.org/show_bug.cgi?id=662777
2011-11-07 15:17:19 +00:00
Vincent Penquerc'h
d9901a6288
gststructure: simplify return statement in gst_structure_can_intersect
...
https://bugzilla.gnome.org/show_bug.cgi?id=662777
2011-11-07 15:17:14 +00:00
Vincent Penquerc'h
afc80c10d1
gststructure: early out when we know a value cannot be a subset
...
If two values can be ordered, but are unequal, they are
necessarily distinct, thus one cannot be a subset of the other.
https://bugzilla.gnome.org/show_bug.cgi?id=662777
2011-11-07 15:17:04 +00:00
Vincent Penquerc'h
29c97fe780
gstvalue: quicker test for substraction emptiness
...
When we do not care about the actual resulting set,
but only whether it is empty of not, we can skip a fair bit
of GValue juggling.
Add a function that does so, since we cannot just pass NULL
to the existing API as it may be part of the API contract.
https://bugzilla.gnome.org/show_bug.cgi?id=662777
2011-11-07 15:16:52 +00:00
Vincent Penquerc'h
7090257a83
gststructure: rejig test ordering for speed
...
https://bugzilla.gnome.org/show_bug.cgi?id=662777
2011-11-07 15:16:26 +00:00
Wim Taymans
e4725d9df2
structure: cleanup API
...
gst_structure_empty_new() -> gst_structure_new_empty()
gst_structure_id_empty_new() -> gst_structure_new_id_empty()
gst_structure_id_new() -> gst_structure_new_id()
2011-11-02 08:59:44 +01:00
Tim-Philipp Müller
002446820e
Merge remote-tracking branch 'origin/master' into 0.11
2011-10-30 09:31:39 +00:00
Tim-Philipp Müller
bc1a37e64f
structure: identical structures are definitely equal
2011-10-29 23:52:22 +01:00
Johan Dahlin
22acd34c42
Add gst_structure_get_type
...
https://bugzilla.gnome.org/show_bug.cgi?id=657640
2011-10-19 10:20:31 +02:00
Wim Taymans
52cb649834
Merge branch 'master' into 0.11
2011-09-26 19:25:22 +02:00
Raimo Järvi
6637d983d3
gst: Fix compiler warnings on 64 bit mingw-w64
...
Fixes bug #660083 .
2011-09-26 12:17:30 +02:00
Sebastian Dröge
43538e2e75
Merge branch 'master' into 0.11
...
Conflicts:
docs/design/draft-buffer2.txt
docs/design/part-TODO.txt
docs/design/part-block.txt
docs/design/part-bufferlist.txt
docs/design/part-caps.txt
docs/design/part-element-transform.txt
docs/design/part-events.txt
docs/design/part-negotiation.txt
gst/gstcaps.c
gst/gstevent.h
gst/gstghostpad.c
gst/gstinterface.c
gst/gstpad.c
gst/gstpad.h
gst/gstutils.c
libs/gst/base/gstbasesink.c
libs/gst/base/gstbasesrc.c
libs/gst/base/gstbasetransform.c
libs/gst/base/gsttypefindhelper.c
plugins/elements/gstcapsfilter.c
plugins/elements/gsttee.c
tests/check/generic/sinks.c
tools/gst-launch.1.in
2011-09-08 14:28:23 +02:00
Piotr Fusik
14f5518f3d
docs, gst: typo fixes
...
https://bugzilla.gnome.org/show_bug.cgi?id=658449
2011-09-07 18:03:17 +01:00
Wim Taymans
4145598972
gst: add some _priv prefixes to private methods
2011-08-29 13:27:26 +02:00
Wim Taymans
405a5d2a92
value: remove our FOURCC GType
...
Remove our custom fourcc GValue.
2011-08-22 12:19:19 +02:00
Wim Taymans
b1573e9865
structure: add method to fixate one field
2011-08-17 17:56:40 +02:00
Wim Taymans
49fc4249e5
caps: add fixate function
...
Add a fixate function and use it in gstpad.c
2011-08-15 14:40:38 +02:00
Wim Taymans
bd20d2d199
structure: add function to fixate
...
Add a function to fixate a structure and use it for the default fixate function
in gstpad.c.
2011-08-15 14:32:17 +02:00
Wim Taymans
7b43f02ed3
structure: fix some more 0.11 fixmes
...
don't allow spaces in structure names and fix unit tests.
2011-06-03 13:25:54 +02:00
Wim Taymans
04323a0bb9
structure: fix a FIXME
2011-06-02 15:38:29 +02:00
Wim Taymans
272b3263aa
Merge branch 'master' into 0.11
...
Conflicts:
plugins/elements/gstoutputselector.c
2011-06-01 19:47:10 +02:00
Sebastian Dröge
0a80b57d74
value: Consider "1" and "{1}" as equal in gst_value_compare()
...
Previously this was only done in the is_subset() check but
having it only there brings us into definition-hell where
"1" and "{1}" are subset of each other but not equal.
2011-05-30 11:33:57 +02:00
Sebastian Dröge
58302cedfa
Merge branch 'master' into 0.11
2011-05-30 07:41:13 +02:00
Sebastian Dröge
f304196148
caps: Fix subset check for equivalent lists and scalar values
...
For example "{ 1 }" and "1" are not strictly equal but
both are a subset of each other. Also add a unit test
for this.
2011-05-30 07:38:40 +02:00
Sebastian Dröge
30a7fd7b4d
Merge branch 'master' into 0.11
2011-05-27 13:58:26 +02:00
Sebastian Dröge
da58834884
structure: Add gst_structure_is_subset()
...
API: gst_structure_is_subset()
2011-05-27 13:47:11 +02:00
Sebastian Dröge
007b16b024
Merge branch 'master' into 0.11
2011-05-26 13:36:48 +02:00
Tim-Philipp Müller
8a3721a1ca
gst: we can now use GLib 2.24 API unconditionally
2011-05-25 16:02:10 +01:00
Sebastian Dröge
077cf48689
structure: Fix compilation
2011-05-17 11:22:58 +02:00
Sebastian Dröge
e34c26b509
Merge branch 'master' into 0.11
...
Conflicts:
win32/common/libgstreamer.def
2011-05-17 09:43:21 +02:00
Sebastian Dröge
b4dea3a1d3
structure: Make both parameters to gst_structure_is_equal() const
2011-05-17 09:35:54 +02:00
Sebastian Dröge
53ef31718d
structure: Update Since markers to the correct version
2011-05-17 09:33:47 +02:00
Sebastian Dröge
a08a17dfbd
structure: Add gst_structure_intersect()
...
API: gst_structure_intersect()
2011-05-17 09:33:04 +02:00
Edward Hervey
64725facb5
gststructure: Add gst_structure_can_intersect API
...
Allows checking if two structures can intersect without having to
go through GstCaps
API: gst_structure_can_intersect
https://bugzilla.gnome.org/show_bug.cgi?id=629300
2011-05-17 09:28:06 +02:00
Edward Hervey
ae46eb3a38
gstructure: New API: gst_structure_is_equal
...
Allows checking equality of GstStructure without having to create
intermediary GstCaps.
API: gst_structure_is_equal
https://bugzilla.gnome.org/show_bug.cgi?id=629300
2011-05-17 09:28:00 +02:00
Wim Taymans
9597545d23
structure: more cleanups
...
gst_structure_get_type() -> _gst_structure_type to avoid method calls for
getting the GType that initialized at the start.
Hide some structure fields in private data so that we can change the
implementation.
Move structure equality check from caps.c to structure.c where it belongs.
2011-05-11 18:17:45 +02:00
Sebastian Dröge
bf6c3ea6df
gst: Add some more gobject-introspection annotations
2011-04-14 16:14:01 +02:00
Sebastian Dröge
5860734aaf
structure: Add date as a type abbreviation of GDate
...
See bug #646696 .
2011-04-05 14:37:55 +02:00
Sebastian Dröge
eba33c1de1
structure: Don't allow invalid GDates in all structures and don't allow NULL GDates in taglists
...
Some code (e.g. gstvorbistag.c) assumes non-NULL GDates in taglists and
explodes otherwise and NULL or invalid GDates don't make much sense anyway.
2011-04-04 10:18:14 +02:00
Stefan Kost
d963503b26
structure: gst_structure_empty_new() does better error checking
...
No need to check for media_type!=NULL as the function we call that actual create
the structure does a full check anyway.
2011-03-08 10:07:17 +02:00
Stefan Kost
4d9e645551
caps,structure: trim trailing whitespace
2011-03-08 10:07:03 +02:00
Mart Raudsepp
e7569342b1
docs: add missing "Since: 0.10.31" marker for gst_structure_get_date_time()
2011-01-24 14:38:15 +00:00
Tim-Philipp Müller
8a7fc1d8c9
Revert "micro-optim: if (x) is cheaper than if (x > 0) for unsigned integers"
...
This reverts commit 6aa8ca37ee
.
See http://article.gmane.org/gmane.comp.video.gstreamer.devel/32282
2010-12-26 21:21:43 +00:00
Tim-Philipp Müller
3256c708be
docs: gst: more gobject introspection annotations
...
Many of these are superfluous, added for clarity.
2010-12-07 18:37:04 +00:00
Edward Hervey
6aa8ca37ee
micro-optim: if (x) is cheaper than if (x > 0) for unsigned integers
2010-12-03 12:03:42 +01:00
Tim-Philipp Müller
608628d10d
structure: micro-optimisation for some setter functions
...
Split out functions that do the actual work, so we avoid doing
the same g_return_if_fail() checks multiple times for each call.
2010-09-16 19:40:15 +01:00
Tim-Philipp Müller
7e5a9580ef
structure: add gst_structure_{id_}take_value()
...
Add _set_value() variants that take ownership of the value passed
instead of making a copy of the value. This is useful for setting
values to things that aren't refcounted (e.g. GValueArrays or
strings or string arrays, etc.).
API: gst_structure_take_value()
API: gst_structure_id_take_value()
https://bugzilla.gnome.org/show_bug.cgi?id=629831
2010-09-16 19:39:58 +01:00
Philippe Normand
b2e6379be8
gstvalue: Add new GstInt64Range type
...
new GstInt64Range to store gint64 ranges.
API: GST_TYPE_INT64_RANGE
API: gst_value_set_int64_range
API: gst_value_get_int64_range_min
API: gst_value_get_int64_range_max
Fixes bug #627826 .
2010-09-01 11:07:37 +02:00
Thiago Santos
f2c18c6c98
gststructure: Adds datetime getter function
...
Adds gst_structure_get_date_time function
API: gst_structure_get_date_time
Fixes #594504
2010-07-26 11:57:52 -03:00
Thiago Santos
b4870282cb
gstvalue: Adds datetime functions
...
Adds a datetime functions to gstvalue
Fixes #594504
2010-07-26 11:57:50 -03:00
Sebastian Dröge
88ec06f433
structure: Use a const GstStructure * as parameter for some more gst_structure_get variants
2010-07-16 17:33:38 +02:00
Sebastian Dröge
e35fe4ef9c
structure: API: Add gst_structure_fixate_field_string()
2010-05-22 10:01:44 +02:00
Tim-Philipp Müller
24ce15bca7
structure: log what structure string we failed to parse
2010-04-14 23:53:26 +01:00
Sebastian Dröge
e305e49ef4
structure: Make structure abbreviations array one-time initialization threadsafe
2010-03-28 19:49:00 +02:00
Tim-Philipp Müller
0aa584917a
structure: add mapping for (uint) to allow deserialisation of unsigned integers
...
Unsigned ints are used in taglists, would be nice to be able to
deserialise them, esp. in connection with the taginject API.
2010-03-23 19:23:22 +00:00
Mart Raudsepp
db949f66e0
docs: fix since tag for gst_structure_id_has_field_typed()
...
gst_structure_id_has_field_typed was added in 0.10.26, not 0.10.16.
Apparent typo in commit f9e3b72f
when the API was added.
2010-03-17 11:03:15 +00:00
Tim-Philipp Müller
235910e227
gst: use #if GLIB_CHECK_VERSION instead of #ifndef GLIBMACRO
...
for better greppability at the time we bump GLib version requirements.
2010-03-17 11:03:15 +00:00
Edward Hervey
bbe26d36ba
gst: Use G_VALUE_COLLECT_INIT if available
...
This brings total call speedups between 5% and 25%.
gst_caps_set_simple_valist: +5%
gst_structure_set_valist: + 10%
gst_structure_id_set_valist: +25%
gst_tag_list_add_valist: +5%
Measured using valgrind when run over the discovery of 200 media files.
Fixes #610256
2010-03-12 10:01:47 +01:00
Benjamin Otte
a9d1a493a7
Fixes for -Wwrite-strings
...
This changes some APIs in compatible ways:
- Some functions now take "const char *" arguments, not "char *"
- Some structs now have "conts char *" members, not "char *"
The changes may cause warnings when compiling with the right warning
flags. You've been warned.
Also adds -Wwrite-strings as a warning flag in configure.ac.
https://bugzilla.gnome.org/show_bug.cgi?id=611692
2010-03-10 20:50:10 +01:00
Tim-Philipp Müller
51a462853a
structure: remove superfluous guard against NULL
...
All callers of this static function already check for NULL-ness
themselves, so no need to do it again (and if we do it, we should
probably do so before dereferencing the pointer for the first time).
2010-01-16 19:44:35 +00:00
Tim-Philipp Müller
4cdf375b1a
structure: micro-optimise some getters
...
Avoid checking the GType of the value twice (once on our side and
once in g_value_get_*()) by by-passing g_value_get() and accessing
the GValue structure directly.
2010-01-16 19:37:46 +00:00
Stefan Kost
23da3639f0
docs: fix xrefs in docs
...
Fix typos in xrefs, links to non existing functions and rework plural forms.
2009-11-25 16:59:50 +02:00
Tim-Philipp Müller
ab5f2f4f5d
Revert "structure: don't check type twice"
...
This reverts commit f864187bf5
.
Reverting this as it changes behaviour and the documentation is
ambiguous about whether the caller must check the type first or
not (call must check type vs. returns NULL if not a string). If
GLib has been compiled with G_DISABLE_CHECKS then g_value_get_string()
may return complete garbage even if the value does not contain
a string. Better play it safe, esp. since the extra check is just
an integer comparison. For fundamental types we could return values
from the GValue structure directly if we really wanted to bypass
the extra check.
2009-11-18 09:22:57 +00:00
Stefan Kost
f864187bf5
structure: don't check type twice
2009-11-18 10:12:13 +02:00
Stefan Kost
da9b082808
structure: remove some blank lines (previous gst-indent failure)
2009-11-17 09:40:12 +02:00
Stefan Kost
94f6eced23
structure: use local variable earlier
2009-11-17 09:40:12 +02:00
Stefan Kost
7bd9299f3e
structure: don't check enum types twice.
...
G_VALUE_HOLDS_ENUM(value) is defined as G_TYPE_CHECK_VALUE_TYPE (value,
G_TYPE_ENUM). Just check for the right enum-type right away.
2009-11-17 09:40:12 +02:00
Stefan Kost
c84d17bcaf
debug: add more debug logging to help tracking parsing errors
2009-11-13 15:46:40 +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
9459a93cb4
tags: only emit a g_warning() for empty tag strings for git versions
...
For now, don't show a g_warning() for empty tag strings and NULL
tags with non-git versions; we should wait for the fixes in our
plugin modules to make it into a release before we enable this
unconditionally.
2009-07-16 13:59:07 +01:00
Jan Schmidt
7bf3554228
structure: Change NULL and empty string handling
...
Don't forbid the empty string "" in generic structures, only in taglists.
Properly allow the NULL string by adding special cases for serialising
and deserialising it. prop1=(string)NULL is the NULL string,
prop1=(string)"NULL" is the actual string with the value "NULL"
2009-07-13 18:28:37 +01:00
Edward Hervey
3c21f2d86c
Spread branch prediction macros.
...
These are based on profiling several playback scenarios using playbin2.
2009-06-30 16:29:58 +02:00
Stefan Kost
dc9ca2e39c
structure: fix int->gint to be in sync with the *.h and usage
2009-06-27 16:37:07 +03:00
Edward Hervey
0fc8410433
GstStructure: Use direct values for repetitive conditionals (for/while).
2009-06-24 11:00:27 +02:00
Tim-Philipp Müller
17f794deeb
docs: make gtk-doc happy
2009-06-19 14:10:30 +01: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