Commit graph

6607 commits

Author SHA1 Message Date
Wim Taymans
61e8fa0dc5 atomicqueue: fix subtle race
Fix a race where the reader would see the updated the tail pointer before the
write could write the data into the queue. Fix this by having a separate reader
tail pointer that is only incremented after the writer wrote the data.
2012-02-24 12:51:24 +01:00
Wim Taymans
6b22a63f1b meta: flesh out the metadata transform
Flesh out the transform method. Add a type and extra info to the transform
function so that implementation can transform the metadata.
Remove the copy function and replace with the more generic transform.
2012-02-24 10:28:56 +01:00
David Schleef
bc186f85ed spelling fix 2012-02-23 08:48:40 -08:00
David Schleef
fb0b63d8fd poll: fix spelling of writable 2012-02-23 08:48:40 -08:00
Wim Taymans
69d56a2927 memory: add user_data to GstMapInfo
Add extra pointers to GstMapInfo so that implementations can use these to store
extra info.
2012-02-23 15:32:33 +01:00
Wim Taymans
1a8a371bce bufferpool: improve docs 2012-02-23 15:32:19 +01:00
Wim Taymans
7b0e4f27fb memory: make _new_wrapped take user_data and notify
Make it possible to configure a GDestroyNotify and user_data for
gst_memory_new_wrapped() this allows for more flexible wrapping of foreign
memory blocks.
2012-02-22 02:10:21 +01:00
Wim Taymans
c105b467fa pad: handle NULL callbacks
When we have a matching NULL callback, also consider the 'callback' marshalled,
this way blocking probes with a NULL callback actually work.
2012-02-21 16:37:11 +01:00
Wim Taymans
afba547722 segment: don't use duration in clipping
Don't use the duration in the segment for calculating clipping values.
The duration is expressed in stream time and clipping is done on unrelated
timestamp values.
This used to be interesting for elements that used the segment structure to
implement seeking because then they would use stream-time for the segment
start/stop values and the duration could be used as a fallback when the stop
position was not set. Now that the complete segment event is passed between
elements we cannot do this anymore because some elements might store the
duration and start/stop values with different time bases in the segment.
2012-02-20 14:39:26 +01:00
Wim Taymans
3eeb6e6c05 info: debug segment duration as well 2012-02-20 14:28:57 +01:00
Wim Taymans
d09073b755 memory: fix more docs 2012-02-18 01:04:18 +01:00
Edward Hervey
f730ab02a4 doc fixups 2012-02-17 15:53:58 -08:00
Edward Hervey
60be53fabf gstvalue: Remove useless assignment 2012-02-17 15:11:38 -08:00
Edward Hervey
963267643e gstvalue: Gracefully handle NULL Gvalue
Avoids unreferencing NULL pointer
2012-02-17 15:11:38 -08:00
Wim Taymans
386562f7e4 pad: make some errors critical
When we have no chain function or when we are operating the pad in the wrong
mode, emit a critical instead of posting an error message. This is certainly a
programming error and we cannot always post a message (like when the pad has no
parent)
2012-02-18 00:03:41 +01:00
Wim Taymans
7fc783f723 info: also debug position of segment 2012-02-18 00:03:13 +01:00
Wim Taymans
592ead764c task: add more debug 2012-02-15 12:18:38 +01:00
Wim Taymans
c6a1bed1ad memory: more work on refcount and writability
Rename _is_writable() with _is_exclusive because the writability does not depend
on the amount of references to the memory object anymore.
Add accessor macros for the memory flags.
Rename the GstBuffer _peek_memory() method to _get_memory() and return a
reference to the memory now that we can do this without affecting writability
of the memory object. Make it possible to also make this function merge the
buffer memory.
Add methods to replace memory in a buffer. Make some convience macros for the
buffer memory functions.
Fix unit tests.
2012-02-13 18:04:03 +01:00
Wim Taymans
c32456224e meta: fix typos 2012-02-13 16:42:56 +01:00
Tim-Philipp Müller
7329843fe6 event: make _parse_nth_stream_config_header() and _parse_setup_data() return a boolean
As they can fail (only one of stream headers or setup data
is usually present).
2012-02-12 21:05:45 +00:00
Tim-Philipp Müller
4d937fafbb event: rename gst_event_{set,parse}_stream_config_codec_data() to _setup_data()
More generic.
2012-02-12 20:51:39 +00:00
Wim Taymans
151d7faca3 clean up object init
Make an _init method where the parent mini-object and other fields are
initialized.
Check that the passed structure doesn't already have a parent.
Use the _new_custom () constructors
2012-02-10 15:02:23 +01:00
Wim Taymans
c9a3051b37 pad: silence probe debug a litte 2012-02-10 12:05:18 +01:00
Wim Taymans
34f770a900 gst: add some performance logging
Add some performance logging for caps copy and the slow default acceptcaps
implementation
2012-02-10 11:09:01 +01:00
Wim Taymans
3d4a1a98b5 docs: update and improve docs 2012-02-09 11:48:02 +01:00
Tim-Philipp Müller
552d726c3a utils: remove gst_element_class_install_std_props()
It's only used in one place (rtmp), and there not very well.
2012-02-09 00:14:58 +00:00
Wim Taymans
7ab1d62c24 GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING 2012-02-08 16:18:04 +01:00
Wim Taymans
92de0b6143 Merge branch 'master' into 0.11 2012-02-08 14:45:25 +01:00
Wim Taymans
bcf3daebd4 pad: error when activation mode is wrong
Post an error when we try to push on a pad activated in pull mode and pull on a
pad in push mode.
2012-02-08 12:57:11 +01:00
Wim Taymans
7cb4828e93 clock: remove method declaration too 2012-02-08 09:30:02 +01:00
Stefan Sauer
110e7c2d3c clock: remove unimplemented stats property while we can 2012-02-07 13:41:20 +01:00
Wim Taymans
a46f0862cd gst: improve debugging 2012-02-06 09:46:47 +01:00
Havard Graff
609e618e70 registry: fix compilation with --disable-registry
__registry_reuse_plugin_scanner is only defined when
GST_DISABLE_REGISTRY is not defined.

