Commit graph

7248 commits

Author SHA1 Message Date
Tim-Philipp Müller
9a9b449c5f printf: handle old GST_PTR_FORMAT %P and GST_SEGMENT_FORMAT %Q defines too
For binary backwards compatibility.
2013-04-12 23:05:57 +01:00
Tim-Philipp Müller
5803da553c printf: make printf parser recognise our pointer extension format
and call the hook to get a string for the pointer instead.

https://bugzilla.gnome.org/show_bug.cgi?id=613081
2013-04-12 23:05:57 +01:00
Tim-Philipp Müller
fe7f7135e0 printf: add infrastructure for pointer extensions hook
Does not do anything yet. On a sidenote, we can't just use
%p\001 or so to signal the extension because g-i complains
about an invalid ascii character then, so have to resort to
something more elaborate, such as %p\aA etc.

https://bugzilla.gnome.org/show_bug.cgi?id=613081
2013-04-12 23:05:57 +01:00
Tim-Philipp Müller
7b19944280 info: use new internal printf for debug message printing
and remove all the printf extension/specifier stuff for
the system printf. Next we need to add back the custom
specifiers to our own printf implementation.

https://bugzilla.gnome.org/show_bug.cgi?id=613081
2013-04-12 23:05:57 +01:00
Tim-Philipp Müller
8fc876f09f printf: add our own printf implementation for debug logging
We will add support for our own printf modifiers, so we can
get nice debug log output on all operating systems irrespective
of the specific libc version used.

https://bugzilla.gnome.org/show_bug.cgi?id=613081
2013-04-12 23:05:56 +01:00
Wim Taymans
f45c84db02 taglist: avoid triggering an assertion
When deserialization of the structure fails, return a NULL taglist instead of
asserting.
2013-04-12 16:17:46 +01:00
Wim Taymans
396b49ec4d buffer: add _gst_max_memory() function
Add the a function to query the maximum amount of memory blocks that can be
added to a buffer. Also improve the docs for _insert_memory().
2013-04-11 14:31:01 +01:00
Stefan Sauer
8d816e9527 bus: fix the precondition for gst_bus_disable_sync_message_emission()
Use the right variable and invert the test. The precondition should catch
someone calling to once too often.
2013-04-10 21:50:53 +02:00
Olivier Crête
787d973fb2 capsfeatures: Init debug category before ever using it 2013-04-09 19:37:06 -04:00
Руслан Ижбулатов
e745a2bcf0 clock: Do use HAVE_CLOCK_GETTIME
Fixes #697549
2013-04-09 20:33:27 +02:00
Sebastian Dröge
f7532a7e13 capsfeatures: Copy ANY flag when copying caps features too 2013-04-06 22:10:58 +02:00
Sebastian Dröge
91b3890d70 caps: Handle ANY caps features properly in more places 2013-04-06 21:49:25 +02:00
Sebastian Dröge
db6ee700f2 caps: Properly handle ANY caps features in caps operations 2013-04-06 21:09:49 +02:00
Stefan Sauer
627d111eb6 bus: update signal docs for gst_bus_enable_sync_message_emission() 2013-04-05 21:24:19 +02:00
Tim-Philipp Müller
cf69475aeb caps: fix caps feature leak
Fixes leaks in 14 core unit tests including
gst/gstcaps.
2013-04-04 23:14:13 +01:00
Wim Taymans
6c62146031 structure: simplify is_subset check
Iterate over the fields of the superset instead of those of the subset.
This way we can check the presence of the subset field and do the subset check
in one iteration.
2013-04-04 17:59:10 +02:00
Wim Taymans
d92ce924e6 caps: update docs, is_subset() works now 2013-04-04 17:46:09 +02:00
Wim Taymans
ff0deeed9a bufferpool: fix docs 2013-04-04 16:39:23 +02:00
Wim Taymans
3e1a430c22 pad: add gst_pad_store_sticky_event()
Rewire some internal functions and expose a new
gst_pad_store_sticky_event() function.

