Commit graph

115702 commits

Author SHA1 Message Date
Taruntej Kanakamalla ba49efa8f2 Updated the GObject tutorial link
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2723>
2022-11-11 12:17:40 +00:00
Nicolas Dufresne b57135e09c rawvideoparse: Fix support for sub-sampled tile
This element was missed as it does not use the new helpers to calculate the
plane size. The code is relatively simple though, so adding support for
subsample tiles was easy enough.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3385>
2022-11-11 11:02:15 +00:00
Matthew Waters 5ca3988420 webrtc/datachannel: handle error messages from appsrc/sink
Fixes a possible race where closing a data channel may produce e.g.
not-linked errors.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3381>
2022-11-11 10:13:27 +00:00
Matthew Waters a34e380e2e sctpdec: fix stream reset (src pad removal) if no data is ever received
If we don't receive any data from usrsctp, then there will be no src pad
for the stream id and the stream reset will fail to remove the relevant
src pad.  Workaround by first attempting to add the relevant src pad, then
almost immediately removing it.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3381>
2022-11-11 10:13:27 +00:00
He Junyan b010f00d36 test: Correct the test suite name of the h264 and h265 bitwriter.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3384>
2022-11-11 08:19:01 +00:00
Colin Kinloch 99fc124f25 videocrop, videobox: Simplify navigation event handling and support touch events
Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3053>
2022-11-11 06:45:49 +00:00
Colin Kinloch 841f50f0d9 va: Fix vapostproc navigation event co-ordinate mapping
Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3053>
2022-11-11 06:45:49 +00:00
Colin Kinloch e1d71aedbc vaapi: Use gst_video_orientation_from_tag to parse orientation
Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3053>
2022-11-11 06:45:48 +00:00
Colin Kinloch d7aba91518 videoflip: Use gst_video_orientation_from_tag to parse orientation
Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3053>
2022-11-11 06:45:48 +00:00
Colin Kinloch d54e597278 va: Use gst_video_orientation_from_tag to parse orientation
Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3053>
2022-11-11 06:45:48 +00:00
Tong Wu ef4fc11193 msdkvpp: delete the macros to make video memory work on Windows
Since gst_msdk_import_to_msdk_surface has been implemented for d3d11, we
delete the macros to make it work on Windows.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>
2022-11-11 06:02:28 +00:00
Tong Wu 7becf35221 msdkvpp: modify the way of copying system memory to msdk surface
Replace video_copy with memcpy to fix the issue when the sizes of the
src frame and dst frame don't match. Moreover, for Windows, you have to
do the copy first and call gst_msdk_import_to_msdk_surface later.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>
2022-11-11 06:02:28 +00:00
Tong Wu 9a6dd525f7 msdkvpp: add d3d11 support during negotiation
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>
2022-11-11 06:02:28 +00:00
Tong Wu a55808d299 msdkvpp: add d3d11 video memory to sink and src caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>
2022-11-11 06:02:28 +00:00
Tong Wu 78523c5130 msdkvpp: delete use_sinkpad_va and use_srcpad_va
This two variables are no longer useful. Delete them for now.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>
2022-11-11 06:02:28 +00:00
Tong Wu f25f528120 msdkenc: modify the way of copying system memory to msdk surface
Replace video_copy with memcpy to fix the issue when the sizes of the
src frame and dst frame don't match. Moreover, for Windows, you have to
do the copy first and call gst_msdk_import_to_msdk_surface later.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>
2022-11-11 06:02:28 +00:00
Tong Wu f6e207eb1b msdkallocator_d3d: add d3d11 video memory and import it to msdk surface
This patch introduces d3d11 texture and index to GstMsdkMemoryID and
implements gst_msdk_import_to_msdk_surface in order to wrap the surface
to mfxMemId.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>
2022-11-11 06:02:28 +00:00
Tong Wu 7f18f11a90 msdkallocator_d3d: implement GetHDL callback function
During encoding process, oneVPL runtime will call GetHDL callback function.
This patch implements this function for the use of msdk.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>
2022-11-11 06:02:28 +00:00
Tong Wu 86d22b2e38 msdkallocator: add a parameter to function gst_msdk_import_to_msdk_surface
Add a flags parameter to function gst_msdk_import_to_msdk_surface and
move the function declaration to gstmsdkallcator.h to prepare for adding
Windows implementation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>
2022-11-11 06:02:28 +00:00
Tong Wu abe47f3fa0 msdkenc: add d3d11 pool during negotiation
This patch adds Windows specific set_format and propose_allocation
functions to enable creating d3d11 pools during negotiation.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>
2022-11-11 06:02:28 +00:00
Tong Wu c62deb6fe9 msdkenc: add D3D11 caps for msdkenc
This patch adds D3D11 feature to sink factory for msdkenc.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>
2022-11-11 06:02:28 +00:00
Tong Wu d61a248ac8 MSDK: Introduce d3d11 device to MSDK context
Currently MSDK context does not support d3d11va. Now introduce d3d11va
device to MSDK context, making it able to create msdk session with d3d11
device and to easily share with upstream and donwstream.

