Commit graph

157 commits

Author SHA1 Message Date
Martin Reboredo
944623c3aa gstvulkan: Constify code in create_shader
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1226>
2021-10-21 23:35:41 -03:00
Tim-Philipp Müller
e3bb858239 meson: default to gpl=disabled for gst-plugins-bad and -ugly
This will only affect individual/tarball module builds, as the
options yield to the parent project which was set to gpl=disabled
by default already. We kept it as auto in the original commit
to accommodate the need to update cerbero as well, which had to
be done separately after the initial commit.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1217>
2021-10-21 23:07:48 +00:00
Rafał Dzięgiel
18b5806ab9 assrender: Do not iterate over mimetypes without filename
No point spending time on iterating and comparing strings if we
are going to reject the value due to missing filename anyway.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1206>
2021-10-21 22:21:40 +00:00
Rafał Dzięgiel
e6ff71f8e7 assrender: Fix mimetype detection
Previously gst_structure_has_name was used to get a string to compare with supported mimetypes.
This is incorrect as above function returns a user defined structure name which is
not the structure mimetype value.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1206>
2021-10-21 22:21:40 +00:00
Matthew Waters
9f79ab8b0b vulkan/swapper: add some debug logging for surface size and present modes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1219>
2021-10-21 11:32:04 +00:00
Jan Alexander Steffens (heftig)
be3c60eb1f interlace: Replace custom lock with object lock
The object lock is sufficient for the task of protecting against
object property data races.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1039>
2021-10-21 10:50:17 +00:00
Jan Alexander Steffens (heftig)
2bf6e2a20e interlace: Protect all properties with the lock
Avoid blatant data races here.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1039>
2021-10-21 10:50:17 +00:00
Jan Alexander Steffens (heftig)
683680f6e5 interlace: Reset src_fps_d together with src_fps_n
These fields belong together.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1039>
2021-10-21 10:50:17 +00:00
Jan Alexander Steffens (heftig)
342763a158 interlace: Clear stored_fields together with stored_frame
These fields belong together.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1039>
2021-10-21 10:50:17 +00:00
Jan Alexander Steffens (heftig)
fcaf5b0f0b interlace: Reset after changing state to READY
Trying to reset before the pads have been deactivated races with the
streaming thread. There was also a buggy buffer clear leaving a dangling
`stored_frame` pointer around. Use `gst_interlace_reset` so this happens
properly.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1039>
2021-10-21 10:50:17 +00:00
Mathieu Duponchelle
2f8030d98b nvh264enc: add constrained-baseline to the caps profiles
In practice, when baseline is requested from the encoder it
produces constrained baseline, and it is already reflected
in the profile-iop flags.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1213>
2021-10-21 09:06:08 +00:00
Seungha Yang
8b6c3e030b mediafoundation: Fix for UWP build
We don't support D3D11 interop for UWP because some APIs
(specifically MFTEnum2) are desktop application only.
However, the code for symbol loading is commonly used by both UWP and WIN32.
Just link GModule unconditionally which is UWP compatible, and simply don't
try to load any library/symbol dynamically when D3D11 interop is unavailable.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1216>
2021-10-21 05:11:40 +00:00
Tim-Philipp Müller
9a4651e387 mms: remove mmssrc plugin
Doubtful that anyone still needs that or there are even
any streams left out there.

MMS was deprecated in 2003 (in favour of RTSP) and support for
it was dropped with Microsoft Media Services 2008.

https://en.wikipedia.org/wiki/Microsoft_Media_Server
https://sdp.ppona.com/news2008.html

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/821

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1211>
2021-10-20 17:05:34 +00:00
Tim-Philipp Müller
e0f336c1b4 meson: va, msdk: simplify dep.get_variable() use
With recent Meson versions we can just write dep.get_variable('foo')
instead of dep.get_variable(pkgconfig: 'driverdir', internal: 'driverdir').

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
2021-10-20 11:20:44 +00:00
Tim-Philipp Müller
8dfab0b08c meson: update for meson.build_root() and .build_source() deprecation
-> use meson.project_build_root() or .global_build_root() instead.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
2021-10-20 11:20:44 +00:00
Tim-Philipp Müller
f1bb2c76c6 meson: update for dep.get_pkgconfig_variable() deprecation
... in favour of dep.get_variable('foo', ..) which in some
cases allows for further cleanups in future since we can
extract variables from pkg-config dependencies as well as
internal dependencies using this mechanism.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
2021-10-20 11:20:44 +00:00
Tim-Philipp Müller
531aa4064a meson: clean up conditional paths after version bump
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1183>
2021-10-20 11:20:44 +00:00
Rafał Dzięgiel
c016bed943 assrender: fix smooth scaling by disabling hinting
When ass hinting value is set to anything other than NONE,
subtitles cannot use smooth scaling, thus all animations will jitter.

