Commit graph

7411 commits

Author SHA1 Message Date
Tim-Philipp Müller
075cc42f88 pad: simplify gst_pad_link_get_name() and fix Since marker
Has added benefit that compiler might warn if more values
are added to the enum.
2014-03-11 21:46:30 +00:00
Stefan Sauer
4a38acaa10 pad: add debug helper for GstPadLinkReturn names
Add a helper like gst_flow_get_name() for GstPadLinkReturn. Use this in core.
API: gst_pad_link_get_name()
2014-03-11 21:50:36 +01:00
Tim-Philipp Müller
313f01ab79 buffer: invert meaning of GST_BUFFER_FLAG_TAG_MEMORY
It's nicer to only have it set when something noteworthy
happened and otherwise unset.

https://bugzilla.gnome.org/show_bug.cgi?id=725862
2014-03-07 20:43:44 +00:00
Stefan Sauer
7077d347a3 pad: fix gst_pad_add_probe() return value docs
Also fix comment typos and add more detail in the logs.
2014-03-06 22:54:17 +01:00
George Kiagiadakis
5973f8c2ca ghostpad: use gst_pad_get_peer to acquire a reference to the target pad
This ensures that the lock of the internal pad is held while referencing
it's peer (= the target pad), which ensures that the peer is not
going to be unlinked/destroyed in the meantime.

https://bugzilla.gnome.org/show_bug.cgi?id=725809
2014-03-06 20:46:28 +01:00
George Kiagiadakis
4fc671e801 ghostpad: hold a reference to the target pad while unlinking it
https://bugzilla.gnome.org/show_bug.cgi?id=725809
2014-03-06 20:46:28 +01:00
Sebastian Rasmussen
034a3ab86f docs: Fix typos and remove unknown annotations
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=725517
2014-03-02 21:47:52 +01:00
Stefan Sauer
601774386c docs: use the new markdown for ordered list.
This was plain text that had all list items one after the other (including a
repeated number). Now it will atleast look good when processed with gtk-doc
1.20.
2014-02-28 20:57:23 +01:00
Reynaldo H. Verdejo Pinochet
81c9bedda3 docs: fix problems introduced by c068b225fe
- Fix failing build
- Drop added trailing whitespace
2014-02-27 22:34:55 -03:00
Stefan Sauer
cbfafd212b buffer: add return values to g_return_if_fail
FIxes previous commit.
2014-02-27 18:28:15 +01:00
Stefan Sauer
c068b225fe docs: convert the examples to use gtk-doc markup, instead of docbook
The gtk-doc markup is less intrusive and better handled when creating docs for
language bindings. The titles (where used) where not adding much.
2014-02-27 18:11:35 +01:00
Wim Taymans
7691150c45 bufferpool: only release buffers with writable memory
Check if the memory is writable before releasing the buffer into the
pool again.
Add unit test for this scenario.
2014-02-27 16:40:34 +01:00
Wim Taymans
659785d896 buffer: add function to check writability of memory
Check if memory is writable in a buffer and thus is exclusively owned by
this buffer.
2014-02-27 16:39:50 +01:00
Wim Taymans
f22d8f08e0 bufferpool: Use TAG_MEMORY to check memory before releasing
Tag allocated buffers with TAG_MEMORY. When they are released later,
only add them back to the pool if the tag is still there and the memory
has not been changed, otherwise throw the buffer away.
Add unit test to check various scenarios.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=724481
2014-02-27 15:43:13 +01:00
Wim Taymans
5bca002f4b buffer: add a new flag to track memory changes
Add a flag to check if the memory changed in a buffer.
2014-02-27 15:43:13 +01:00
Wim Taymans
86f506e9d8 buffer: remove wrong comment
Refcount and writability are not related for memory objects.
2014-02-27 15:43:13 +01:00
Wim Taymans
301fa0e935 bufferpool: refactor free_buffer
Make a do_free_buffer method to also decrements the number of allocated
buffers. Stop will now be successful when all buffers are freed.
2014-02-27 15:43:13 +01:00
Stefan Sauer
8355a9034b debugutils: add a legend to pipeline dumps
We use a couple of symbols to represent states/flags. Add a short explanation for them.
2014-02-26 20:49:07 +01:00
Olivier Crête
e3d57dc11d debugutils: Print if there is a task started from a pad
https://bugzilla.gnome.org/show_bug.cgi?id=705189
2014-02-26 03:15:44 -05:00
Sebastian Dröge
f0bd2540c0 structure: Use get_uint64() in gst_structure_get_clock_time()
Its code is identical.
2014-02-25 16:11:20 +01:00
Sebastian Dröge
ab9fdf13a0 structure: Add getters for int64 and uint64 values 2014-02-25 15:41:45 +01:00
Stefan Sauer
b892b438cc docs: gtkdoc is not good at parsing inline functions in headers
Mark the inline function, so that gtkdoc skips them. Avoids some warnings about
unparsable declarations.
2014-02-15 21:27:23 +01:00
William Manley
be8eeabefc docs: Fix location of plugins and registry in home directories
Fixes out of date documentation left over since 0.10.  In 1.0 plugins are
stored in $XDG_DATA_HOME and the registry in $XDG_CACHE_HOME conformant
with the XDG Base Directory Specification[1].

