summaryrefslogtreecommitdiff
path: root/gst
AgeCommit message (Collapse)AuthorFilesLines
2017-12-07docs: Fix a few gtk-doc warningsHEADmasterTim-Philipp Müller5-5/+5
Broken links mostly.
2017-12-06gstpad: Handle GST_PAD_PROBE_HANDLED on sticky event pushEdward Hervey1-0/+2
When actually pushing an event, if we get GST_FLOW_CUSTOM_SUCCESS_1 (which is the conversion of GST_PAD_PROBE_HANDLED return value), don't consider the stick event push as ignored, but as handled
2017-12-06event/query/message: Annotate get_structure() return value as nullableSebastian Dröge3-9/+9
2017-12-06query: Add an empty structure in writable_structure() if there is none yetSebastian Dröge1-1/+12
This is consistent with how it works for GstEvent already.
2017-12-05docs: Misc addition/fixesEdward Hervey3-2/+3
And also add the "Since" API sections for 1.12 and 1.14
2017-12-05docs: Add documentation for GST_SEQNUM_INVALIDEdward Hervey2-1/+11
And link to it
2017-12-05utils: Never return a group_id of 0, add GST_GROUP_ID_INVALIDEdward Hervey2-2/+22
Various plugins use special values (0 or G_MAXUINT32) as an invalid/unset group_id, but nothing guarantees a groupid won't have that value. Instead define a value which group_id will never have and make gst_group_id_next() always return a value different from that. API: GST_GROUP_ID_INVALID
2017-12-05buffer: document that _extract_dup() will return NULL for 0-sized bufTim-Philipp Müller1-5/+10
And make it explicit, and don't call _extract() on NULL data buffer.
2017-12-05meson: Use new find_program fallback syntaxNirbheek Chauhan1-14/+2
We use this syntax in libs/gst/helpers/meson.build already.
2017-12-04gst: gst_element_remove_pad() is transfer none for the padSebastian Dröge1-1/+1
While the refcount of the pad is decreased, it's the refcount that is owned by the parent (i.e. the element) and not the one passed in by the caller. Fixes a memory leak in bindings.
2017-12-04devicemonitor: Avoid maybe-uninitialized compiler warningJan Alexander Steffens (heftig)1-4/+2
On Arch Linux x86_64, gcc 7.2.0-3, -Og -g3: gstdevicemonitor.c: In function ‘bus_sync_message’: gstdevicemonitor.c:276:8: error: ‘matches’ may be used uninitialized in this function [-Werror=maybe-uninitialized] This commit also simplifies the code a bit. https://bugzilla.gnome.org/show_bug.cgi?id=789983
2017-12-03gst: Annotate various strings as type filename if they represent a path/filenameSebastian Dröge3-5/+5
2017-12-02info: always check match patterns for new debug categoriesTim-Philipp Müller1-9/+4
Not only if a match pattern was set originally via GST_DEBUG. Patterns might be set programmatically as well after all.
2017-12-02info: fix performance issue with registering categories after gst_init()Tim-Philipp Müller1-1/+13
When registering a new debug category after gst_init(), simply check the existing patterns against that new category. No need to iterate over all categories and recheck them all against the existing patterns. Also, no need to re-parse the existing pattern string set via GST_DEBUG and add the same set of match patterns all over again to the existing list of match patterns every time we register a new debug category. Combined with iterating all debug categories on a change this would make adding debug categories after gst_init() very very very slow.
2017-12-01plugin-scanner: Measure string length in bytesNicolas Dufresne1-1/+1
g_strndup() wants a number of bytes to copy, so use strlen intead of UTF-8 strlen function.
2017-11-26Revert "preset: Do not save deprecated properties"Thibault Saunier1-6/+0
This reverts commit 81e10f61231ad56ca4aa07278993b87c6ec0f058. A mistake lead to committing it twice in a weird way.
2017-11-26preset: Do not save deprecated propertiesThibault Saunier1-0/+6
It will g_warn upon deserialization and we should not use those anyway. https://bugzilla.gnome.org/show_bug.cgi?id=789871
2017-11-26taglist: Avoid assertions when getting tag nick from unregister tagThibault Saunier1-1/+5
With serialized GstDiscovererInfos we might end up trying to use tags that have not been registered.
2017-11-26preset: Do not save deprecated propertiesThibault Saunier1-0/+6
It will g_warn upon desarialization and we should not use those anyway. https://bugzilla.gnome.org/show_bug.cgi?id=789871
2017-11-26tools: gst-inspect: print pad properties where we know the subclass typeTim-Philipp Müller1-0/+1
2017-11-25gstinfo: Use free instead of g_freeEdward Hervey1-1/+1
Because
2017-11-25gstinfo: Don't leak array of stringsEdward Hervey1-0/+2
The array provided by backtrace_symbols needs to be freed.
2017-11-24gstutils: Fix linear regression comparisionEdward Hervey1-2/+2
The check for dropping precision was wrong when sxx and syy were negative. if they are negative then "G_MAXINT64 - val" would always overflow The check was meant to use G_MININT64 (like in the loop contained just after).
2017-11-24gsttraceutils: actually disable tracing system hooks if configuredMikhail Fludkov2-0/+19
`./configure --disable-gst-tracer-hooks` didn't do anything, hooks were always enabled regardless of the option. It works correctly in the Meson build though.
2017-11-24utils: add gst_utils_dump_buffer()Havard Graff2-0/+21
Useful for debugging.
2017-11-24pad: gst_pad_activate_mode() always succeed if same modeStian Selnes1-0/+15
Checking that the pad is in the correct mode before the parent is checked makes the call always succeed if the mode is ok. This fixes a race with ghostpad where gst_pad_activate_mode() could trigger a g_critical() if the ghostpad is unparented while the proxypad is deactivating, for instance if the ghostpad is released. More specifically, gst_ghost_pad_internal_activate_push_default()'s call to gst_pad_activate_mode() would fail if ghostpad doesn't have a parent. With this patch it will return true of mode is already correct.
2017-11-24ghostpad: return TRUE if target pad was already setTim-Philipp Müller1-1/+1
The state is as it should be, so no reason to return FALSE really, everything's good.
2017-11-24ghostpad: access internal pad with lock heldTim-Philipp Müller1-4/+5
2017-11-24ghostpad: fix race-condition while tearing downHavard Graff1-6/+14
An upstream query will take a ref on the internal proxypad, and can hence end up owning the last reference to that pad, causing a crash.
2017-11-23gstvalue: allocate slightly larger than needed tables at startupTim-Philipp Müller1-8/+8
If we pre-allocate only *exactly* as many nodes as we need for the core types, we are practically guaranteed a re-alloc when external code like GstVideoTimeCode or GstEncodingProfile register their own GstValue things. So allocate a bit more than strictly needed.
2017-11-22pad templates: Allow specifying GTypeMathieu Duponchelle4-2/+102
See https://bugzilla.gnome.org/show_bug.cgi?id=731301 https://bugzilla.gnome.org/show_bug.cgi?id=789986
2017-11-23gst: add a promise objectMatthew Waters6-0/+495
An object that can be waited on and asked for asynchronous values. In much the same way as promise/futures in js/java/etc A callback can be installed for when the promise changes state. Original idea by Jan Schmidt <jan@centricular.com> With contributions from Nirbheek Chauhan <nirbheek@centricular.com> Mathieu Duponchelle <mathieu@centricular.com> https://bugzilla.gnome.org/show_bug.cgi?id=789843
2017-11-20registrychunks: Make sure we use aligned memoryEdward Hervey1-0/+1
This is in the same vein as for all other features. Some systems might not allow unaligned read.
2017-11-16gstpad: Make pad (de)activation atomicEdward Hervey1-0/+22
The following could happen previously: * T1: calls gst_pad_set_active() * T2: currently (de)activating it * T1: gst_pad_set_active() returns, caller assumes that the pad has completed the requested (de)activation ... whereas it is not the case since the actual (de)activation in T2 might still be going on. To ensure atomicity of pad (de)activation, we use a internal variable (and cond) to ensure only one thread at a time goes through the actual (de)activation block https://bugzilla.gnome.org/show_bug.cgi?id=790431
2017-11-16gstpad: Make calls to GstPadActivateFunction MT-safeEdward Hervey1-10/+28
checking whether we already were in the target GstPadMode was being done too early and there was the risk that we *would* end up (de)activating a pad more than once. Instead, re-do the check for pad mode when entering the final pad (de)activation block. https://bugzilla.gnome.org/show_bug.cgi?id=790431
2017-11-10paramspec: Move condition check inside the g_returnNicolas Dufresne1-2/+2
It's mostly a debug check and crash avoidance, it's better to keep all the condition inside the macro.
2017-11-10paramspec: Add missing since for _spec_array()Nicolas Dufresne1-0/+2
2017-11-02element: add gst_element_foreach_*pad()Tim-Philipp Müller2-0/+144
Add convenience API that iterates over all pads, sink pads or source pads and makes sure that the foreach function is called exactly once for each pad. This is a KISS implementation. It doesn't use GstIterator and doesn't try to do clever things like resync if pads are added or removed while the function is executing. We can still do that in future if we think it's needed, but in practice it will likely make absolutely no difference whatsoever, since these things will have to be handled properly elsewhere by the element anyway if they're important. After all, it's always possible that a pad is added or removed just after the iterator finishes iterating, but before the function returns. This is also a replacement for gst_aggregator_iterate_sink_pads(). https://bugzilla.gnome.org/show_bug.cgi?id=785679
2017-10-31gstvalue: Cast GST_MAKE_FOURCC argumentsEdward Hervey1-1/+2
To make it explicit that we are dealing with uint32 targets Avoids erroneous runtime error: left shift of negative value -1 https://bugzilla.gnome.org/show_bug.cgi?id=789700
2017-10-27event: Don't allow invalid SELECT_STREAMS event creationEdward Hervey1-1/+6
Asking to select no streams makes no sense and can create various issues. If one doesn't one any stream it should deactivate (or not use) the element in question.
2017-10-25gst: Fix build with option parsing disabledEdward Hervey1-3/+7
2017-10-20segment: clarify the segment docs for the durationStefan Sauer1-1/+1
2017-10-20Revert "segment: also intialize the duration"Stefan Sauer1-6/+0
This reverts commit f1baaae17557fa75a9bcd940b994597714be2f74.
2017-10-20segment: also intialize the durationStefan Sauer1-0/+6
If start and stop are set, calculate the duration and set it too.
2017-10-18seqnum: Never return a seqnum of 0, reset GST_SEQNUM_INVALIDJan Schmidt2-3/+13
Various plugins use the value of '0' as an invalid seqnum value (qtdemux for matching duplicated seek events, for example). Make that behaviour explicit, create a GST_SEQNUM_INVALID value, and ensure gst_util_seqnum_next never returns it.
2017-10-11gstbuffer: fix meta removal in gst_buffer_foreach_metaMathieu Duponchelle1-0/+4
When updating the linked list, prev->next = next is correct if prev is actually updated after being set to the head of the list at the start. https://bugzilla.gnome.org/show_bug.cgi?id=788617
2017-10-05device-provider: gst_device_provider_unhide_provider() always failsAshish Kumar1-1/+1
https://bugzilla.gnome.org/show_bug.cgi?id=788520
2017-10-05meson: remove vs_module_defsHavard Graff1-1/+0
The GST_EXPORT should handle it.
2017-10-03bin: iterate_sorted: Ensure sources are always returned lastEdward Hervey1-0/+6
For linked elements, the resulting gst_bin_iterate_sorted() will properly return elements from sink to sources. If we have some elements that are not linked, we *still* want to ensure that we return: * In priority any sinks * Last of all any sources * And in between any element which is neither source nor sink For this to work, when looking for the next candidate element, not only check the degree order, but if there are two candidates with the same degree order, prefer the non-source one. Amongst other things, this fixes the case where we activating a bin containing unlinked sources and other elements. Without this we could end up activating sources (which might start adding pads to be linked) before other (to which those new source element pads might be linked) are not activated https://bugzilla.gnome.org/show_bug.cgi?id=788434
2017-10-02structure: add a todo commentStefan Sauer1-0/+1
Printing NULL is confusing when the type is e.g. a GArray that is not empty.