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
Thibault Saunier
6e79932ad9
meson: List libraries and their corresponding gir definition
...
Introduces a `libraries` variable that contains all libraries in a
list with the following format:
``` meson
libraries = [
[pkg_name, {
'lib': library_object
'gir': [ {full gir definition in a dict } ]
],
....
]
```
It therefore refactors the way we build the gir so that we can reuse the
same information to build them against 'gstreamer-full' in gst-build
when linking statically
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1093 >
2021-10-15 19:27:30 -03:00
Thibault Saunier
e2dd28a753
meson: Mark files as files()
...
Making it more robust and future proof
And fix issues that it creates
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1093 >
2021-10-15 19:27:30 -03:00
Thibault Saunier
0e576127a5
bad:audio: Add generated files sources in declare_dependency
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1093 >
2021-10-15 19:27:30 -03:00
Seungha Yang
ba79339d56
mediafoundation: Fix various string constness handling
...
... with fixing typo (g_strup -> g_strdup)
Constness needs to be explicit in C++ world otherwise compiler
would complain about that.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1164 >
2021-10-15 23:38:48 +09:00
Rob Agar
f48c8f4d17
missing transceiver unref in WebRTC renegotiation example
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1160 >
2021-10-15 10:03:46 +01:00
Mengkejiergeli Ba
b57df4cfd1
tests:va: Fix null ptr dereference in multi-vpp
...
Dereference the pointer err before null check, which raised a null
pointer dereference issue by Coverity. Modify it to do the null check
of err first, then dereference it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1143 >
2021-10-15 00:45:45 +00:00
Mengkejiergeli Ba
4a6cc431d2
va: Fix null ptr dereference for vadeocder
...
Making a null check in gst_va_decode_picture_free () indicates pic->buffers or pic->slices
can be null, then in _destroy_buffers () the pointers are dereferenced, which is detected
as dereference after null check by Coverity. Thus, modify the code to do null check in
_detroy_buffers ().
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1143 >
2021-10-15 00:45:44 +00:00
Vivia Nikolaidou
23bf9f75b6
tsdemux: Handle delayed seek events
...
Store the event in case it cannot be processed immediately and process
it after the first segment has been produced.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/980 >
2021-10-14 21:45:00 +00:00
Vivia Nikolaidou
5800ffea0f
tsdemux: Protect demux->segment_event with a mutex
...
Would otherwise cause weird issues when processing a delayed seek event
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/980 >
2021-10-14 21:45:00 +00:00
Nicolas Dufresne
da464bde5f
codecs: h264: Fix wrong type of ret variable
...
This ret is not a GstFlowReturn. This broke v4l2 decoder which does not
implement new_picture() virtual function.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1154 >
2021-10-14 20:12:03 +00:00
Seungha Yang
b3710aa68d
d3d11: Rename screen capture element
...
Old name "desktopdup" may confuse users. Now it's renamed to
"screencapture"
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1136 >
2021-10-14 15:15:56 +00:00
Thibault Saunier
2dacd33e9e
transcoder: Set state back to NULL after run() finishes
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1063 >
2021-10-14 12:04:45 +00:00
Thibault Saunier
07908ccead
transcoder: Use full path for includes in 'gsttranscoder.h'
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1063 >
2021-10-14 12:04:45 +00:00
Mengkejiergeli Ba
8f678c95d6
va:display: Don't close an fd with negative value
...
Cannot pass negative parameter to close() and thus no need to apply
close() when fd < 0.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1131 >
2021-10-14 11:12:41 +00:00
Mengkejiergeli Ba
5e7aa06257
va: Fix error handling for decoder
...
Need to check if va decoder is closed successfully.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1131 >
2021-10-14 11:12:41 +00:00
Mengkejiergeli Ba
2eaba0cefa
va: Fix error handling for base transform
...
Need to check the returned value of gst_buffer_pool_set_active() when
setting the active status of buffer pool.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1131 >
2021-10-14 11:12:41 +00:00
Thibault Saunier
0a781424e6
meson:avtp: Error out if sock_txtime is not present and avtp is enabled
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1142 >
2021-10-14 01:01:54 +00:00
Seungha Yang
4dd0c6ce44
codecparsers: {h264,h265}parser: Fix typo around SEI nalu generator
...
Fix to create correct SEI nalu when the size of payloadType and/or
payloadType is larger than 255 (0xff)
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1601
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1106 >
2021-10-13 17:21:52 +00:00
Víctor Manuel Jáquez Leal
a2aa2cda42
vapostproc: Negotiate interlaced.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1109 >
2021-10-13 14:59:09 +00:00
Víctor Manuel Jáquez Leal
60be3dbd2a
vapostproc: Copy missing fields at fixate.
...
When caps negotiation implies a caps feature change, some fields might
get lost. This patch brings them back from input caps.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1109 >
2021-10-13 14:59:09 +00:00
Víctor Manuel Jáquez Leal
5ae1072c2f
vapostproc: Simplify size fixate.
...
gst_va_vpp_fixate_size() returned the fixated caps, but that is not
needed since `othercaps` are modified inline.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1109 >
2021-10-13 14:59:09 +00:00
Víctor Manuel Jáquez Leal
b53446ddc9
vapostproc: Simplify fixate.
...
The first approach to fixate was simply a copy&paste of both
videoconvert and videoscale, trying to keep their logic as isolated
as possible. But that brought duplicated and sparse logic.
This patch merge both approaches simplifying the fixate operation.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1109 >
2021-10-13 14:59:09 +00:00
Víctor Manuel Jáquez Leal
1642c3fc96
va: filter, deinterlace, vpp: Add gst_va_buffer_get_surface_flags().
...
Add a helper function to get, from GstVideoInfo and GstBuffers flags,
the VA interlace surface flags. This is used currently by vainterlace
element, but it will be used in vapostproc too if it can process
interlaced frames.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1109 >
2021-10-13 14:59:09 +00:00
Mengkejiergeli Ba
40d559adcf
msdkenc: fix vp9enc initialization fail
...
MediaSDK does not support to handle extbuff with id
MFX_EXTBUFF_VIDEO_SIGNAL_INFO for mjpegenc and vp9enc. Hence, need to
exclude mjpeg and vp9 when passing color properties to MediaSDK during
msdkenc initialization.
Fix issue: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/764
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1101 >
2021-10-12 03:45:41 +00:00
Seungha Yang
1bf237e767
examples: d3d11: Add a desktop capture example
...
... with d3d11 desktop capture device provider
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1103 >
2021-10-11 15:21:26 +00:00
Seungha Yang
4b85704b88
d3d11: Add device provider for d3d11desktopdupsrc
...
... and add support for multi-GPU/multi-monitor
By using newly added "monitor-handle" property, user can specify a
monitor to be captured via HMONITOR handle.
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1673
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1103 >
2021-10-11 15:21:26 +00:00
Stéphane Cerveau
2200a3dbcd
ttml: fix log init
...
The log system should be init before calling a log
Fix regression after:
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1112 >
2021-10-11 15:23:08 +02:00
Víctor Manuel Jáquez Leal
1cfae69bc9
tests: va: Add VA buffer copy tests.
...
It should only work for raw buffers, but fails on dmabuf since it
should have a drm modifier.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1023 >
2021-10-10 17:03:29 +00:00