gstregistry.c: In function 'gst_registry_scan_plugin_file':
gstregistry.c:1131:8: error: '__registry_reuse_plugin_scanner' undeclared (first use in this function)

https://bugzilla.gnome.org/show_bug.cgi?id=667284
2012-02-04 15:52:21 +00:00
Vincent Penquerc'h
ec7a7c318a bin: reset the EOS detection machinery after sending an EOS message
This will allow detecting further EOS, for instance after looping
a stream without changing states.

https://bugzilla.gnome.org/show_bug.cgi?id=668289
2012-02-03 11:23:28 +00:00
Wim Taymans
da793d7255 trace: print caps in dump 2012-02-02 16:59:12 +01:00
Wim Taymans
18ddee3b45 memory: add debug and trace for GstMemory 2012-02-02 15:57:48 +01:00
Wim Taymans
5d6999f804 trace: don't check random pointers for objects
Only see if the traced pointer is a GObject when it was registered with the
special offset of -2.
2012-02-02 15:55:44 +01:00
Wim Taymans
e60b67f907 Update debug categories
Remove some categories marked for deletion.
Add a category for GstMemory.
2012-02-02 15:54:28 +01:00
Wim Taymans
f5886a17f5 remove TRACE_NAME from headers 2012-02-02 15:52:19 +01:00
Wim Taymans
d8c12ceb2b memory: add some performce debug info
Add some PERFORMANCE debug lines where we copy and do other suboptimal things.
2012-02-02 12:07:28 +01:00
Wim Taymans
d54fbe677f pad: add flag to proxy allocation query
Add a flag to force the default query handler to forward the allocation query
instead of discarding it.
Reorder the pad flags a bit.
2012-02-02 12:05:37 +01:00
Tim-Philipp Müller
83002ac63e typefind: pass extensions as comma-separated list in a simple string
Fix annoying gst_type_find_register() function signature. A simple
string with comma-separated extensions works just as well and saves
lines of code, casts, relocations and ultimately kittens.
2012-02-02 01:32:07 +00:00
Wim Taymans
76a60c4c42 element: don't crash on missing template
Some request pads don't have a padtemplate (mostly those from encodebin). Avoid
crashing in this case.
2012-01-31 16:27:55 +01:00
Wim Taymans
39c5f0b28a don't do logic in g_assert... 2012-01-31 12:10:21 +01:00
Stefan Sauer
4deaf9b8be controller: rename control-bindings
gst_control_binding_xxx -> gst_xxx_control_binding for consistency.
2012-01-30 21:18:57 +01:00
João Paulo Pizani Flor
3af9544f95 Fixes the lack of an include directive in gst/gstpreset.h
It blocked the build of external libraries depending on gstreamer-core (namely, gstreamermm).
Complete bug report at https://bugzilla.gnome.org/show_bug.cgi?id=669036
2012-01-30 17:22:59 +00:00
Stefan Sauer
c4bee19a25 controlsource: sink the floating ref
control sources can be used on several control bindings.
2012-01-30 18:18:28 +01:00
Wim Taymans
c35a41bb54 buffer; remove IN_CAPS buffer flag
The IN_CAPS buffer flag is deprecated and should be replaced with the HEADER
flag.
2012-01-30 17:15:21 +01:00
Wim Taymans
0bd5a78701 query: pass allocator in query
Place the allocator object in the ALLOCATION query instead of the name. This
allows us to exchange allocators that are not in the global pool of allocators.
Update elements for the new api
2012-01-30 16:13:31 +01:00
Wim Taymans
16d9a9efbe memory: add memory type
Add memory type when registering memory allocators. Add getter for the memory
type.
2012-01-30 16:13:31 +01:00
Wim Taymans
f8c6cd196e memory: add boxed GType for the allocator 2012-01-30 13:28:34 +01:00
Wim Taymans
af2fc026fc memory: make the allocator refcounted
Add refcounting to the GstAllocator object.
Remove const from functions because the allocator is refcounted now.
Rename the vmethods for consistency
Expose the constructor for GstAllocator and add a destroy notify for the
user_data. This should make it possible to create allocators that are not
registered and shared globally along with the possibility to destroy them
properly.
Update defs with new symbols.
2012-01-30 13:20:36 +01:00
Philippe Normand
bd9d196700 core: don't ship gsttrace.h private header
Include it explicitely in gst.c and no longer include it in gst.h.
That header was made private in 1969b94267.
2012-01-30 10:15:33 +01:00
Tim-Philipp Müller
51f6f5addf event: require a valid duration for the GAP event 2012-01-28 18:50:23 +00:00
Tim-Philipp Müller
e115c28ae4 gst: ref new enum type in gst_init() 2012-01-28 18:49:44 +00:00
Tim-Philipp Müller
783a9d61b9 docs: add some (out) annotations for stream config parser functions 2012-01-28 18:10:30 +00:00
Tim-Philipp Müller
068d9ecf5a event: add constructor and parse function for new GAP event
(Whatever you do, don't mention the filler event.)
2012-01-28 18:09:01 +00:00
Tim-Philipp Müller
0b5734557e docs: GST_EVENT_STREAM_CONFIG is implemented now 2012-01-28 18:09:00 +00:00
Olivier Crête
e234a10c63 Use macros to register boxed types thread safely 2012-01-28 16:42:38 +00:00
Sebastian Dröge
705d17c8a8 segment: Add padding to the public struct 2012-01-27 18:47:13 +01:00
Tim-Philipp Müller
f1f11098fe gst: don't ref GType for private enum for which there's no GType any more 2012-01-27 17:45:39 +00:00
Tim-Philipp Müller
75e17f0002 event: add construct and parse API for the new STREAM CONFIG event
codec data and stream headers don't belong into caps, since they
are not negotiated. We signal them using the STREAM CONFIG event
instead.
2012-01-27 17:42:07 +00:00
Wim Taymans
1969b94267 trace: remove from public headers 2012-01-27 18:27:16 +01:00
Andoni Morales Alastruey
ded0ea049e caps: fix documenation typo 2012-01-27 18:14:50 +01:00
Wim Taymans
321ee10bd6 trace: rework alloc tracing
Remove trace, we use debug log for that
Make alloc trace simpler, removing some methods.
Activate alloc trace with a GST_TRACE=3 environment variable.
Dump leaked objects atexit.
Provide an offset in the object where the GType can be found so that more
verbose info can be given for objects.
Remove -T option from gst-launch because tracing is now triggered with the
environment variable.
2012-01-27 17:54:43 +01:00
Wim Taymans
166f6e1cc5 trace: make alloc trace work for miniobject again 2012-01-27 15:33:48 +01:00
Sebastian Dröge
753a1125dd Merge branch 'master' into 0.11
Conflicts:
	libs/gst/base/gstcollectpads2.c
	libs/gst/base/gstcollectpads2.h
2012-01-27 15:09:35 +01:00
Wim Taymans
21455d35b1 tests: fix some more leaks 2012-01-27 12:52:01 +01:00
Vincent Penquerc'h
68a091303f gstplugin: add a few consts to read only data 2012-01-27 11:32:12 +00:00
Wim Taymans
2ed36d91a6 memory: avoid memory leak
Unref the old memory in make_mapped.
Add some debug info
2012-01-27 11:41:33 +01:00
Sebastian Dröge
ad28f9fb68 event: Mark the new GAP event as non-sticky 2012-01-27 10:56:52 +01:00
Sebastian Dröge
f5545e3323 event rebase 2012-01-27 10:42:09 +01:00
Sebastian Dröge
9318934cf0 event: Add constructor and docs for the new STREAM_START event 2012-01-27 10:30:43 +01:00
Wim Taymans
2a8c98fe23 pad: add user data to chain functions 2012-01-26 19:28:46 +01:00
Vincent Penquerc'h
9152c01fcf taglist: restore date/time type to GstDateTime
The change to GDateTime was apparently accidental, and
breaks plugins trying to feed a GstDateTime to the taglist APi.
2012-01-26 18:23:46 +00:00
Peteris Krisjanis
42a6e487c8 gst: gst_parse_launch now returns a floating reference 2012-01-26 18:55:30 +01:00
Edward Hervey
479b7ff5f1 gststructure: Set "transfer none" to return values that shouldn't be freed 2012-01-26 18:54:50 +01:00
David Schleef
9048b4dc2a element: call ->release_pad() to clean up pad
https://bugzilla.gnome.org/show_bug.cgi?id=636011
https://bugzilla.gnome.org/show_bug.cgi?id=402562
2012-01-26 15:44:10 +00:00
Wim Taymans
2d4edcf83f event: add some more events
Add some more new events that we want to implement later.
2012-01-26 16:32:46 +01:00
Andoni Morales Alastruey
ade5b3b917 gstmemory: add missing parameter 2012-01-26 15:17:04 +01:00
Sebastian Dröge
a7b96d0503 caps: Fix compiler warning 2012-01-26 14:57:14 +01:00
Sebastian Dröge
28f5b86637 caps: Use correct size for caps allocation 2012-01-26 14:55:30 +01:00
Sebastian Dröge
b4066a6c95 caps: Make GstCaps public struct more opaque by moving the private pointer into the implementation 2012-01-26 14:45:30 +01:00
Sebastian Dröge
5d1d7d95b2 caps: Store a pointer to GstCaps in GstStaticCaps
...instead of using hackish subclass of GstCaps, which also
had some thread-safety problems.
2012-01-26 14:37:02 +01:00
Wim Taymans
dc4d96d54c event: remove the sticky event index
We don't use the sticky event index anymore, ordering of the events are how they
were sent initially.
Add some more padding between the event numbers so that we can insert new events
later.
2012-01-26 13:24:44 +01:00
Tim-Philipp Müller
78ccf77fa3 bufferpool: use GstValueArray instead of GValueArray for storing options in the config
Since GValueArray is deprecated. It's all only internal anywhere here,
but if we use GstValueArray the option strings get serialized nicely
in the debug logs at least.
2012-01-26 10:44:11 +00:00
Wim Taymans
3844f80266 pad: add probe id to the info 2012-01-26 11:04:01 +01:00
Jason DeRose
b8f5d7a39f gst_pad_template_new() now returns a floating reference 2012-01-25 18:51:44 +01:00
Peteris Krisjanis
a8e9ed82d9 gst_pipeline_new now returns a floating reference. 2012-01-25 18:51:42 +01:00
Peteris Krisjanis
f09b23ee07 gst: gst_parse_bin_from_description returns a new reference 2012-01-25 16:46:40 +01:00
Tim-Philipp Müller
1d3d1a6e03 query: use GArray for internal arrays instead of the now-deprecated GValueArray 2012-01-25 15:15:57 +00:00
Peteris Krisjanis
02f721f7ea gst: Changed introspection transfer flag to (transfer floating)
for gst_pad_new, gst_ghost_pad_new and gst_bin_new constuctors. Fixes
segfaults due of transfer full and floating ref problem.
2012-01-25 15:05:21 +01:00
Wim Taymans
9c9848e952 memory: add flags to the mapinfo 2012-01-25 11:54:23 +01:00
Wim Taymans
203dd6fbe1 memory: make guint8 * for easy usage 2012-01-25 11:54:23 +01:00
Wim Taymans
93074b899c memory: add method to create mapped memory
Add a method to create a GstMemory with the desired mapping. Makes a copy of the
memory if it is currently in use.
2012-01-25 11:54:23 +01:00
Wim Taymans
a521252845 Add new GstMapInfo
Use a structure to hold info about the mapping. The application then keeps track
of this state and we can use it to unmap the memory again later.
2012-01-25 11:54:23 +01:00
Edward Hervey
ea7c1225c1 controlbindings: name is not a const
It gets modified during the life of the object. Fixes build.
2012-01-25 11:50:49 +01:00
Stefan Sauer
660d9c071a controller: cleanup the control-binding construction
This is now bindings firendly as _new is just a classic c convenience and all
the work is done in a constructor. As a side effect _new never fails.
Fix the tests.
2012-01-24 21:57:44 +01:00
Vincent Penquerc'h
fc1fab8a15 gstvalue: handle NULL dest in bitmask/bitmask intersection 2012-01-24 14:40:33 +00: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