Mathieu Duponchelle
2e507d5a4b
gstvalue: don't write to const char *
...
Our various deserializing functions require NULL terminators
to not over consume substrings (eg fields of an array). Instead
of writing a NULL terminator to the passed-in string, which may
result in segfaults, make a copy of the substring we're interested
in.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/446
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/672 >
2020-10-13 01:19:47 +02:00
Xavier Claessens
4095a4b4c5
Meson: Use pkg-config generator
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4 >
2020-10-12 13:39:17 +00:00
Seungha Yang
74dc8f7678
meson: Disallow DbgHelp for UWP build
...
Most symbols in DbgHelp.h are not allowed for UWP
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/665 >
2020-10-12 03:46:54 +00:00
Tim-Philipp Müller
a2cbf75523
Remove unused valgrind detection
...
Having this just to log a debug message in case we're
running inside valgrind doesn't seem very useful, and
the code that used to use this no longer exists it seems.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/595 >
2020-10-11 22:39:51 +00:00
Seungha Yang
271af223b7
info: Fix build on Windows ARM64 device
...
gstinfo.c(3086): error C2094: label 'done' was undefined
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/662 >
2020-10-09 06:52:12 +00:00
Matthew Waters
e4567b2dbd
build: use cpu_family for arch checks
...
e.g. on 32-bit arm, we may have armv6, armv7l, armv7hf, etc which all
generally have the same layouts. cpu_family() groups all of these into
just 'arm' that the ABI check table is expecting.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/664 >
2020-10-09 12:13:15 +11:00
Jan Alexander Steffens (heftig)
0f93889c7a
basetransform: Fix in/outbuf confusion of _default_transform_meta
...
The default implementation doesn't actually use its buffer parameters,
but this error might have been the cause of some actual confusion in
the plugins code.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/663 >
2020-10-08 18:30:00 +02:00
Xavier Claessens
0ed165bf67
gst_init: Call gst_init_static_plugins() when available
...
When doing a static build, gstreamer-full-1.0 defines that symbol to
register static plugins. Cerbero's Android build will be updated to
implement that symbol too.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/641 >
2020-10-05 16:09:10 -04:00
Mathieu Duponchelle
acdb4ce03d
gstvalue: expose gst_value_deserialize_with_pspec()
...
Typing hints can only be passed to gst_value_deserialize()
through the type of the passed-in value. This means deserialization
can only target the desired type for the top-level elements,
making it for example impossible to deserialize an array of
flags to the expected type.
This commit exposes a new function, gst_value_deserialize_full(),
that takes an optional pspec as the extra parameter, and updates
the deserialization code to pass around that pspec, or the
element_spec when recursively parsing the elements of a list-type
value.
This allows for example passing arrays of flags through the
command line or gst_util_set_object_arg, eg:
foo="<bar,bar+baz>"
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/629 >
2020-10-03 01:02:55 +02:00
Seungha Yang
220ce9c3fd
info: Load DbgHelp.dll using g_module_open()
...
... and update meson file so that enable it only using required headers.
"dependency(...)" is unlikely successful for Windows SDK libraries
since it doesn't ship pkg-config file. So it needs to be changed
to "find_library()" to link corresponding .lib file. That would
result to most MSVC build system will link dbghelp.dll. However,
one drawback of the change is that gstreamer-1.0.dll will mandate
dbghelp.dll although it should be optional. So g_module_open() way
can be the most safe way in this case.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/626 >
2020-09-30 18:51:40 +00:00
Matthew Waters
19fb999e09
padtemplate: mark documentation caps as may be leaked
...
The template itself is already marked as such and the caps, the
documentation caps are a logical extension of those two.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/650 >
2020-09-30 11:59:04 +10:00
Víctor Manuel Jáquez Leal
a854a1feda
padtemplate: add missing annotation
...
Adds missing "transfer full" annotation for caps parameter in
gst_pad_template_set_documentation_caps()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/648 >
2020-09-28 11:43:19 +00:00
Víctor Manuel Jáquez Leal
b81808de0e
memory: fix documentation to display in html
...
Commit e9c99c05
added a deprecation message, but this message is not
displayed in the html page since the format was not correct.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/648 >
2020-09-28 11:43:19 +00:00
Mathieu Duponchelle
bbca6b1ddf
meta: expose API to register and create custom meta
...
Custom meta is backed by a GstStructure, and does not require
that users of the API expose their GstMeta implementation as
public API for other components to make use of it.
In addition, it provides a simpler interface by ignoring the
impl vs. api distinction that the regular API exposes.
This new API is meant to be the meta counterpart to custom events
and messages, and to be more convenient than the lower-level API
when the absolute best performance isn't a requirement.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/609 >
2020-09-27 11:08:03 +00:00
Olivier Crête
e9c99c05ae
memory: Deprecate GST_MEMORY_FLAG_NO_SHARE
...
This flag always causes problems as it prevents subbuffering,
instead one should create a custom GstAllocator to pool the GstMemory objects
and not rely on the lifetime of the GstBuffer object they were originally
attached to.
https://bugzilla.gnome.org/show_bug.cgi?id=757254
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/614 >
2020-09-18 22:37:28 +00:00
Mathieu Duponchelle
3393b456e4
gstmeta: intern registered impl string
...
Subsequent lookups in the hashtable are probably better done
on memory we're confident is allocated to us :)
It was easy to trigger invalid reads by calling gst_meta_register
with dynamically allocated memory, freeing that memory, then
calling gst_meta_get_info()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/628 >
2020-09-18 17:31:22 +00:00
Olivier Crête
f26a9ebafb
deviceprovider: Returns non-floating devices from gst_device_provider_probe
...
This should make the API usage more consistent. Also document that the subclasses
should just return the devices as floating.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/558 >
2020-09-18 14:52:12 +00:00
Matthew Waters
9f17094cf3
aggregator: don't fail all sink pads when a caps event fails negotiation
...
If one pad returns not-negotiated from a caps event, then all other sink
pads were returning not-negotiated.
In our case, we can't reliably easily fail at all so just remove that
code.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/623 >
2020-09-18 09:04:21 +00:00
Matthew Waters
4f95dec74a
baseparse: prefer upstream caps rather than overriding
...
e.g. h264parse ! video/x-h264,stream-format=avc receives the following:
- caps: video/x-raw,stream-format=byte-stream
- gap event: baseparse tries to choose some default caps but would
override the downstream chosen caps field with upstreams value.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/581 >
2020-09-18 08:12:30 +00:00
Sebastian Dröge
46305b292f
aggregator: Hold SRC_LOCK while unblocking via SRC_BROADCAST()
...
Otherwise the clock id we access might not be a valid pointer anymore.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/630 >
2020-09-18 07:01:14 +00:00
Seungha Yang
7d12aa07d4
tests: leaks: Allow null tracer string if there's no available stack trace
...
In case that no available stack tracer, leak tracer will set
null string value for `trace` field. I would likely happen
on Windows.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/625 >
2020-09-15 06:35:34 +09:00
Seungha Yang
f120ad0012
tests: element: Don't run too many loop
...
g_thread_yield() doesn't ensure thread switching actually.
It would result to adding so many pads. Depending on system,
timeout might happen then.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/625 >
2020-09-15 04:41:19 +09:00
Seungha Yang
f44312ae5d
tests: seek: Don't use too strict timeout for validation
...
Expected segment-done message might not be seen within expected
time if system is not powerful enough.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/625 >
2020-09-15 00:54:58 +09:00
Seungha Yang
62f2a86eea
valve: Fix MSVC compile warning
...
gstvalve.c(285) : warning C4715: 'gst_valve_event_needs_dropping':
not all control paths return a value
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/624 >
2020-09-11 02:59:51 +09:00
Sebastian Dröge
8d0055e185
event: Add optional flags to the GAP event
...
This allows to signal the reason for the gap, for example missing data
like packet loss.
Based on a patch by Mikhail Fludkov <misha@pexip.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/551 >
2020-09-10 16:01:19 +00:00
Sebastian Dröge
1a59eeedb4
harness: Add gst_harness_set_live()
...
By default each harness returns is_live=TRUE in latency queries. This is
often not desired and can now be overridden.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/599 >
2020-09-10 14:18:42 +03:00
Sebastian Dröge
ca38070bdf
aggregator: Reset latency values in start()
...
Some base classes like videoaggregator try retrieving the latency during
construction, which causes the latency values to be set already until
reconfiguration happens.
By resetting them the same way as in stop() we ensure that we always
start cleanly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/599 >
2020-09-10 14:18:34 +03:00
Tom Schoonjans
40c994cdde
ptp_helper_post_install.sh: deal with none
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/620 >
2020-09-09 19:27:19 +00:00
Xℹ Ruoyao
1aa16e0b2b
skip elements/leak.c if tracer is not available
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/621 >
2020-09-09 12:20:01 +00:00
Sebastian Dröge
aa3e110a54
aggregator: Wake up source pad in PAUSED<->PLAYING transitions
...
When going to PLAYING we will now have a clock and can stop waiting on
the condition variable and instead start waiting on the clock if
necessary for the current configuration.
In the other direction when going to PAUSED the clock might have
disappeared and we might need to wait on the condition variable again
instead.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/601 >
2020-09-09 09:54:42 +00:00
Sebastian Dröge
5bab6154aa
input-selector: Wake up blocking pads when releasing them
...
Otherwise deactivating them will cause a deadlock as they're blocking
inside the streaming thread.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/601
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/606 >
2020-09-09 06:53:00 +00:00
Sebastian Dröge
00fd649640
valve: Add modes to forward sticky events when dropping and to convert buffers into gap events
...
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/587
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/84
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/594 >
2020-09-09 06:16:51 +00:00
Mathieu Duponchelle
52aa6a9dda
aggregator: make peek() has() pop() drop() buffer API threadsafe
...
Enforce that the last buffer that was peeked (or had its existence
checked) on a pad is the one that gets popped / dropped, resetting
at the end of each aggregation cycle.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/603
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/608 >
2020-09-09 01:39:27 +00:00
Sebastian Dröge
347fff4ec1
ptp: Also handle gnu/kfreebsd
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/619 >
2020-09-08 22:22:58 +00:00
Tim-Philipp Müller
6bae423f4a
ci: include template from gst-ci master branch again
2020-09-08 17:30:27 +01:00
Tim-Philipp Müller
f38a43d490
Back to development
2020-09-08 16:58:20 +01:00
Tim-Philipp Müller
96148da56f
Release 1.18.0
2020-09-08 00:01:35 +01:00
Tim-Philipp Müller
07fd4878c7
meson: dist pot file in tarballs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/618 >
2020-09-07 22:23:18 +01:00
Sebastian Dröge
dccae68eaf
aggregator: Document that samples_selected() must only be called from the aggregate() function
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/607 >
2020-08-25 15:50:25 +03:00
Sebastian Dröge
070f663ae1
aggregator: Don't automatically adjust segment if subclass provided one
...
On the first buffer the base class would update the segment position
based on the start-time-selection. If the subclass provides its own
segment this will caused unexpected behaviour and override segment
information that was explicitly set by the subclass.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/600 >
2020-08-24 18:19:21 +00:00
Tim-Philipp Müller
e97c520f06
Release 1.17.90
2020-08-20 16:08:27 +01:00
Mathieu Duponchelle
f0da248d37
aggregator: fix documentation for samples-selected and buffer-consumed
...
GI expects the instance parameter to be documented, omitting it
leads to a msismatched output in the gir.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/592 >
2020-08-10 22:42:54 +02:00
Sebastian Dröge
84385bdd86
aggregator: Add optional GstStructure info parameter to "samples-selected" signal
...
Subclasses can use this to provide more information, for example
audioaggregator could provide the offset into the output buffer where
the next data is going to be filled.
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/805
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/590 >
2020-08-07 19:15:34 +03:00
Mathieu Duponchelle
e243e152f0
aggregator: add segment, pts, dts and duration to samples-selected
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/588 >
2020-08-05 19:05:34 +02:00
Xavier Claessens
9961398d25
Meson: Override gst-tester-1.0 program to find it in other modules
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/586 >
2020-08-04 11:23:42 +00:00
Jordan Petridis
c12c7afd06
fix clang 10 warnings
...
the typesystem checks in g_atomic_pointer_compare_and_exchange
seem to trigger some false positives with clang 10
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/584 >
2020-08-04 10:44:16 +00:00
Mathieu Duponchelle
ed90b5dc55
aggregator: fix iteration direction in skip_buffers
...
Subclasses use the pad segment to determine whether a buffer
should be skipped, we thus don't want to check if a buffer
needs to be skipped before processing the segment it's part
of.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/585 >
2020-08-04 11:16:21 +02:00
Nirbheek Chauhan
5195ad9126
gsturi: Add new API for storing unmodified userinfo / fragment
...
New API: gst_uri_from_string_escaped()
Identical to gst_uri_from_string() except that the userinfo and
fragment components of the URI will not be unescaped while parsing.
This is needed for correctly parsing usernames or passwords with `:`
in them such as reported at:
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/831
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/583 >
2020-08-03 16:07:45 +00:00
Nirbheek Chauhan
5f4723d842
tests: Add more tests for gsturi
...
Add tests that exercise unescaping of userinfo and fragments.
Also convert to a modular macro-based definition so that we can reuse
the list of tests in the next commit.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/583 >
2020-08-03 16:07:44 +00:00
Thibault Saunier
356d8b4c2d
inspect: Print preset description when available
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/582 >
2020-08-03 12:54:53 +00:00