gstreamer/sys/msdk
Haihao Xiang 546797cecf msdkdec: set the mfx picture structure to MFX_PICSTRUCT_PROGRESSIVE if it is unknown
The picture structure in the output parameters from
MFXVideoDECODE_Query is set to MFX_PICSTRUCT_UNKNOWN for some codecs, so
the structure of the corresponding mfx surfaces created for decoding are
unknown. The pipeline will be broken when these surfaces are used as the
input for msdkvpp.

Example pipeline:

gst-launch-1.0 filesrc location=input_vp8.webm ! matroskademux !
msdkvp8dec ! msdkvpp ! fakesink

Error message:

0:00:00.031568911 14259 0x55b79dc684a0 ERROR                msdkvpp
gstmsdkvpp.c:728:gst_msdkvpp_transform:<msdkvpp0> MSDK Failed to do VPP
ERROR: from element
/GstPipeline:pipeline0/GstMatroskaDemux:matroskademux0: Internal data
stream error.

This is a workaround for the above issue
2019-01-25 12:45:43 +08:00
..
gstmsdk.c msdk: Add conditional build for vp9 decoder 2018-05-15 16:33:00 -08:00
gstmsdkallocator.h msdk: allocator: get dmabuf handle during allocation if required 2018-03-30 11:04:28 -08:00
gstmsdkallocator_d3d.c msdk: don't reset the external frame allocator 2019-01-08 09:11:47 +00:00
gstmsdkallocator_libva.c msdk: don't reset the external frame allocator 2019-01-08 09:11:47 +00:00
gstmsdkallocator_libva.h msdk: Add method to replace internal VASurface of mfxFrameSurface 2018-05-30 16:23:44 -08:00
gstmsdkbufferpool.c msdk: bufferpool: refactor memory type decision 2019-01-24 08:49:39 +00:00
gstmsdkbufferpool.h msdk: dmabuf support 2018-03-30 11:06:05 -08:00
gstmsdkcontext.c msdk: needn't call MFXJoinSession after MFXCloneSession 2019-01-09 15:52:27 +08:00
gstmsdkcontext.h msdk: don't reset the external frame allocator 2019-01-08 09:11:47 +00:00
gstmsdkcontextutil.c msdk: context: add job type to figure out if joining session is necessary 2018-02-13 13:50:48 -09:00
gstmsdkcontextutil.h msdk: context: add job type to figure out if joining session is necessary 2018-02-13 13:50:48 -09:00
gstmsdkdec.c msdkdec: set the mfx picture structure to MFX_PICSTRUCT_PROGRESSIVE if it is unknown 2019-01-25 12:45:43 +08:00
gstmsdkdec.h msdkdec: move output-order out of decode bass class. 2018-11-23 12:26:40 +00:00
gstmsdkdecproputil.c msdkdec: move output-order out of decode bass class. 2018-11-23 12:26:40 +00:00
gstmsdkdecproputil.h msdkdec: move output-order out of decode bass class. 2018-11-23 12:26:40 +00:00
gstmsdkenc.c msdk: set the right BRCParamMultiplier 2019-01-11 09:57:44 +00:00
gstmsdkenc.h msdk: enc: Add dmabuf-export support 2018-05-02 14:52:24 -08:00
gstmsdkh264dec.c msdkdec: move output-order out of decode bass class. 2018-11-23 12:26:40 +00:00
gstmsdkh264dec.h msdkdec: move output-order out of decode bass class. 2018-11-23 12:26:40 +00:00
gstmsdkh264enc.c msdk: Don't set extended coding options for JPEG encode 2018-03-29 11:56:19 -08:00
gstmsdkh264enc.h msdk: h264_enc: Enable B-pyramid prediction support 2018-02-20 12:41:18 -09:00
gstmsdkh265dec.c msdkh265dec: support P010_10LE in DMABuf mode 2019-01-21 17:32:17 +00:00
gstmsdkh265dec.h msdkdec: move output-order out of decode bass class. 2018-11-23 12:26:40 +00:00
gstmsdkh265enc.c msdkh265enc: enable low power mode 2019-01-24 09:59:37 +00:00
gstmsdkh265enc.h msdkh265enc: enable low power mode 2019-01-24 09:59:37 +00:00
gstmsdkmjpegdec.c msdk: add mfx in include path 2019-01-08 12:59:45 +00:00
gstmsdkmjpegdec.h msdk: add mjpeg decoder 2016-12-13 00:06:42 +01:00
gstmsdkmjpegenc.c msdk: allow building against open sourced msdk 2018-05-15 16:31:02 -08:00
gstmsdkmjpegenc.h msdk: add mjpeg encoder 2016-12-13 00:06:42 +01:00
gstmsdkmpeg2dec.c msdkdec: move output-order out of decode bass class. 2018-11-23 12:26:40 +00:00
gstmsdkmpeg2dec.h msdkdec: move output-order out of decode bass class. 2018-11-23 12:26:40 +00:00
gstmsdkmpeg2enc.c msdk: Don't set extended coding options for JPEG encode 2018-03-29 11:56:19 -08:00
gstmsdkmpeg2enc.h msdk: Create plugin for Intel's Media SDK 2016-11-14 15:16:45 +01:00
gstmsdksystemmemory.c msdk: make sure the surface data is set for GST_VIDEO_FORMAT_P010_10LE 2018-11-26 16:47:17 +00:00
gstmsdksystemmemory.h msdk: supports bufferpool 2018-02-13 13:44:08 -09:00
gstmsdkvc1dec.c msdkdec: move output-order out of decode bass class. 2018-11-23 12:26:40 +00:00
gstmsdkvc1dec.h msdkdec: move output-order out of decode bass class. 2018-11-23 12:26:40 +00:00
gstmsdkvideomemory.c msdk: Close fd handle 2018-11-26 16:13:44 +00:00
gstmsdkvideomemory.h msdk: dmabuf support 2018-03-30 11:06:05 -08:00
gstmsdkvp8dec.c msdk: add mfx in include path 2019-01-08 12:59:45 +00:00
gstmsdkvp8dec.h msdkdec: move output-order out of decode bass class. 2018-11-23 12:26:40 +00:00
gstmsdkvp8enc.c msdk: add mfx in include path 2019-01-08 12:59:45 +00:00
gstmsdkvp8enc.h msdk: Create plugin for Intel's Media SDK 2016-11-14 15:16:45 +01:00
gstmsdkvp9dec.c msdk: add mfx in include path 2019-01-08 12:59:45 +00:00
gstmsdkvp9dec.h msdkdec: move output-order out of decode bass class. 2018-11-23 12:26:40 +00:00
gstmsdkvpp.c msdkvpp: add P010_10LE to sink and src caps 2019-01-21 17:32:17 +00:00
gstmsdkvpp.h msdk: vpp: remove mfxExtVPPDoUse from vpp filters. 2018-06-07 15:31:54 -08:00
gstmsdkvpputil.c msdk: vpp : Add frame rate control 2018-04-03 11:10:20 -08:00
gstmsdkvpputil.h msdk: vpp: Add deinterlacing support 2018-04-03 10:38:52 -08:00
Makefile.am build: Don't forget to add windows files to EXTRA_DIST 2019-01-18 13:13:09 +05:30
meson.build meson: Fix automagic build of msdk plugin 2019-01-19 18:28:42 +00:00
msdk-enums.c msdk:dec: Add new propery to dump frames in decoded order 2018-05-07 14:12:10 -08:00
msdk-enums.h msdk:dec: Add new propery to dump frames in decoded order 2018-05-07 14:12:10 -08:00
msdk.c msdk: assign the returned value to status variable 2018-12-12 17:24:00 +00:00
msdk.h msdk: add mfx in include path 2019-01-08 12:59:45 +00:00
msdk_d3d.c msdk: implements GstMsdkContext. 2018-02-13 12:41:28 -09:00
msdk_libva.c msdk: add missing breaks 2018-12-03 07:09:56 +00:00
msdk_libva.h msdk: add mfx in include path 2019-01-08 12:59:45 +00:00
README msdk: Create plugin for Intel's Media SDK 2016-11-14 15:16:45 +01:00

# gst-msdk

gst-msdk is a plugin for
[Intel Media SDK](https://software.intel.com/en-us/media-sdk), a
cross-platform API for developing media applications. The plugin has
multiple elements for video hardware encoding leveraging latest Intel
processors through Intel Media SDK.

- MPEG2 encoding (*msdkmpeg2enc*)

- H.264 encoding (*msdkh264enc*)

- H.265 encoding (*msdkh265enc*)

- VP8 encoding (*msdkvp8enc*)


It requires:

- Intel Media SDK


# Giving it a try

Encoding a simple video test source and saving it to a file.

    $ gst-launch-1.0 videotestsrc ! msdkh264enc ! filesink location=test.h264


# License

gst-mdk is freely available for download under the terms of the
[BSD-3-Clause License](https://spdx.org/licenses/BSD-3-Clause.html).