Haihao Xiang
1f1a5b4ad1
msdkenc{h264,h265}: add min-qp and max-qp properties
...
The SDK allows user to set a QP range [1], so add min-qp and max-qp to
sepecify QP range. By default, there is no limitations on QP.
[1] https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#mfxextcodingoption2
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1908 >
2020-12-30 06:40:36 +00:00
Haihao Xiang
7bc3d51b42
msdkenc{h264,h265}: add p-pyramid property
...
The SDK can support P-Pyramid reference structure [1], so add a new
property to enable this feature in msdkenc{h264,h265}.
[1] https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#preftype
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1908 >
2020-12-30 06:40:36 +00:00
Haihao Xiang
af988e282a
msdkh265enc: add b-pyramid property
...
Like as msdkh264enc, b-pyramid is added to enable B-Pyramid reference
structure for H265 encoding
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1908 >
2020-12-30 06:40:36 +00:00
Haihao Xiang
ff206f6525
msdkh265enc: add transform-skip property
...
Since the SDK API 1.26, TransformSkip was added to control
transform_skip_enabled_flag setting in PPS [1]
[1] https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#mfxextcodingoption3
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1908 >
2020-12-30 06:40:36 +00:00
Haihao Xiang
e7160a97cf
msdkh265enc: add the missing comma
...
Otherwise main-444 and main-444-10 are concatenated
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1436 >
2020-07-15 08:38:07 +08:00
Haihao Xiang
c0e809d6b8
msdkh265enc: add support for screen content coding extension
...
Because the valid input formats for screen content coding extension is
a subset of input formats for range extension, user must specify the
profile for screen content coding extension in the caps filter
Example:
gst-launch-1.0 videotestsrc ! video/x-raw,format=NV12 ! msdkh265enc
low-power=1 ! video/x-h265,profile=screen-extended-main ! fakesink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1389 >
2020-07-11 23:42:52 +08:00
Haihao Xiang
e1d1cb07a6
msdkh265enc: allow user to choose profile
...
Example:
gst-launch-1.0 videotestsrc ! video/x-raw,format=NV12 ! msdkh265enc !
video/x-h265,profile=main-444 ! fakesink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1389 >
2020-07-11 23:42:52 +08:00
Haihao Xiang
55f3590317
msdkenc: support tune property in msdkh264enc and msdkh265enc
...
Introduce a new property for encoding mode selection, the default value
for this new property allows the SDK to decide what to do. In addition,
low-power is marked as deprecated since this fix
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1426 >
2020-07-11 13:57:52 +00:00
Haihao Xiang
3ecb2a82be
Revert "msdkh265enc: let MSDK select the encoding mode by default"
...
This reverts commit 9e977832c1
.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1426 >
2020-07-11 13:57:52 +00:00
Haihao Xiang
9e977832c1
msdkh265enc: let MSDK select the encoding mode by default
...
MSDK may support lowpower and non-lowpower modes, some features are
available only under one of the two modes, which is hard to know for
user, so let MSDK select the mode by default.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1405 >
2020-07-06 14:43:31 +00:00
Haihao Xiang
f685893ed2
msdkh265enc: add support 12-bit 420 encoding
...
P016 is used for 12-bit encoding in MediaSDK, so the Shift flag is set
in the mfx parameters
Sample pipeline:
gst-launch-1.0 videotestsrc ! video/x-raw,format=P012_LE ! msdkh265enc ! \
fakesink
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1174 >
2020-06-01 05:04:30 +00:00
Seungha Yang
950aa3d1db
msdkh265enc: Fix for wrong parser free function
2020-04-03 00:42:23 +09:00
Seungha Yang
206fe1534d
msdkh265enc: Add support for CEA708 closed caption insertion
...
Functionally identical to that of msdkh264enc
2020-04-02 09:20:11 +00:00
Haihao Xiang
326b755332
msdkh265enc: support 8-bit 422 encoding
...
The media driver can support HEVC 8-bit 422 encoding for non-lowpower
mode since ICL[1], so VPP is not needed for this case.
Sample pipeline:
gst-launch-1.0 videotestsrc ! video/x-raw,format=YUY2 ! msdkh265enc ! \
filesink location=output.h265
[1] https://github.com/intel/media-driver#decodingencoding-features
2020-03-31 09:27:03 +08:00
Haihao Xiang
7c91c8c980
msdkh265enc: add support for Y210 in sink pad
...
Sample pipeline:
gst-launch-1.0 videotestsrc ! video/x-raw,format=Y210 !
msdkh265enc ! filesink location=output.h265
2020-03-31 09:27:03 +08:00
Haihao Xiang
d796707dd4
msdkh265enc: slice size control
...
Add max-slice-size property to set the maximum slice size
2020-03-30 00:20:11 +00:00
Haihao Xiang
8512624a41
msdkenc: set ROI region for msdk{h264, h265}enc
...
A reconfig is needed when ROI is changed, otherwise the ROI parameters won't
take effect
2020-01-15 00:47:12 +00:00
Haihao Xiang
b18be3562c
msdk: ignore MFX_ERR_UNDEFINED_BEHAVIOR when loading a plugin
...
An issue can be seen when using msdkh265enc with bitrate change in
playing state. The root cause is the corresponding plugin is loaded
again.
Returning MFX_ERR_UNDEFINED_BEHAVIOR from MSDK just means the plugin has
been loaded, so we may ignore this error when doing configuation again
in the sub class, otherwise the pipeline will be interrupted
2019-12-10 17:23:53 +00:00
Haihao Xiang
a2cafcfc3e
msdkh265enc: Add support for tiled encoding
...
Add num-tile-rows and num-tile-cols properties to set the number of rows
and columns
2019-10-27 18:40:15 +00:00
Haihao Xiang
9fcd3bdd2b
msdk: support P010_10LE in DMABuf mode for VP9/HEVC encoding
2019-10-25 16:54:57 +00:00
Haihao Xiang
4525f8707f
msdkh265enc: add the missing profile string
2019-10-08 09:40:06 +08:00
Víctor Manuel Jáquez Leal
5140bf1a1f
msdkenc: guard MFX_FOURCC_Y410 with MFX version 1027
2019-10-03 13:50:15 +00:00
Haihao Xiang
83100b3504
msdkh265enc: add support for Y410 in sink pad
...
Sample pipeline:
gst-launch-1.0 videotestsrc ! video/x-raw,format=Y410 !
msdkh265enc low-power=1 ! filesink location=output.h265
2019-09-30 10:44:50 +08:00
Haihao Xiang
0507547646
msdkh265enc: add support for VUYA in sink pad
...
sample pipelie:
gst-launch-1.0 videotestsrc ! video/x-raw,format=VUYA !
msdkh265enc low-power=1 ! filesink location=output.h265
2019-09-30 10:44:38 +08:00
Haihao Xiang
85914997f5
msdkenc: clean up code by using switch
...
It is convenient for us to add support for new formats in future, there
is no change in functionality.
2019-09-30 10:42:41 +08:00
Fuwei Tang
11bbd6f721
msdkenc: add an extra surface for hevc encoding
...
For some hevc 10bit 4K encoding cases, the encoding process may be
slow, and MediaSDK surface can't be released in time before one other
available surface is needed. So add an extra surface for hevc encoding
to avoid this issue.
2019-09-12 02:20:11 +00:00
Seungha Yang
54c5ebbd53
msdk: Remove all DMABuf caps features on Windows
...
Add new macro for sink/src pad template to ensure no DMABuf caps
features are exposed on Windows. Some DMABuf caps features
were not handled by the commit 9ec62418c3
2019-09-10 13:29:11 +00:00
Tim-Philipp Müller
16426b3928
msdk: add Hardware tag to element metadata
2019-02-19 23:44:42 +00:00
Haihao Xiang
920062cafc
msdkh265enc: enable low power mode
...
Low power mode is disabled by default, set the value of low-power to
true to enable this mode.
2019-01-24 09:59:37 +00:00
Víctor Manuel Jáquez Leal
c22f92c799
msdk: add mfx in include path
...
Thus removing the preprocessor's directives to included if found.
2019-01-08 12:59:45 +00:00
Xiang, Haihao
9a9e01a1a5
msdkh265enc: output main-10 bitstream if the input is P010_10LE
...
Tested on KBL using the following command:
gst-launch-1.0 videotestsrc num_buffers=100 ! video/x-raw,format=P010_10LE ! \
msdkh265enc ! filesink location=a.hevc
This fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/829
2018-12-12 09:00:13 +00:00
Xiang, Haihao
9711a21008
msdkh265enc: add P010_10LE to the sink pad template
2018-12-12 09:00:13 +00:00
Xiang, Haihao
ba1f162401
msdkh265enc: re-add the sink pad template
...
We will add more profiles in the sink caps of msdkh265enc, so let
msdkh265enc re-add the sink pad template. Note this change doesn't
impact any capability
2018-12-12 09:00:13 +00:00
Sreerenj Balachandran
dec0953517
msdk: allow building against open sourced msdk
...
Building against mfx_dispatcher is used to search for
headers in PREFIX/include/mfx/ only (commit: 62f04e801b
),
but it is just PREFIX/include with open source msdk version.
https://bugzilla.gnome.org/show_bug.cgi?id=796118
2018-05-15 16:31:02 -08:00
Sreerenj Balachandran
f1f148fe7c
msdk: Don't set extended coding options for JPEG encode
...
MJPEG doesn't have support for extended coding options
https://bugzilla.gnome.org/show_bug.cgi?id=793873
2018-03-29 11:56:19 -08:00
Sreerenj Balachandran
a165a1a1a9
msdk: encoder: h265: generalize the behavior of "i-frames" property
...
We have the property "i-frames" to set the IDR interval in a
gop. Unfortunately MSDK HEVC encoder behaves bit differently
for IdrInterval field, IdrInteval == 1 indicate every
I-frame should be an IDR (which is IdrInterval == 0 for other codecs),
IdrInteval == 2 means every other I-frame is an IDR
(which is IdrInterval == 1 for other codecs) etc.
So we generalize the behaviour of property "i-frames" by
incrementing the value by one in each case (only for HEVC).
https://bugzilla.gnome.org/show_bug.cgi?id=791637
2018-02-20 12:39:02 -09:00
Sreerenj Balachandran
fa0911c3f6
msdk: encoder: register only the required properties
...
The base encoder common properties are not valid for
mjpeg encoder where there is no motion compensation or rate control.
Delaying the property installation on the base gobject
untill the subclass class_init get invoked.
https://bugzilla.gnome.org/show_bug.cgi?id=791637
2018-02-20 12:38:28 -09:00
Hyunjun Ko
6ce9a66b80
msdk: implements GstMsdkContext.
...
Makes GstMsdkContext to be a descendant of GstObject so that
we could track the life-cycle of the session of the driver.
Also replaces MsdkContext with this one.
Keeps msdk_d3d.c alive for the future.
https://bugzilla.gnome.org/show_bug.cgi?id=790752
2018-02-13 12:41:28 -09:00
Sebastian Dröge
62f04e801b
msdk: Allow building against mfx_dispatcher
...
E.g. from https://github.com/lu-zero/mfx_dispatch
2017-10-30 18:20:23 +02:00
Scott D Phillips
35f76fc33a
msdk: load plugins in h265 and vp8 init
...
https://bugzilla.gnome.org/show_bug.cgi?id=770990
2016-11-14 15:17:19 +01:00
Josep Torra
7d68d40239
msdk: Create plugin for Intel's Media SDK
...
[scott.d.phillips@intel.com: gst-indent *.c *.h]
[scott.d.phillips@intel.com: link with libva at build time]
[scott.d.phillips@intel.com: remove unused includes]
[scott.d.phillips@intel.com: Update README]
https://bugzilla.gnome.org/show_bug.cgi?id=770990
2016-11-14 15:16:45 +01:00