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
Víctor Manuel Jáquez Leal
35575e7b11
va: allocator: dmabuf: Use GstVaSurfaceCopy, if possible.
...
If dmabuf-based buffer to copy contains only one memory, and there are
memories available in the allocator's pool, it's possible a fast
memory copy using GstVaSurfaceCopy, regardless the drm modifier.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1023 >
2021-10-10 17:03:29 +00:00
Víctor Manuel Jáquez Leal
cf751d54a9
va: allocator: Use GstVaSurfaceCopy.
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1023 >
2021-10-10 17:03:29 +00:00
Víctor Manuel Jáquez Leal
ffa2522fc0
va: Add GstVaSurfaceCopy class.
...
This new class is a helper for fast/tricky copy of surfaces. First it
tries to copy using the function vaCopy in libva 1.12. If it fails, or
it's not available, a GstVaFilter is tried to be instantiated with the
allocator's parameters, and if succeed, it's used for copying the
source surface.
This is required for dmabuf surfaces with drm modifier.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1023 >
2021-10-10 17:03:29 +00:00
Víctor Manuel Jáquez Leal
f1e2eb4f1e
va: filter: Enable to pass VASurfaceID in GstVaSample.
...
Initially GstVaSample processed its GstBuffer member to get the
VASurfaceID. But it might cases where we already have the VASurfaceID
to process by the filter.
This patch enables the possibility to pass the surfaces rather than
the buffers. In order to validate the surfaces a function to check
surfaces were added.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1023 >
2021-10-10 17:03:29 +00:00
Víctor Manuel Jáquez Leal
14156f8270
va: Split VA memory handling in different files.
...
Take out the VA memory wrappers from gstvallocator.c to an external
file exposing the functions.
This is going to be needed for the copy helper object.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1023 >
2021-10-10 17:03:29 +00:00
Víctor Manuel Jáquez Leal
1be43e76cc
va: allocator: Add missing header file.
...
Added stdint.h because uintptr_t is used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1023 >
2021-10-10 17:03:29 +00:00
Víctor Manuel Jáquez Leal
2947bd6ef1
va: display: Add gst_va_display_has_vpp()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1023 >
2021-10-10 17:03:29 +00:00
Benjamin Gaignard
7e9e17ebbe
v4l2codecs: Align v4l2-controls header with kernel 5.15-rc3
...
Update v4l2-controls to be aligned with kernel 5.15-rc3.
Fix VP8 decoder to use the correct field name.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1081 >
2021-10-10 15:50:57 +00:00