[1]: http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html

https://bugzilla.gnome.org/show_bug.cgi?id=724132
2014-02-11 20:56:48 +01:00
Sebastian Dröge
71ad1d6fdd error: GST_RESOURCE_ERROR_NOT_AUTHORIZED will be available since 1.2.4 2014-02-11 13:27:25 +01:00
Sebastian Dröge
8a96585eee error: Add RESOURCE_NOT_AUTHORIZED error
This allows to distinguish normal read failures from read failures
where we miss authorization.
2014-02-11 13:09:11 +01:00
Chun-wei Fan
043c629e72 windows: Make GStreamer installation relocatable
Use the technique that is now done in GTK+ so that the plugins do not have
to be installed in c:\gstreamer\lib\<debug>\gstreamer-$(GSTApiVersion),
but can be installed in
<parent_folder_of_gstreamer_main_dll>\lib\<debug>\gstreamer-$(GSTApiVersion),
or as per g_win32_get_package_installation_directory_of_module() allows.

https://bugzilla.gnome.org/show_bug.cgi?id=679115
2014-02-06 23:31:23 +01:00
Brendan Long
f85c1c4648 gst: clear floating references for GstTask, GstTaskPool and GstCollectPads
https://bugzilla.gnome.org/show_bug.cgi?id=710342
2014-02-06 22:50:53 +01:00
Brendan Long
f605472230 docs: gst_pad_new_from_*_template and gst_buffer_pool_new constructors return floating references
https://bugzilla.gnome.org/show_bug.cgi?id=710342
2014-02-06 22:50:53 +01:00
Sebastian Dröge
8d7e11e307 caps: When getting capsfeatures and none are there, store sysmem capsfeatures
... instead of returning a reference to a global instance. The caller might
want to change the global instance otherwise, which causes funny effects like
all global instances being changed and at the same time nothing in the caps
being changed.

As the caps might be immutable while we do this we have to do some magic
with atomic operations.

https://bugzilla.gnome.org/show_bug.cgi?id=723236
2014-02-04 18:47:23 +01:00
Sebastian Dröge
e51e0cb0d3 caps: Don't get us sysmem capsfeatures if we just check for fixed caps 2014-02-04 18:06:26 +01:00
Sebastian Dröge
23434848d3 capsfeatures: Make sure that the static ANY/EMPTY capsfeatures are never mutable
See https://bugzilla.gnome.org/show_bug.cgi?id=723236
2014-02-04 17:51:11 +01:00
Stefan Sauer
f6d638153c docs: fix more gtk-doc warnings 2014-02-01 16:18:13 +01:00
Stefan Sauer
b06e86fb18 docs: unhide docs for allocator
Unhinde the class docs. Tech gtk-doc about GST_EXPORTS.
2014-01-31 08:36:55 +01:00
Stefan Sauer
c42780db66 bufferpool: more tests and small doc fixes 2014-01-31 08:36:55 +01:00
Stefan Sauer
1bad32b577 bufferpool: misc cleanups
Review the documentation, comments and logging. Set the initial size to 16 as
the size is rounded up to the next power of two anyway.
2014-01-30 12:43:45 +01:00
Wim Taymans
878621f6f5 bufferpool: avoid excessive GstPoll activity
Keep an extra write ref on the control socket. This ensures that we
avoid a read/write on the socket when going from non-empty->empty->not-empty.
We remove the write ref only when we actually are empty and we need to
wait for flushing or a new buffer.