API: gst_pad_store_sticky_event()
2013-04-04 16:36:26 +02:00
Wim Taymans
1457c9c499 pad: clarify docs 2013-04-04 15:45:23 +02:00
Wim Taymans
e857030232 pad: improve debug 2013-04-04 15:45:15 +02:00
Wim Taymans
95c6cd37a8 segment: don't WARN, just DEBUG
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=696911
2013-04-04 10:17:30 +02:00
Nicolas Dufresne
ab44e14c52 segment: Fix seeking when position is slightly outside the segment
Very often, when the end of a segment is detected by demuxer, the position
is slightly outside the segment boundaries. Currently, if that is the case
the base will be set to NONE instead of normal accumulation. This would
break non-flushing seeks in oggdemux and most likely other demuxers.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=696899
2013-04-04 10:10:24 +02:00
Wim Taymans
e9c48043d1 gst: add stream flags 2013-04-03 16:45:46 +02:00
Tim-Philipp Müller
24cac0afa3 docs: more since markers and other docs fixes 2013-04-02 23:51:06 +01:00
Tim-Philipp Müller
ce77032133 docs: add since markers to capsfeatures docs 2013-04-02 23:21:39 +01:00
Sebastian Dröge
65c650d7d4 capsfeatures: Add GST_CAPS_FEATURES_ANY
This is equal to any other caps features but results in unfixed caps. It
would be used by elements that only look at the buffer metadata or are
currently working in passthrough mode, and as such don't care about any
specific features.
2013-04-02 22:17:22 +02:00
Tim-Philipp Müller
0dd761101c info: minor cosmetic changes
Let's not use ugly leading underscores for
static functions.
2013-04-01 22:17:20 +01:00
Tim-Philipp Müller
cef9018eaf info: fix object printing of caps features in debug log 2013-04-01 21:23:21 +01:00
Stefan Sauer
6465dbd647 info: refactor pretty printing objects
Extract formatters into local functions. Change the structure filtering so that
it works for taglists too.
2013-04-01 16:39:18 +02:00
Stefan Sauer
28b0cb5721 element: make post_message and query more alike 2013-04-01 16:39:17 +02:00
Sebastian Dröge
a838e5aa75 capsfeatures: For copying features it's not required to have no parent refcount 2013-04-01 10:19:25 +02:00
Sebastian Dröge
efcb4023e6 caps: Set features' parent refcount in gst_caps_set_features() too 2013-04-01 10:19:01 +02:00
Sebastian Dröge
ccd2966f7a caps: Set sysmem features if explicitely requested 2013-04-01 10:18:39 +02:00
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
Tim-Philipp Müller
caa06788c3 event: add SELECT and UNSELECT stream flags for stream-start event
So demuxers can signal which audio/video/subtitle streams should
be selected by default and which should not be selected
automatically.

API: GST_STREAM_FLAG_SELECT
API: GST_STREAM_FLAG_UNSELECT

https://bugzilla.gnome.org/show_bug.cgi?id=695968
https://bugzilla.gnome.org/show_bug.cgi?id=690911
2013-03-31 15:30:19 +01:00
Tim-Philipp Müller
0e5c1dcf64 event: add stream flags to stream-start event
API: gst_event_set_stream_flags()
API: gst_event_parse_stream_flags()
API: GST_STREAM_FLAG_NONE
API: GST_STREAM_FLAG_SPARSE