The libass author warns about possibility of breaking some scripts when it is enabled,
so lets do what is recommended and disable it to get the smooth scaling working.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1201>
2021-10-20 09:57:43 +00:00
Jan Alexander Steffens (heftig)
df403df2ca srt: Plug leak of headers
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1040>
2021-10-19 07:19:41 +00:00
Jan Alexander Steffens (heftig)
320bc6362b mpegtsmux: Avoid crash when best pad gets flushed
The 'best' pad might receive a flush event between us picking it and us
popping the buffer. In this case, the buffer will be missing.

Similar to https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/711

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1042>
2021-10-19 01:46:19 +00:00
Tim-Philipp Müller
817cb23b9c tools: Define G_LOG_DOMAIN for various tools as well
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1009>
2021-10-19 00:12:25 +00:00
Tim-Philipp Müller
be3b71d6c9 gst-plugins-bad: define G_LOG_DOMAIN for all libraries
Fixes #634

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1009>
2021-10-19 00:12:25 +00:00
Antonio Ospite
7f001b6311 aes: specify the required OpenSSL version
The code in the aes elements assumes OpenSSL >= 1.1.0:

  - implicit library initialization;
  - version retrieved with OpenSSL_version(OPENSSL_VERSION);

and it fails to build with older versions.

Specify the required OpenSSL version explicitly in meson.build so that
the elements are excluded on older systems (e.g. Ubuntu 16.04) and the
rest of GStreamer can still build.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1067>
2021-10-18 23:25:50 +00:00
Víctor Manuel Jáquez Leal
5c6b641ae3 vadeinterlace: Accept ANY feature.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1024>
2021-10-18 19:14:15 +00:00
Víctor Manuel Jáquez Leal
bf1b03e5cb vadeinterlace: Fixate interlace-mode and framerate accordingly.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1024>
2021-10-18 19:14:15 +00:00
Víctor Manuel Jáquez Leal
10e5db047a vapostproc: Accept ANY feature.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1024>
2021-10-18 19:14:15 +00:00
Víctor Manuel Jáquez Leal
7e53161ea5 vapostproc: Traverse caps features in gst_va_vpp_caps_remove_fields()
The previous code had a potential failure for multiple caps features. Now
each caps feature in each structure is reviewed, and if it has a supported
feature, the structure is processed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1024>
2021-10-18 19:14:15 +00:00
Víctor Manuel Jáquez Leal
c00ad9e70c vapostproc: Refactor gst_va_vpp_complete_caps_features()
gst_va_vpp_complete_caps_features() now receives the @feature_name to
add and return if @caps doesn't provide it.

So, instead of two nested loops, now the function is a single loop,
traversing @caps to find if each structure already contains the requested
@features_name.

It's important to add missing caps features with @caps, in order to
not lost information.

The function caller does the external loop by calling per each
available caps feature.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1024>
2021-10-18 19:14:15 +00:00
Víctor Manuel Jáquez Leal
d12991c979 vapostproc: Split caps transform in two phases.
In order to make more readable the caps transformation, the operation
was split in two phases:

1. Rangify the supported caps structures.
2. Add the missing (and supported) caps features.

Step 1 modified its logic, by copying any unrecognized structure.
It's a previous step required for allowing ANY caps feature as
passthrough.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1024>
2021-10-18 19:14:15 +00:00
Vivia Nikolaidou
6bf36f6e0f tsdemux: Change many GST_{DEBUG, LOG, etc} into _OBJECT
Log files with several demuxers running at once can otherwise get
confusing

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1096>
2021-10-18 18:34:04 +00:00
Vivia Nikolaidou
300e784a20 tsdemux: Issue GST_ELEMENT_WARNING for continuity errors
The application might want to make use of these.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1096>
2021-10-18 18:34:04 +00:00
Tim-Philipp Müller
0a25f22f1b meson: bump meson requirement to >= 0.59
For monorepo build and ugly/bad, for advanced feature
option API like get_option('xyz').required(..) which
we use in combination with the 'gpl' option.

For rest of modules for consistency (people will likely
use newer features based on the top-level requirement).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1084>
2021-10-18 18:03:19 +01:00
Tim-Philipp Müller
d4bdbeaa0d meson: add 'gpl' option and only build plugins with (A)GPL deps if explicitly enabled
Require explicit opt-in to build plugins with (A)GPL dependencies.