This makes the bufferpool benchmark about 30% faster than the pure
malloc implementation.
2014-01-30 12:31:48 +01:00
Wim Taymans
fb44b4d2ec poll: improve debug
Add object pointer in debug lines.
2014-01-30 12:31:48 +01:00
Sebastian Dröge
ba7089cf04 pad: Minor code cleanup
!check_sticky()==GST_FLOW_OK is a bit confusing, compared to
check_sticky()!=GST_FLOW_OK.
2014-01-22 11:10:01 +01:00
Sebastian Dröge
bac1202cf7 iterator: Properly copy mutexes around when creating a copy of a filter iterator 2014-01-18 14:48:54 +01:00
Stewart Brodie
f77d79f2f8 iterator: Preserve the master lock when creating recursive iterator filters with the same lock
This way we make sure that a) the lock is always taken when checking
the cookie and calling the iterator's next functions and b) it is
not taken while calling any of the iterator filter functions.

https://bugzilla.gnome.org/show_bug.cgi?id=711138
2014-01-18 14:48:54 +01:00
Thiago Santos
75fe1004a5 pad: fix sticky event leak after sticky_events_foreach
events_foreach adds an extra ref when giving the event to the
user function. In case it was unrefed by the user, this extra ref
disappeared, but events_foreach still should unref again to
lose its own ref before removing the event from the array.

https://bugzilla.gnome.org/show_bug.cgi?id=722467
2014-01-17 23:11:49 -03:00
Stefan Sauer
0264bbdb46 info: move some env-var checks from gst to gstinfo as well
We were doing some log related initialisation in gst.c after calling
_priv_gst_debug_init(). Just move it there for consistency.
2014-01-16 20:47:53 +01:00
Fabian Kirsch
ffe072f694 parse: Some minor fixes
Fix destructor segfaulting
Expect 0 grammar-ambiguities
Fix order of bin-properties assignment

https://bugzilla.gnome.org/show_bug.cgi?id=710034
2014-01-16 15:38:51 +01:00
Sebastian Dröge
1d6136b930 segment: gst_segment_offset_running_time() will be available in 1.2.3 2014-01-15 11:13:00 +01:00
Nicolas Dufresne
abddae152d util: Add GST_ROUND_UP_N and GST_ROUND_DOWN_N
These are generic rounding macro that works for any power of two.
2014-01-14 16:22:31 -05:00
Sebastian Dröge
f15f4ec8aa parse: Make sure to create and link chains in the order as written
Make this work again:
audiotestsrc ! tee name=t  t.src_0 ! queue ! fakesink  t.src_1 ! queue ! fakesink
and this fail again:
audiotestsrc ! tee name=t  t.src_1 ! queue ! fakesink  t.src_0 ! queue ! fakesink

as tee just counts itself and does not care about the pad names we request
from it.
2014-01-14 15:52:26 +01:00
Sebastian Dröge
156d925cff parse: Remove some C99-style comments 2014-01-14 13:46:24 +01:00
Sebastian Dröge
dd086a4e6e parse: Use GSlice for allocating and freeing links and chains 2014-01-14 13:46:24 +01:00
Sebastian Dröge
748690aba1 parse: Add comment about why we disable the "tracing"
It did not print anything useful before anyway, everything
was commented out.

Also remove some unneeded struct members.
2014-01-14 13:46:24 +01:00
Fabian Kirsch
2b33d33185 parse: Refactor grammar, make it more consistent and fix conflicts
https://bugzilla.gnome.org/show_bug.cgi?id=710034
2014-01-14 13:46:22 +01:00