https://bugzilla.gnome.org/show_bug.cgi?id=600648
2013-03-31 11:47:40 +01:00
Sebastian Dröge
dd831b8114 element: Add API to get the last set context from an element
Elements should override GstElement::set_context() and also call
gst_element_set_context() to keep this context up-to-date with
the very latest context they internally use.
2013-03-31 11:26:32 +02:00
Sebastian Dröge
f23db94fef pad: Let gst_pad_get_allowed_caps() pass the caps own caps as filter
This will reduce the number of caps created downstream and we don't
need to intersect in the very end with the pad's own caps.
2013-03-30 11:48:27 +01:00
Stefan Sauer
ba8c0f5e4b childproxy: fix gir warning 2013-03-29 19:16:45 +01:00
Edward Hervey
418dcd7277 pad: Remove SEGMENT sticky events when flushing
When flushing, it is expected that upstream will send a SEGMENT
event afterwards.
This also avoids stray SEGMENT events from coming through after a
flush.
2013-03-29 18:43:21 +01:00
Sebastian Dröge
b909061031 gst: Add new GstContext miniobject for sharing contexts in a pipeline 2013-03-29 16:40:21 +01:00
Olivier Crête
ec16d6b0a4 buffer: Add annotations and pygi friendly extraction function
API: gst_buffer_extract_dup
2013-03-27 13:07:03 -04:00
David Schleef
700be18f11 Update docs for gst_pad_create_stream_id_printf()
To indicate that format strings should be alpha sortable.
2013-03-25 18:50:41 -07:00
Sebastian Dröge
7decc9bef7 caps: Fix gst_static_caps_get(GST_STATIC_CAPS_NONE)
https://bugzilla.gnome.org/show_bug.cgi?id=696435
2013-03-25 09:22:49 +01:00
Tim-Philipp Müller
a76885f333 toc: some documentation updates 2013-03-24 17:53:35 +00:00
Tim-Philipp Müller
1750620752 utils: make sure slow GST_READ_UINT* variants don't have unexpected side effects
Fixes unit test on systems where unaligned memory access is not possible.

https://bugzilla.gnome.org/show_bug.cgi?id=695599
2013-03-12 14:41:01 +00:00
Sebastian Dröge
0936b506ab query: gst_query_get_n_allocation_params() returns a new ref to the allocator 2013-03-07 11:47:04 +01:00
Stefan Sauer
ec55363da3 controlbinding: relax the pspec for the control-source
We can change control sources on controlbindings.
2013-03-07 09:18:26 +01:00
Sebastian Dröge
64affd3e61 buffer: Fix memory copying logic in copy_into()
https://bugzilla.gnome.org/show_bug.cgi?id=695035
2013-03-03 12:06:36 +01:00
Sebastian Dröge
3360299ef4 registrychunks: Use correct print format specifiers to fix compiler warnings 2013-03-03 11:28:32 +01:00
David Schleef
ac8ccf2c50 Fix misspellings of 'continuous' 2013-03-02 10:43:56 -08:00
Stefan Sauer
82f7bdd7bb seeking: add more logging for seeking
Especially add logging to error code paths.
2013-02-27 22:17:17 +01:00
Sebastian Dröge
ce1c1cf214 buffer: Gracefully handle gst_memory_copy() returning NULL without crashing
gst_buffer_copy_into() and gst_buffer_resize_range() can now fail.
2013-02-27 10:11:23 +01:00
Wim Taymans
e52aa65ab7 allocator: small internal cleanups
Rename System memory allocator to GstAllocatorSysmem and the memory to
GstMemorySystem.
2013-02-26 17:33:30 +01:00
Wim Taymans
4df4fd33b1 memory: add method to check memory type
Add a method to check if a memory was allocated from an allocator of
a given type.