Add environment variable to enable user to choose GPU device in multi-GPU
environment. This variable is only valid when there's no context
returned by upstream or downstream. Otherwise it will use the device
that created by upstream or downstream.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>
2022-11-11 06:02:28 +00:00
Tong Wu 11e13b189d MSDK: Add gst d3d11 lib into MSDK's dependency
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3231>
2022-11-11 06:02:28 +00:00
Víctor Manuel Jáquez Leal eb0f90f6ec vafilter: Log out processed surfaces for debug.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3373>
2022-11-11 04:19:54 +00:00
Víctor Manuel Jáquez Leal bc4aa017ac vadeinterlace, vapostproc: Drop output buffer if process failed.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3373>
2022-11-11 04:19:54 +00:00
Daniel ccfb77c775 debugutils: videocodectestsink: add support for more formats
Add support for more formats so as to run the libvpx high bit depth test suite.
This means the files under CONFIG_VP9_HIGHBITDEPTH

This also allows running the yuv444p 8bit file in the regular 8 bit vp9 suite.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3356>
2022-11-10 15:26:22 +00:00
Elliot Chen 4020542b3c gstplay: fix segmentation fault caused by subtitle info update
For subtitle stream played by subrui, gstplay will update subtitle
information before select the stream by using playbin3. Need check
the subtitle_sid value to avoid segmentation fault.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3383>
2022-11-10 14:07:39 +00:00
Christian Wick 60a7366d27 gst-rtsp-server: compile example for onvif backchannel testing
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3363>
2022-11-10 13:04:04 +02:00
Christian Wick 2498457b2f rtspsrc: Introduce new action signal push-backchannel-sample with correct ownership semantics
Signals are not supposed to take ownership of their arguments but only
borrow them for the scope of the signal emission.

The old action signal `push-backchannel-buffer` is now marked deprecated.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3363>
2022-11-10 13:04:04 +02:00
Guillaume Desmottes 9eee5adb24 gssink: add 'content-type' property
Useful when one wants to upload a video as `video/mp4` instead of
'video/quicktime` for example.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3371>
2022-11-10 09:53:29 +00:00
Matthew Waters e2ff6b61ce cccombiner: initial implementation of using CCBuffer helper
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211>
2022-11-10 00:52:14 +00:00
Matthew Waters 088597b430 closedcaption: move CC buffering to helper object
Move most of the interesting code from ccconverter to this new helper
object.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211>
2022-11-10 00:52:14 +00:00
Matthew Waters 06a20f9243 closedcaption: move cdp->cc_data into shared location
So it can be used by both ccconverter and cccombiner

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211>
2022-11-10 00:52:14 +00:00
Matthew Waters fde92ec43f closedcaption: move cc_data->cdp to shared file
Used by both ccconverter and cccombiner

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211>
2022-11-10 00:52:14 +00:00
Matthew Waters 9f1b54f6ee ccconverter: avoid different indent versions indenting !! differently.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211>
2022-11-10 00:52:14 +00:00
Matthew Waters 067185e7da closedcaption: move cdp framerate table to common file
shared by both cccombiner and ccconverter

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211>
2022-11-10 00:52:14 +00:00
Matthew Waters 5dd199f7e8 cccombiner: don't assume a single cea608 data packet per buffer
e.g. 24fps can have up to 3 and would include either two field0 or
field1 cea608 data.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211>
2022-11-10 00:52:14 +00:00
Matthew Waters 741cfd18b5 ccconverter: drop data when overflow on extracting cea608 from cc_data
If the buffer overflows, then drop rather than causing a failure and
fropping the output buffer indefinitely.  This may have caused downstream to
be waiting for data the will never arrive.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211>
2022-11-10 00:52:14 +00:00
Matthew Waters 542060fea7 ccconverter: fix framerate passthrough with malformed input
If an input is malformed (only produces cea608 field 1 cc_data) then
when in passthrough we would effectively be dropping every second cea608
on output as we would not store any unused cea608 data.

