Víctor Manuel Jáquez Leal
94250e8c31
msdk: remove libva check before 1.12
...
Since gstmsdk depends on gstva library it also bumps the required version.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4781 >
2023-06-08 08:50:05 +00:00
Mengkejiergeli Ba
a15a16c99b
msdkenc: Add a property to insert pic timing SEI for avc and hevc
...
User can decide whether to insert pic timing sei with pic_struct
syntax via oneVPL API mfxExtCodingOption.PicTimingSEI.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4673 >
2023-05-29 02:11:20 +00:00
Ma, Mingyang
a2e83a019a
msdkdec: Fix decoding cases with resolution change (VP9)
...
The resolution of VP9 video can be changed without keyframe.
The change detected by MSDK/VPL should be negotiated with downstream.
Only the situation can be fixed here if the changed resolution is less than or equal to the initial surface resolution.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4450 >
2023-05-19 05:51:36 +00:00
Yinhang Liu
76fe73806b
msdkenc: Remove unsupported image formats for MSDK path
...
For unsupported encoding formats, please use msdkvpp plugin
to do conversion first.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4000 >
2023-05-19 00:02:09 +00:00
Yinhang Liu
f292b6061c
msdkenc: Remove internal vpp function
...
The internal vpp function and msdkvpp plugin are duplicated,
so remove the internal vpp, please use msdkvpp plugin to do
conversion if necessary.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4000 >
2023-05-19 00:02:08 +00:00
Mengkejiergeli Ba
7613e50cbb
bad:docs: Add new properties description for msdkh264enc and msdkh265enc
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4589 >
2023-05-18 17:53:44 +00:00
Mengkejiergeli Ba
7d993f930b
msdkenc: Add properties max/min-qp for I/P/B frame separately in avc and hevc
...
max-qp and min-qp will set the same quantizer scale for I/P/B frames,
while max-qp-i/p/b and min-qp-i/p/b enable the max/min quantizer for I,P,B
frame separately. When max/min-qp and max/min-qp-i/p/b are given
simultaneously, the later set one will overide the previous one.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4589 >
2023-05-18 17:53:44 +00:00
Yinhang Liu
c5748c2051
msdkmjpegdec: Fix ColorFormat for BGRx format
...
For msdkmjpegdec, the BGRx format is supported in src caps,
set the ColorFormat to MFX_JPEG_COLORFORMAT_RGB.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4489 >
2023-05-15 05:41:35 +00:00
Yinhang Liu
3883ae8c2a
msdk: Fix initialization of the msdk_session.impl_idx
...
This fixes the issue of msdk_session.impl_idx not being initialized.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4448 >
2023-05-15 01:22:29 +00:00
Tong Wu
b05659859a
msdk: fix a not referenced build error
...
Error Type: error C4189: ‘dma_caps’: local variable is initialized but not referenced
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4587 >
2023-05-10 07:57:45 +00:00
Yinhang Liu
cb5c0e47c8
msdk: Remove unreachable statement
...
The execution cannot reach the statement: "gst_caps_unref(dma_caps);",
so remove it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4449 >
2023-05-09 05:57:06 +00:00
Yinhang Liu
35177b81b3
msdk: Fix segfault for OneVPL dispatcher + legacy MSDK runtime path
...
From the spec, the OneVPL dispatcher should be able to work with
legacy MSDK runtime:
https://www.intel.com/content/www/us/en/docs/onevpl/upgrade-from-msdk/2023-1/onevpl-hardware-support-details.html
Currently supported capabilities:
OneVPL dispatcher + OneVPL runtime: dynamic capability
MSDK dispatcher + MSDK runtime: static capability
MSDK dispatcher + OneVPL runtime: static capability
OneVPL dispatcher + legacy MSDK runtime: static capability
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2506
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4466 >
2023-04-25 08:09:29 +00:00
Yinhang Liu
e97b5ad355
msdk: Add NumFilters check for VPP description
...
When NumFilters is equal to 0, the function should return
immediately.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4466 >
2023-04-25 08:09:29 +00:00
Yinhang Liu
ca125bd304
msdk: Add return when creating caps fails for VPP
...
When creating caps fails, the function should return immediately
and should not continue to register the plugin.
This patch fixes the issue of "gst_mini_object_ref: assertion
'mini_object != NULL' failed" in
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2506
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4466 >
2023-04-25 08:09:29 +00:00
Nicolas Dufresne
e709e2d97c
meson: Add a wrap file for libgudev
...
And allow fallback to it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4447 >
2023-04-19 22:47:19 +00:00
Yinhang Liu
75af296b82
msdkvpp: Enable dynamic capability support
...
Enable dynamic capability support for msdkvpp. The gstmsdkvpp
element can create the sink caps and src caps dynamically for
different platforms.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:06 +00:00
Yinhang Liu
b1ebe93eb2
msdkvpp: Add function to dynamically create sink caps and src caps
...
We need to create the sink caps and src caps dynamically for different
platforms. By default, the vpp init function create static pad template
and the compatibility and flexibility of the platform are too poor.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:06 +00:00
Yinhang Liu
bfbde5ce22
msdkdec: Enable dynamic capability support
...
Enable dynamic capability support for msdkav1dec, msdkh264dec,
msdkh265dec, msdkmjpegdec, msdkmpeg2dec, msdkvc1dec, msdkvp8dec,
msdkvp9dec.
The gstmsdkdec elements can create the sink caps and src caps
dynamically for different platforms.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:06 +00:00
Yinhang Liu
aa59d9828f
msdkdec: Add function to dynamically create sink caps and src caps
...
We need to create the sink caps and src caps dynamically for different
platforms. By default, the dec init function create static pad template
and the compatibility and flexibility of the platform are too poor.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:06 +00:00
Yinhang Liu
a4fc1c5031
msdkenc: Add documented capabilities to expose "stable" caps
...
Although msdkenc supports dynamic caps, it still needs to expose
"stable" caps to users.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:06 +00:00
Yinhang Liu
da4b6f17cf
msdkenc: Support image formats in low power mode for sink caps
...
There are some special image formats in low power mode, these
image formats should be supported in sink caps.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:06 +00:00
Yinhang Liu
3cb9c34030
msdkenc: Remove static templates in format setting
...
The elements have supported dynamic capability query, and it is not
necessary to refer the static templates.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:06 +00:00
Yinhang Liu
30d3ce3a9e
msdkenc: Enable dynamic capability support
...
Enable dynamic capability support for msdkav1enc, msdkh264enc,
msdkh265enc, msdkmjpegenc, msdkvp9enc, msdkmpeg2enc.
The gstmsdkenc elements can create the sink caps and src caps
dynamically for different platforms.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:06 +00:00
Yinhang Liu
7aa0b29da8
msdk: Add function to specify string array parameters
...
Sometimes it is necessary to manually specify string parameters
of multiple options, such as format, interlace-mode, etc.
Add function to support this requirment.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:06 +00:00
Yinhang Liu
1f8d939559
msdkenc: Add function to dynamically create sink caps and src caps
...
We need to create the sink caps and src caps dynamically for different
platforms. By default, the enc init function create static pad template
and the compatibility and flexibility of the platform are too poor.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:05 +00:00
Yinhang Liu
3f47cdaee8
msdk: add function to get the format list
...
This static format list will be used to check the formats
supported by the platform.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:05 +00:00
Yinhang Liu
97e081c9d6
msdk: Register elements based on the codecs supported by the platform
...
By default, msdk plugin will register all encoders and decoders
on any platform, even unsupported encoders and decoders will be
registered. Dynamically register encoders and decoders besed on
the supported codecs on different platforms.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:05 +00:00
Yinhang Liu
f773752bd8
msdk: Add function to get the implementation description
...
Through the implementation description, we can dynamically obtain
the codec capabilities supported by the platform.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:05 +00:00
Yinhang Liu
34a812a0c0
msdk: Add functions to get data members from MsdkSession
...
When getting mfxImplDescription, these data members need to
be used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:05 +00:00
Yinhang Liu
6242fca526
msdk: Create msdk context without job_type
...
The job_type is not necessary when creating a normal msdk
context. Make the APIs for creating context more flexible.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:05 +00:00
Yinhang Liu
dafb801a18
msdk: Move all _gst_caps_has_feature to gstmsdkcaps.c
...
_gst_caps_has_feature is used by all msdk elements, so
move it to gstmsdkcaps.c
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4177 >
2023-04-17 05:24:05 +00:00
Mengkejiergeli Ba
471f3b3b93
msdkcontext: Remove unused codes in msdkcontext
...
We don't maintain three list (i.e. avail, locked and used) surfaces
as the old way did to achieve memory management, so remove the
correcponding codes for old memory management.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4276 >
2023-04-11 06:59:33 +00:00
Mengkejiergeli Ba
ec2ef6e2d3
msdk: Remove unused gstmsdkbufferpool and memory
...
GstMsdkBufferPool, GstMsdkVideoMemory and GstMsdkSystemMemory are no
longer used in msdk plugins, instead we use va/d3d11 pool for memory
allocation. So, remove the codes of unused stuffs.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4276 >
2023-04-11 06:59:33 +00:00
Mengkejiergeli Ba
ef1397cbe3
msdk: Remove the func gst_msdk_is_msdk_buffer
...
Since we use va/d3d11 pool to allocate memory, the old msdk bufferpool
stuffs are not used anymore, so we don't need to check if an input
buffer is msdk buffer using gst_msdk_is_msdk_buffer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4276 >
2023-04-11 06:59:33 +00:00
Tong Wu
ebc9780c5f
msdkdec: delete use_video_memory
...
Since msdkdec uses video pool as the output buffer pool at all time. The
use_video_memory variable is not useful anymore. Now delete it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4088 >
2023-03-22 05:07:19 +00:00
Tong Wu
8105d2044d
msdkdec: expand retry times to 1s
...
One-frame sleep time is not enough to wait until there is a surface
unlocked from downstream. Now expand it to 1s and add a return when
fail.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4088 >
2023-03-22 05:07:19 +00:00
Tong Wu
123c8d14c1
msdkallocator_d3d: add gst_msdk_frame_free callback function
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4088 >
2023-03-22 05:07:19 +00:00
Tong Wu
abe4d0046a
msdkdec: acquire buffer from video pool on Windows
...
Video memory is available on Windows. This patch is to make the buffers
acquired from d3d11 video pool.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4088 >
2023-03-22 05:07:19 +00:00
Tong Wu
d2902be9eb
msdkdec: add thiz->ds_has_known_allocator for d3d11
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4088 >
2023-03-22 05:07:19 +00:00
Tong Wu
245df2778e
msdkallocator_d3d: add alloc callback function for d3d allocator
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4088 >
2023-03-22 05:07:19 +00:00
Tong Wu
b3e13df8c1
msdkdec: add d3d11 pool during negotiation
...
Enable use_video_memory for Windows and add d3d11 pool.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4088 >
2023-03-22 05:07:19 +00:00
Tong Wu
2b9cda928b
msdkdec: add d3d11 caps for srcpad
...
Set decoder srcpad with D3D11Memory.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4088 >
2023-03-22 05:07:19 +00:00
Mengkejiergeli Ba
9e3faf69f2
msdkvpp: Pass null formats when create va allocator for RGB565
...
Fix https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1780
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4136 >
2023-03-21 05:42:34 +00:00
Tim-Philipp Müller
81716a1097
gst-plugins-bad: re-indent with GNU indent 2.2.12
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4182 >
2023-03-17 03:18:54 +00:00
Teng, Jin Chung
83364c5729
msdkh264enc: Adding BGRx format DMABuf support
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4167 >
2023-03-15 15:06:57 +00:00
Yinhang Liu
89a6ce105b
msdkenc: Fix scale ratio for frame duration
...
For the calculation of frame duration, the numerator
should be FrameRateExtD, and the denominator should be
FrameRateExtN.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4119 >
2023-03-06 13:57:01 +08:00
Yinhang Liu
5c47002d99
msdkvpp: correct the fixated caps for src pad
...
In src pad, fixate othercaps instead of the NULL result caps
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3999 >
2023-03-02 07:21:10 +00:00
Mengkejiergeli Ba
28e2eccf55
msdkenc: Set pts at handle_frame
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3998 >
2023-03-01 01:42:50 +00:00
Mengkejiergeli Ba
799c6ff860
msdkdec: Check available surfaces when all pre-allocated surfaces are in use
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3439 >
2023-02-27 12:22:13 +00:00
Mengkejiergeli Ba
3062f1b6b0
msdkdec: Apply the modified memory allocation logic
...
We did several things to enable the new memory logic in msdkdec:
(1) We always use video memory for decoder in linux path;
(2) We give negotiated pool to alloc_pool stored in GstMsdkContext which
will be used in callback mfxFrameAllocator:Alloc to alloc surfaces as
MediaSDK needs, and this pool is also available for decoder itself;
(3) We modify decide_allocation process, that is we make pool negotiaion
before gst_msdk_init_decoder to ensure the pool is decided and ready for
use in mfxFrameAllocator:Alloc callback; then we will consider the case
when we need to do the gpu to cpu copy.
(4) In gst_msdkdec_finish_task, we modify the way for copy following the
logic in (3).
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3439 >
2023-02-27 12:22:13 +00:00
Mengkejiergeli Ba
75efb204e5
msdkdec: Add a function to create va pool
...
Add a pool creation function name as 2 for later use which will create
va pool for video memory in linux and keep system pool for windows.
This gst_msdkdec_create_buffer_pool2 will replace gst_msdkdec_create_buffer_pool
when all the memory allocation modifications are ready in the commits after.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3439 >
2023-02-27 12:22:13 +00:00
Mengkejiergeli Ba
8459349963
msdkallocator_libva: Rewrite gst_msdk_frame_alloc
...
Rewrite gst_msdk_frame_alloc and name it as xxx_2 before applying it.
It uses negotiated bufferpool stored in GstMsdkContext to allocate buffers
in the callback MfxFrameAllocator:Alloc, then extract VASurface from buffer,
wrap it as mfxMemIDs and pass these IDs to MediaSDK/oneVPL.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3439 >
2023-02-27 12:22:13 +00:00
Mengkejiergeli Ba
4124b8ffd4
msdkdec: Add a function to directly allocate output GstMsdkSurface
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3439 >
2023-02-27 12:22:13 +00:00
Mengkejiergeli Ba
b2001c1ca5
msdk: Add a bufferpool in GstMsdkContext structure
...
This alloc_pool is the negotiated pool and will be used in
mfxFrameAllocator:Alloc to create surfaces.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3439 >
2023-02-27 12:22:13 +00:00
Mengkejiergeli Ba
3b0d300759
msdkdec: Enable va caps at srcpad
...
Set caps with VA memory at src pad with a higher priority, then comes
dmabuf caps.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3439 >
2023-02-27 12:22:13 +00:00
Mengkejiergeli Ba
4e60e91a05
msdkdec: Fix some lock issue
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3947 >
2023-02-20 09:38:09 +08:00
Yinhang Liu
b5357cbcbc
msdkav1enc: fix the category for msdkav1enc debug
...
The msdkav1enc debug initialized with gst_msdkav1dec_debug,
fix this.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3985 >
2023-02-17 16:02:58 +08:00
Ma, Mingyang
99cdc3a965
msdkenc: Let runtime decide parameters
...
Some parameters can be determined by runtime instead of default values. So unset the default and let runtime choose the best parameters
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3660 >
2023-02-06 02:24:54 +00:00
Mengkejiergeli Ba
dfe16a5cf2
msdkallocator: Use const ptr of videoinfo in func param
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3621 >
2023-02-01 04:31:23 +00:00
Brad Hards
29dd254f7a
h264parser: typo fix in enum value
...
Old value is marked deprecated, new enum with same entry is added. Should be binary compatible.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1318 >
2022-12-12 21:43:14 +00:00
Ma, Mingyang
66087b6276
msdkdec: Update decoding pts
...
Update frame pts before calling gst_video_decoder_finish_frame, or frames may be lost when transcoding in specific stream
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3449 >
2022-11-25 01:42:58 +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
Tong Wu
60f7467dfe
msdkcontext: use gst_object_unref instead of g_object_unref
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3301 >
2022-11-02 07:40:59 +00:00
Tong Wu
bae66c8ae0
msdkcontext: use gst_object_ref for GstVaDisplay
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3301 >
2022-11-02 07:40:59 +00:00
Tong Wu
c9cc92a20a
msdkcontext: g_object_new() must not return nullptr
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3301 >
2022-11-02 07:40:59 +00:00
Tong Wu
7b03da634b
msdkenc: use GST_CAPS_FEATURE_MEMORY_VA to check the feature
...
Add macros to protect sinkpad_is_va(), since it is not defined on
Windows.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3301 >
2022-11-02 07:40:59 +00:00
Mengkejiergeli Ba
13be7cbe86
msdkvpp: Set va mem caps as higher priority
...
We use va pool as msdkvpp's bufferpool, which means both va memory
and dma memory will be allocated by va pool. Considering drm modifier
stuff is not ready, we use va memory with higher priortiry than
dma memory when deciding vpp caps.
Besides, this patch removes the specified "interlace-mode" in vpp caps.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3253 >
2022-10-27 11:12:08 +00:00
Mengkejiergeli Ba
c989d023fd
msdkav1enc: Remove reorder TU workaround
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3225 >
2022-10-27 07:07:38 +00:00
Mengkejiergeli Ba
78a7c6318a
msdkav1enc: Remove pts workaround
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3225 >
2022-10-27 07:07:38 +00:00
Mengkejiergeli Ba
2c1315cae9
msdkvpp: Fix upper frc
...
Refact vpp commit 4c6b719445
broke the
upper FRC, here to fix this by using outbuf_new.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3223 >
2022-10-27 05:17:12 +00:00
Mengkejiergeli Ba
27216d6f2e
bad: Add msdkav1enc docs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2971 >
2022-10-27 04:02:10 +00:00
Mengkejiergeli Ba
03a24de4cb
msdkav1enc: We should not set other alignment here
...
According to spec, we have 32bit alignment for height (progressive) and
16bit alignment for width, so here we don't need to add other alignment
settings.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3050 >
2022-09-20 16:25:15 +08:00
Mengkejiergeli Ba
da9479a034
msdkvpp: Add va memory when fixating src caps
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498 >
2022-09-02 11:06:29 +08:00
Mengkejiergeli Ba
bb79853d20
msdkvpp : Use va pool at linux path and system pool for windows
...
We use msdkvpp's own pool to allocate buffers instead of external frame
allocator mfxFrameAllocator.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498 >
2022-09-02 11:06:29 +08:00
Mengkejiergeli Ba
4c6b719445
msdkvpp: Import buffer to msdk_surface
...
If the buffer is not msdk_buffer, we can try to directly import the
attached memory (i.e. va mem and dmabuf mem) by applying the common
uitl function: import_to_msdk_function ().
Here add a flag "from_qdata" in GstMsdkSurface to handle the cropping case,
we should avoid updating the crop values when msdk_surface is from the
memory's qdata, because the crop info from this surface is the already
updated one.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498 >
2022-09-02 11:06:29 +08:00
Mengkejiergeli Ba
45819899c3
msdkvpp: Add va caps at sink and src pad
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498 >
2022-09-02 11:06:29 +08:00
Mengkejiergeli Ba
966a2c3754
msdkenc: Apply common util func to import mem as msdk_surface
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498 >
2022-09-02 11:06:29 +08:00
Mengkejiergeli Ba
2854af85fd
msdk: Add help functions to get mfxFrameSurface1 from GstBuffer and wrap it as GstMsdkSurface
...
Note that the memory abstraction for system memory is for windows path.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498 >
2022-09-02 11:06:29 +08:00
Mengkejiergeli Ba
23f5bdcee7
msdkenc: Use va pool on linux and system pool for windows
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498 >
2022-09-02 11:06:29 +08:00
Mengkejiergeli Ba
956dc40fb8
msdkenc: Directly import dmabuf memory as mfx surface
...
When input buffer is of dmabuf memory but not a msdk buffer (i.e., the
allocator is not msdk_allocator), then we can try to get fd of this mem,
create the corresponding va surface and wrap it as mfx surface.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498 >
2022-09-02 11:06:29 +08:00
Mengkejiergeli Ba
b2e18f7f88
msdkenc: Directly import va memory as mfx surface
...
If input buffer is of va memory, we can directly obtain va surface from
the buffer and wrap it as mfx surface.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498 >
2022-09-02 11:06:29 +08:00
Mengkejiergeli Ba
a8c1cec051
msdk: Use va libs API to get VA surface from buffer
...
Direct apply gst_va_buffer_get_surface to get VASurface from a buffer,
so remove corresponding functions which are not used.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2498 >
2022-09-02 11:06:29 +08:00
Thibault Saunier
6a4425e46a
meson: Call pkgconfig.generate in the loop where we declare plugins dependencies
...
Removing some copy pasted code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970 >
2022-09-01 21:17:35 +00:00
Fan F He
6fe35ad59d
msdkenc: Enable LowDelayBrc and MaxFrameSize for I/P frame
...
Enable these features for accurate bitrate control.
Feature introduction of LowDelayBRC, MaxFrameSizeI and MaxFrameSizeP could be found here:
https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md
Signed-off-by: Fan F He <fan.f.he@intel.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2742 >
2022-07-20 07:10:19 +00:00
Vincent Cheah Beng Keat
5ffaf2aa09
msdkmjpegdec: Add support for error report
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2401 >
2022-07-01 06:29:30 +00:00
Mengkejiergeli Ba
1fe5655c2a
msdkdec: Decoder should use its own pool when downstream allocator is not recognizable
...
Msdkdec should use it own pool when the allocation from downstream query
is not any msdk_allocator (i.e. msdk_video_allocator,
msdk_dmabuf_allocator and msdk_system_allocator). Otherwise, when using
pipeline "msdkh264dec ! vah264enc !" to transcode a not 16-bit-aligned
stream (i.e. 1920x1080), the transcoding will fail due to the size
mismatch issue between decoder pool and encoder pool.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2451 >
2022-06-08 02:48:53 +00:00
Mengkejiergeli Ba
7696ca83b2
msdkav1enc: Reorder pts
...
This is a workaround for pts because oneVPL cannot handle the pts
correctly when there is b-frames. We first cache the input frame pts in
a queue then retrive the smallest one for the output encoded frame as
we always output the coded frame when this frame is displayable.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2089 >
2022-06-02 13:39:11 +00:00
Mengkejiergeli Ba
ae7dfb9680
msdkav1enc: Add b-pyramid and p-pyramid
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2089 >
2022-06-02 13:39:11 +00:00