API: gst_memory_is_type()
2013-02-26 15:37:24 +01:00
Wim Taymans
d7f15f542a use GST_MESSAGE_DURATION_CHANGED in docs and code 2013-02-26 15:32:25 +01:00
Wim Taymans
f37fc1d299 memory: don't unref allocator too soon
Unref the allocator *after* we have freed the memory. We also need to keep
a ref to the allocator around because following the now freed memory would
lead to crashes.
2013-02-26 14:40:38 +01:00
Sebastian Dröge
2ca0046934 buffer: Fix inverted logic for deciding if memory should be shared or copied
https://bugzilla.gnome.org/show_bug.cgi?id=694717
2013-02-26 09:09:25 +01:00
Stefan Sauer
24df8b92ea docs: s/start/done/ copy'n'paste mistake 2013-02-26 08:36:51 +01:00
Sebastian Dröge
008b35f6ae query: Add new API to remove allocation params and pools from the allocation query 2013-02-25 13:57:43 +01:00
Sebastian Dröge
e460be622d query: Document that the first allocator in the allocation query should allow mapping to system memory 2013-02-25 13:24:33 +01:00
Sebastian Dröge
d50190ba55 memory: Keep a reference to the allocator
Otherwise the allocator might get freed while it's still used
by the memory
2013-02-24 09:46:01 +01:00
Sebastian Dröge
209f081ab8 buffer: If sharing a GstMemory fails, fall back to copying it 2013-02-24 09:46:01 +01:00
Sebastian Dröge
a093d8a8cd memory: It's contiguous, not continous 2013-02-23 08:19:48 +01:00
Sebastian Dröge
5327545d56 memory: Add new memory flag to specify that memory can't be mapped 2013-02-22 12:41:09 +01:00
Sebastian Dröge
221b6fc479 memory: Add memory flag to mark physically continous memory 2013-02-22 09:04:57 +01:00
Tim-Philipp Müller
0cbe23995f utils: avoid unexpected side-effects of GST_WRITE_* macros
Make sure the data argument is only evaluated once.
2013-02-19 18:00:48 +00:00
Stefan Sauer
f9ce7e711b docs: link to the appropriate messages from gst_elements_set_state() docs
For an async state change return one would wait for ASYNC_DONE or STATE_CHANGED.
2013-02-17 13:21:36 +01:00
Tim-Philipp Müller
e3a9e66985 buffer: add since marker for new COPY_DEEP buffer flag 2013-02-16 14:20:54 +00:00
Wim Taymans
1fcef378bd buffer: add option to deep copy a buffer
Add a buffer copy flag to force a memory copy in all cases.
2013-02-16 14:59:02 +01:00
Tim-Philipp Müller
6c7573226e Revert "utils: Use gst_pad_get_pad_template() in gst_element_get_compatible_pad_template()"
This reverts commit 1a1a9e143f.

This breaks the pipelines/tagschecking unit test for some reason
(fakesrc ! capsfilter ! qtmux linking fails now). It might be
a bug in the unit test of course, but someone will need to
investigate this. Reverting for now.

https://bugzilla.gnome.org/show_bug.cgi?id=692508
2013-02-15 12:40:39 +00:00
Wim Taymans
7e222212a8 allocator: improve fallback copy function
Only use the allocator of the copied memory when we can use the default
_alloc function on it. Otherwise we will have to use the default
allocator for the copy.
2013-02-15 13:13:40 +01:00
Niv Sardi
1a1a9e143f utils: Use gst_pad_get_pad_template() in gst_element_get_compatible_pad_template()
motivation comes from: /* FIXME: why not gst_pad_get_pad_template (pad); */
this code path is quite nicer, we now only revert to creating the template
if gst_pad_get_pad_template fails.

with this fork, we gain a non-allocation of GstCaps *templcaps

https://bugzilla.gnome.org/show_bug.cgi?id=692508
2013-02-14 10:21:54 +01:00
Tim-Philipp Müller
5fc34add25 message: accept NULL error argument in gst_message_parse_{error,warning,info}
And simplify code a bit while at it.

https://bugzilla.gnome.org/show_bug.cgi?id=693704
2013-02-13 16:52:13 +00:00
Sebastian Dröge
fb3b53328f value: Remove set-style bitmask intersection/union/subtraction functions
Set operations on the bitmasks don't make much sense and result
in invalid caps when used as a channel-mask. They are now handled
exactly like integers.

This functionality was not used anywhere except for tests.

https://bugzilla.gnome.org/show_bug.cgi?id=691370
2013-02-13 17:07:47 +01:00
Sebastian Dröge
e479d22040 bin: The latency query should return TRUE by default, different to other queries
Fixes unit test failures caused by f3d268de7f
2013-02-13 11:19:06 +01: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
Philippe Normand
f3d268de7f bin: query sink elements and source pads of the bin
gst_bin_query() now forwards the query to the source pads as well if
none of the sinks of the bin satisfied the query. This helps in the
case of DURATION queries done a bin containing a source element.

