summaryrefslogtreecommitdiff
path: root/plugins
AgeCommit message (Collapse)AuthorFilesLines
2017-11-26tracers: log: no need to link to our internal printf implementationTim-Philipp Müller2-7/+1
The call to __gst_vasprintf() was removed in commit 1a3e218b8.
2017-11-24gsttraceutils: actually disable tracing system hooks if configuredMikhail Fludkov1-2/+5
`./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-24gstbasetranform: replace GST_BASE_TRANSFORM with GST_BASE_TRANSFORM_CASTHavard Graff2-7/+8
To avoid a global type-lock on chain etc.
2017-11-23queue: Only calculate level if we have valid levelsEdward Hervey1-1/+2
Doing calculations with GST_CLOCK_STIME_NONE would result in completely bogus levels
2017-11-10concat: Handle single-pad use-casesEdward Hervey1-0/+14
When EOS reaches concat, it will switch to the next candidate as its activate pad. The problem arises when there is only one sinkpad, the "active" pad becomes NULL. This results in concat becoming unusable after it receives a *single* EOS on its single sinkpad. If we detect there is a single sinkpad and there is no current active pad: * If we are waiting (from selected sink event/buffer), become the current active pad. * If there is a seek request, send it upstream. We don't switch the active_sinkpad property at that point in time, since the seek could fail. If the seek succeeds, the following SEGMENT (or STREAM_START) will cause the pad_wait() to elect that pad as the new active one. * Flush events get forwarded https://bugzilla.gnome.org/show_bug.cgi?id=790167
2017-11-09concat: Make QoS forward MT-safeEdward Hervey1-7/+19
In the same way it's done for other event forwarding.
2017-11-04latency tracer: add timestamp to tracer recordsGuillaume Desmottes1-1/+7
Include the timestamp of the recorded log as in the 'stats' tracer. This can be useful, for example, to plot a graph showing the latency over time. https://bugzilla.gnome.org/show_bug.cgi?id=781315
2017-11-02gstleaks.c: always log leaks listingMathieu Duponchelle1-5/+13
https://bugzilla.gnome.org/show_bug.cgi?id=789556
2017-10-30latency-tracer: Exclude synchronization timeNicolas Dufresne1-23/+23
The goal of this tracer is to measure the processing latency between a src and a sink. In push mode, the time was read after the chain function have returned. As the amount of time we wait to get synched is reverse to the amount of latency the source introduced, the result was quite surprising. This patch moves the latency calculation in the pre-push hook. When there is no processing in a a pipeline (e.g. fakesrc ! fakesink), the latency will now be 0 as it's supposed to. For pull mode, the code was already correct. When GstBaseSink operate in pull mode, the processing time is done durring the pull, so pull-post is the right hook. The synchronization will happen after the pull has ended. Note that GstBaseSink rarely operate in pull mode. https://bugzilla.gnome.org/show_bug.cgi?id=788431
2017-10-03Use proper GtkDoc notation for NULL/FALSE/TRUEReynaldo H. Verdejo Pinochet1-2/+2
2017-10-02tee: don't create a pool if none is neededStefan Sauer1-3/+10
If the aggregated size is 0 and we create a pool, the pool would provide buffers with no memory assigned. Handle that case and skip the pool. This was the behaviour before cf803ea9f4e3fde92c1da86ecc47444035f7c0a7. Add a test for this scenario. https://bugzilla.gnome.org/show_bug.cgi?id=730758
2017-09-18Multiqueue: don't allow dropping SEGMENT_DONE eventsMathieu Duponchelle1-3/+18
https://bugzilla.gnome.org/show_bug.cgi?id=780795
2017-09-17plugins: use new gst_buffer_list_calculate_size()Tim-Philipp Müller2-30/+6
2017-09-06identity: Add a drop-allocation propertyNicolas Dufresne2-1/+21
When enabled, this property will make the allocation query fail. This is the same as one could have done using a tee before the tee started implementing the allocation query. https://bugzilla.gnome.org/show_bug.cgi?id=730758
2017-09-05tee: Allocate one more buffer when multi-plexingNicolas Dufresne1-0/+8
This extra buffer ensure that the downstream threads are not starved when multiplexing a stream. https://bugzilla.gnome.org/show_bug.cgi?id=730758
2017-09-05tee: Implement allocation query aggregationNicolas Dufresne1-0/+226
This will aggregate allocation params, pool and will keep all meta that has no parameters. https://bugzilla.gnome.org/show_bug.cgi?id=730758
2017-09-05tee: Deprecate alloc-pad propertyNicolas Dufresne1-2/+3
It has no effect, not implemented, and would lead to bad rendering. https://bugzilla.gnome.org/show_bug.cgi?id=730758
2017-08-16identity: Return FLUSHING instead of EOS and don't start waiting for ↵Sebastian Dröge2-2/+19
anything if currently flushing Otherwise we might try unscheduling a clock id (that does not exist yet), then the streaming thread waits for id and the state change never continues because the streaming thread is blocked. Also shutting down and flushing and similar should return FLUSHING, not EOS. The stream is not over, we're just not accepting any buffers anymore.
2017-08-11queue: Allow re-usability after EOSSebastian Dröge1-5/+35
After EOS, it is possible for a pad to be resetted by sending either a STREAM_START or SEGMENT event Mimic the same behaviour when receiving STREAM_START/SEGMENT events in queue if we are EOS'd https://bugzilla.gnome.org/show_bug.cgi?id=786056
2017-08-09queue2: Allow re-usability after EOSEdward Hervey1-6/+41
After EOS, it is possible for a pad to be resetted by sending either a STREAM_START or SEGMENT event Mimic the same behaviour when receiving STREAM_START/SEGMENT events in queue2 if we are EOS'd https://bugzilla.gnome.org/show_bug.cgi?id=786056
2017-08-09plugins: *queue* elements: Handle STREAM_START in EOS situationEdward Hervey3-2/+9
When queue-like elements are in "EOS" situation (received GST_FLOW_EOS from downstream or EOS was pushed), they drain buffers/events that wouldn't be processed anyway and let through events that might modify the EOS situation. Previously only GST_EVENT_EOS and GST_EVENT_SEGMENT events were let through, but we also need to allow GST_EVENT_STREAM_START to go through since it resets the EOS state of pads since 1.6 https://bugzilla.gnome.org/show_bug.cgi?id=786034
2017-08-07queue2: Handle buffering levels on NOT_LINKEDEdward Hervey1-4/+10
When downstream returns NOT_LINKED, we return the buffering level as being 100%. Since the queue is no longer being consumed/used downstream, we want applications to essentially "ignore" this queue for buffering purposes. If other streams are still being used, those stream buffering levels will be used. If none are used, upstream will post an error message on the bus indicating no streams are used. https://bugzilla.gnome.org/show_bug.cgi?id=785799
2017-07-26downloadbuffer: remove unused struct memberTim-Philipp Müller2-6/+1
This was used in queue2 when handling in coming serialized queries, but downloadbuffer just refuses serialized queries.
2017-07-20multiqueue: Fix access to NULL pointerEdward Hervey1-2/+3
sq can be NULL. Also fix commit message (it's the queue we are iterating over that we are logging, not the one passed as argument). CID #1415569
2017-07-19multiqueue: Calculate interleave only within each streaming threadSeungha Yang1-18/+30
... and use the biggest interleave value among streaming threads. This is to optimize multiqueue size adaptation on adaptive streaming use case with "use-interleave" property. https://bugzilla.gnome.org/show_bug.cgi?id=784448
2017-07-11meson: Use join_paths and .set_quoted where possibleNicolas Dufresne1-2/+2
2017-07-05meson: add option to disable tracer hooksTim-Philipp Müller1-1/+3
2017-05-20leaks: Handle subclasses in filters even for unhandled/lazy loaded typesThibault Saunier2-19/+27
Using typename in the set of unhandled types instead of the quark so that we also handle subclasses as with other filters.
2017-05-16Remove plugin specific static build optionNicolas Dufresne3-3/+1
Static and dynamic plugins now have the same interface. The standard --enable-static/--enable-shared toggle are sufficient.
2017-03-14queue: avoid return flushing if we have a not-linkedThiago Santos1-4/+8
Return the correct flow return instead of returning always flushing. This would cause queue to convert not-linked to flushing and making upstream elements stop. Based on the previous patch for queue2. https://bugzilla.gnome.org/show_bug.cgi?id=776999
2017-03-11queue2: avoid return flushing if we have a not-linkedThiago Santos1-7/+11
Return the correct flow return instead of returning always flushing. This would cause queue2 to convert not-linked to flushing and making upstream elements stop. https://bugzilla.gnome.org/show_bug.cgi?id=776999
2017-03-10buffer: handle gst_buffer_map failuresWim Taymans1-2/+20
2017-03-10downloadbuffer: unlock mutex in error caseWim Taymans1-0/+1
2017-03-09multiqueue: Make min-interleave-time a configurable propertyJan Schmidt2-2/+24
Remove a FIXME about making the minimum interleave buffering a configurable property
2017-03-07inputselector: Always proxy position/duration querySeungha Yang1-1/+4
active-pad switch causes reconfigure event with lock taken, and upstream element might query the current position or duration before returning the reconfigure event. Meanwhile, gst_input_selector_get_linked_pad() is used to get srcpad inside of default query handle, and it takes also lock. Since inputselector is still locked by active-pad switch, and so the query cannot be handled further. https://bugzilla.gnome.org/show_bug.cgi?id=775445
2017-01-27Port gtk-doc comments to their equivalent markdown syntaxThibault Saunier22-159/+131
Modernizing our documentation and preparing a possible move to hotdoc. This commits also adds missing @title metadatas to all SECTIONs
2017-01-16identity: Add ts-offset property.Jan Schmidt2-0/+24
Add a property to delay or advance sync time when sync=true, with the same behaviour as the ts-offset property in basesink
2017-01-03queue: Don't generate GST_FLOW_ERROR without loggingJan Schmidt1-2/+4
At least log a message to the debug log when generating a GST_FLOW_ERROR, to make it possible to find where it came from.
2016-12-21gstrusage: explicitly register to hooksStefan Sauer1-2/+15
We were attaching to any probe point to take rusage samples. The new refcount hooks are called way too frequently though to make this still feasible.
2016-12-21meson: Derive defines from header/function namesNirbheek Chauhan1-1/+1
This is what Autoconf already does for us, so just do this. Avoids people making typos while adding header or function checks. Because we use a config.h.meson, such typos won't even be noticed. Also, starting from Meson 0.36.0, the XCode 8 workaround that we use for clock_gettime is no longer needed.
2016-12-20latency: the latency is not an aggregated valueStefan Sauer1-1/+0
The logged latencies are individual meassurements.
2016-12-20leaks: Allow user to set the flags to use to retrieve stack tracesThibault Saunier2-21/+30
https://bugzilla.gnome.org/show_bug.cgi?id=775541
2016-12-20leaks: Allow tracing Gst(Mini)Object reffing operationsThibault Saunier2-14/+147
It makes it much simpler to later debug refcount issues. https://bugzilla.gnome.org/show_bug.cgi?id=775541
2016-12-20leaks: Allow passing a GstStructure to configure the tracerThibault Saunier1-23/+63
But keep understanding the simple synthax with a comma separated list of filters https://bugzilla.gnome.org/show_bug.cgi?id=775541
2016-12-21typefind: Switch to normal mode before have-typeJan Schmidt1-1/+7
Before emitting have-type, switch to NORMAL mode, as part of the have-type processing sends the caps event downstream, which might trigger actions like downstream autoplugging or flushing seeks - and the latter are only passed upstream if we've set typefind to NORMAL mode.
2016-12-18multiqueue: Protect against spurious wakeups of the condition variableSebastian Dröge1-1/+2
2016-12-16tracers/stats: log optional fields instead of GST_CLOCK_TIME_NONEStefan Sauer1-2/+8
Simplify the traces and avoid trace analyzer to know that ((1<<64) - 1) means we had no value.
2016-12-13queue/queue2: Protect against spurious condition variable wakeupsSebastian Dröge4-2/+12
Make sure that we only wake up when we have to flush, or when this specific query was handled. https://bugzilla.gnome.org/show_bug.cgi?id=776039
2016-12-13queue/queue2: Ensure that the streaming thread is unlocked after ↵Sebastian Dröge2-0/+8
deactivating the srcpad It might happen that the srcpad task function is never called at all, in which case unlocking everything from there will never happen. Make sure to unlock everything another time after the task function is definitely stopped. https://bugzilla.gnome.org/show_bug.cgi?id=776039
2016-12-12info: Add a 'flags' parametter to gst_debug_get_stack_traceThibault Saunier1-2/+2
This is an API break but that API has not been released yet. We are passing a flag rather than a simple boolean as we can imagine to implement more features in the future for example to retrieve a stack trace for all the threads, etc.. Retrieving source file and line numbers is pretty expensive while getting a stack trace, this new argument allows the user to decide to retrieve a backtrace without those infos instead which is much faster. For example running $ GST_LEAKS_TRACER_STACK_TRACE=1 GST_DEBUG=GST_TRACER:7 \ GST_TRACERS=leaks time gst-launch-1.0 videotestsrc num-buffers=1 ! fakesink: * With simple stack traces: 0.04s user 0.02s system 99% cpu 0.060 total * With full stack traces: 0.66s user 0.23s system 96% cpu 0.926 total https://bugzilla.gnome.org/show_bug.cgi?id=775423