Fix by having all code paths go through the framerate conversion code
which will store and retrieve any relevant data across buffers.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3211>
2022-11-10 00:52:14 +00:00
Seungha Yang b36b9c7821 amfcodec: Fix typos
Fixing typo surfrace -> surface

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3378>
2022-11-09 23:02:21 +00:00
Seungha Yang 93b6cf7adb mfvideosrc: Return S_OK from ISampleGrabberCB callback
The Microsoft's ISampleGrabber implementation seems to be ignoring
the HRESULT return value from the callback though,
S_OK is the right HRESULT code.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3379>
2022-11-10 06:03:45 +09:00
Nicolas Dufresne aaa01ac30a gstgl: Fix handling of padded tile formats
When a tile format is padded and imported as DMABuf, the stride
contains the information about the actual width and height in
number of tiles. This information is needed by the detiling shader
in order accuratly calculate the location of pixels. To fix that,
we also copy the offset and strides into the otuput format and
the converter will ensure that the shader is recompiled whenever
the stride changes.

This fixes video corruptions observed when decoding on MT8195
with videos that aren't not aligned to 64bytes in width.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3365>
2022-11-09 17:15:32 +00:00
Edward Hervey e3637e3207 childproxy: Fix documentation
Warning: Gst: gst_child_proxy_get_child_by_name_recurse: unknown parameter
'parent' in documentation comment, should be 'child_proxy'

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3370>
2022-11-09 16:03:58 +00:00
Mengkejiergeli Ba 51f92fd15f vaapi: Add new dmabuf mem type when building caps
Media-driver will return dmabuf mem type GST_VAAPI_BUFFER_MEMORY_TYPE_DMA_BUF2
on the latest platform like Gen12. To enable build caps using dmabuf, need to
add the check for this type at gst_vaapi_build_caps_from_format.

This patch is a portion from Junyan.He@intel.com
https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/393

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1287>
2022-11-09 13:41:26 +00:00
Mengkejiergeli Ba d8a477338f vaapipostproc: Enable to use DMABuf mem at sink and src pad
Enable DMABuf mem at both sink and src pad for vaapipostproc caps which
helps to apply DMABuf for more generic use cases: such as "! vaapih264dec !
video/x-raw(memory:DMABuf) ! vaapipostproc ! video/x-raw (memory:DMABuf)
! vaapih265enc"  . Or other mem converions like from DMABuf to VASurface
through vaapipostproc.

This patch is a portion from Junyan.He@intel.com
https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/-/merge_requests/393

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1287>
2022-11-09 13:41:26 +00:00
Seungha Yang 99b83f33f7 d3d11screencapturesrc: Specify PAR 1/1 to template caps
... otherwise PAR can be wrongly signalled during the negotiation

Fixing below pipeline when desktop resolution is not 640x480
gst-launch-1.0.exe \
  d3d11screencapturesrc ! videoscale !
  video/x-raw,width=640,height=480,pixel-aspect-ratio=1/1 ! d3d11videosink

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3360>
2022-11-09 11:22:06 +00:00
Víctor Manuel Jáquez Leal 7f4f11503c tests: examples: va: Add encoders dynamic reconfiguration.
Take the QSV encoder test and used it for VA.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466>
2022-11-09 06:15:23 +01:00
Víctor Manuel Jáquez Leal 1f7cf1d408 va: caps: Fix raw caps for H264 encoding.
Mesa gallium and Intel i965 ill reports unsupported video formats.

This commit reverts ecb12a05 and adds a deeper workaround, since
ecb12a05 only fix the template caps, but not when renegotation
happens.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466>
2022-11-09 06:15:23 +01:00
Víctor Manuel Jáquez Leal 4994487b8f vabaseenc: Log out the flow error name.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466>
2022-11-09 06:15:23 +01:00
Víctor Manuel Jáquez Leal dbf8c38667 vah264enc: Enable parameters change while running.
1. Removes the verification if the internal encoder is not opened
   yet to allow the property setting.

2. And toggles on the base class' reconf flag for each property
   variable that can be modified at run time.

3. Mark those modifiable properties as mutable while playing.

Currently the run-time modifiable properties are:

qpi, qpp, qpb, bitrate, target percentage, target usage and rate control

Other properties can be enabled too, but they need testing.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2466>
2022-11-09 06:15:21 +01:00