Fixes bug 638749
2013-02-12 10:33:40 +01:00
Alexander Schrab
983fb0f5da bin: Let gst_bin_send_event() send events to ghost pads as well 2013-02-12 10:22:53 +01:00
Stefan Sauer
d211a2a67c compat: kill more uses of gst_pad_set_caps() 2013-02-11 22:54:22 +01:00
Tim 'mithro' Ansell
bd65fc0036 gstvalue: Adding offset to GstSegment serialize/deserialize.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=693587
2013-02-11 14:19:27 +01:00
Stefan Sauer
56f6f022e2 controlbinding: error handling for binding controlsources to wrong properties
Add warning if property is not suitable for controlling. When adding a control-
binding check that pspec!=NULL.
2013-02-08 21:38:22 +01:00
Wim Taymans
474610b191 element: remove old docs about iterators 2013-02-07 13:08:49 +01:00
Wim Taymans
ed35f62458 bin: remove old comment
The iterators now return a GValue and not the object directly anymore.
2013-02-07 12:52:26 +01:00
Wim Taymans
209631789a bin: reset GValue from iterator after usage 2013-02-07 12:50:08 +01:00
Nate Bogdanowicz
6b717600b5 gstpipeline: fix failed assertion caused by seeking pipeline with NULL clock
Under certain GST_STATE_CHANGED_PAUSED_TO_PLAYING transitions, a pipeline with
a NULL clock will fail an assertion due to an unchecked call to gst_object_ref().
This is fixed by simply adding a check and only ref-ing if the clock is not NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=693065
2013-02-05 14:23:20 +01:00
Wim Taymans
ea6b05d126 structure: change argument name for docs 2013-02-05 13:44:06 +01:00
Stefan Sauer
f989e6f2d7 debugutils: fix order of caps on an unnegotiated link
headlabel is the sink_pad (where the link points to) and not the other way around.
2013-02-04 10:31:46 +01:00
Stefan Sauer
fba696eb05 docs: update the controller docs
Add the control bindings to the docs. Add a little more detail.
2013-02-01 22:00:18 +01:00
Simon Feltman
d2b03a4537 g-i: add built enumtypes headers and sources to gir creation
Add gstenumtypes.h/c for inclusion with g-ir-scanner. This fixes
problems where introspection based bindings think GstState is
typeless due to the GType not being included as an annotation.

https://bugzilla.gnome.org/show_bug.cgi?id=691185
2013-01-27 20:55:38 +00:00
Niv Sardi
4b3aee5698 gst_pad_check_reconfigure: only remove flag if set.
the code ifed a debug statement, that can't be right. anyway, the way it is,
we don't really need that branch, as we set the flag to unset only if set
(and that can't fail) hence the end result is always to unset the flag.

Signed-off-by: Niv Sardi <xaiki@evilgiggle.com>

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=691985
2013-01-24 15:41:35 +01:00
Tim-Philipp Müller
c0926dc7cc pad: add gst_pad_get_stream_id() utility function
API: gst_pad_get_stream_id()
2013-01-19 12:51:56 +00:00
Tim-Philipp Müller
64eee27ebc Use GST_*_1_0 environment variables everywhere
The _1_0 suffixed environment variables override the
non-suffixed ones, so if we're in an environment that
sets the _1_0 suffixed ones, such as jhbuild, we need
to set those to make sure ours actually always get
used.
2013-01-15 13:47:32 +00:00
Tim-Philipp Müller
b836ddf8c6 pipeline: add allow-none annotation for gst_pipeline_new()'s name property 2013-01-15 09:42:20 +00:00
Stefan Sauer
5898042610 controlbinding: hide one unused typedef
This is not used internally.
2013-01-10 11:34:14 +01:00
Stefan Sauer
06cf9deafe docs: improve api docs for controlsource and -binding 2013-01-10 11:33:42 +01:00
Tim-Philipp Müller
1506784215 docs: minor systemsclock doc fix 2013-01-04 12:27:38 +00: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
Tim-Philipp Müller
172011d1f5 gstvalue: some micro-optimisations
Avoid unnecessary value copying, and unnecessary init/unset
cycles which all go through the value table. There's a bunch
of places where we copy a value and then unset it in the next
line, instead of just taking over the source value.
2012-12-22 16:38:58 +00:00