Keep ugly/bad options on 'auto' for now so cerbero doesn't fail.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1084>
2021-10-18 18:03:19 +01:00
Vivia Nikolaidou
95eb8672a6 basetsmux: Support for caps changes
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/981>
2021-10-18 15:37:41 +00:00
Jan Alexander Steffens (heftig)
a8ebf72627 basetsmux: Clean up gst_base_ts_mux_create_stream
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/981>
2021-10-18 15:37:40 +00:00
Vivia Nikolaidou
273e2a1db6 mpegtsbase: Search SCTE-35 DRF_ID_CUEI in multiple registration descriptors
There are streams in the wild that have to add a SCTE-35 trigger in
another e.g. GA94 stream. Most encoders would replace the GA94
descriptor ID with the CUEI one temporarily, but there are some that
will add two registration ID descriptors, one with GA94 and one with
CUEI.

Failing to parse the CUEI registration ID in that case would return
FALSE in _stream_is_private_section , therefore setting it as known PES
and pushing packets downstream instead of calling handle_psi.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/979>
2021-10-18 13:58:39 +00:00
Edward Hervey
d9b1e1e99f tsdemux: Improve gap detection
We should also take into account whether data is currently pending when checking
for gap on streams. It could very well be that some streams have very low
bitrate (and spread out) data. For those we don't want to push out a gap event.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1179>
2021-10-18 11:23:25 +00:00
Edward Hervey
0ff569d408 tsdemux: Handle "negative" timestamps
This is only enabled in push time mode. Furthermore it's only enabled for now if
PCR is to be ignored.

The problem is dealing with streams where the initial PTS/DTS observation might
be greater than following ones (from other PID for example). Before this patch,
this would result in sending buffers without any timestamp which would cause a
wide variety of issues.

Instead, pad segment and buffer timestamps with an extra
value (packetizer->extra_shift, default to 2s), to ensure that we can get valid
timestamps on outgoing buffers (even if that means they are before the segment
start).

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1179>
2021-10-18 11:23:25 +00:00
Edward Hervey
74e9d44db3 tsdemux: Handle streams with bogus PTS vs DTS
PTS and DTS should be within a reasonable distance of each other.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1179>
2021-10-18 11:23:25 +00:00
Edward Hervey
6efa9dc00e tsdemux: Handle PTS->TS at wraparound
This has been a FIXME for ages.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1179>
2021-10-18 11:23:25 +00:00
Rob Agar
66a24023c0 webrtcbin: fix prevention of webrtcbin deletion due to ref held by probe callback
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/810

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1150>
2021-10-18 10:42:12 +01:00
Seungha Yang
be9cf6c9cd d3d11: d3d11{convert,scale}: Add add-borders property
Functionally identical to that of videoscale element.

When disabled, d3d11convert or d3d11scale element will scale
image without adding borders, meaning that display aspect ratio
will not be preserved.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1170>
2021-10-17 12:36:28 +00:00
Víctor Manuel Jáquez Leal
ff0fae50af vapostproc: Add add-borders property to keep dar
Just as videoscale, it enables add-borders property (FALSE by default)
in vapostproc to add border, if necessary, to keep the display aspect
ratio from the original image.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1169>
2021-10-17 11:24:26 +00:00
Víctor Manuel Jáquez Leal
52c09778b7 vapostproc: Fix early fixation.
First copy missing fields and then fixate all remaining fields.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1169>
2021-10-17 11:24:26 +00:00
Tim-Philipp Müller
e7c8b23b71 ofa: remove ofa audio fingerprinting plugin
I think the MusicIP database for this has been defunct for years,
so I can't imagine this plugin is particularly useful or still
used by anyone.

See https://musicbrainz.org/doc/Fingerprinting#PUID

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1153>
2021-10-17 10:17:00 +00:00
Seungha Yang
47a53f5063 meson: wasapi2,mediafoundation: Work around Windows SDK header issue
Some SDK headers are not standard compliant, so MSVC will
complain when such headers are in use with "/permissive-" compile
option. Use "/Zc:twoPhase-" to work around the issue as documented in
https://docs.microsoft.com/en-us/cpp/build/reference/permissive-standards-conformance?view=msvc-160#windows-header-issues

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1174>
2021-10-17 08:01:47 +00:00
Thibault Saunier
a75382eaff meson: Mark newly fdkaac/ogg/vorbis as allow fallback
This way when the dep is `auto` we will fallback if the system
dependency is not available.

And use https to get libvorbis

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1171>
2021-10-16 09:52:23 -03:00
Seungha Yang
d0c86365d2 mediafoundation: Use GetProcAddress() for OS version dependent symbols
We are using some symbols which are not available on Windows 7,
specifically D3D11 interop related ones

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1167>
2021-10-16 18:07:06 +09:00
Víctor Manuel Jáquez Leal
ee7af02c3e vapostproc: Transfer colorimetry at fixate if possible.
Taken from videoconvert element.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1110>
2021-10-16 05:17:19 +00:00
Thibault Saunier
8b7b068d53 meson: Streamline the way we detect when to build documentation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1093>
2021-10-15 19:28:29 -03:00