gstreamer/sys/msdk
Haihao Xiang 7681566f29 msdkvpp: close the current VPP session if this session has been initialized
Otherwise MFXVideoVPP_Init will fail because it is called twice without
a close.

Example pipeline:

gst-launch-1.0 videotestsrc ! msdkvpp ! glimagesink

Sometimes glimagesink emits GST_EVENT_RECONFIGURE event which results
in that MFXVideoVPP_Init is called twice, then get the negotiation
failure below:

0:00:00.093715518 21218 0x558ef56231e0 ERROR                msdkvpp
gstmsdkvpp.c:995:gst_msdkvpp_initialize:<msdkvpp0> Init failed
(undefined behavior)
WARNING: from element /GstPipeline:pipeline0/GstMsdkVPP:msdkvpp0: not
negotiated

After applying this commit, the pipeline above may run without
negotiation failure, however NV12 layout in dmabuf mode is selected in
renegotiation, the display image is corrupted due to the NV12 issue which
was mentioned in commit 3f2314a. Some other fixes are needed to avoid
renegotiation by default
2019-01-08 10:08: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: Avoid build failures on Windows until d3d allocator is implemented 2018-02-13 13:54:03 -09:00
gstmsdkallocator_libva.c msdk: adjust the RT format for P010 surface 2018-11-26 16:47:17 +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: Fix invalid return type build warning 2018-12-25 16:14:36 +09:00
gstmsdkbufferpool.h msdk: dmabuf support 2018-03-30 11:06:05 -08:00
gstmsdkcontext.c msdk: decrease the reference count of object 2018-12-12 17:24:00 +00:00
gstmsdkcontext.h msdk: manage MSDK surfaces seperately 2018-03-08 11:37:12 -09: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 msdk: check the created context against NULL pointer 2018-12-12 17:24:00 +00: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 msdkenc: break out of flush frames loop on error 2019-01-06 19:07:35 -08: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 msdk: remove unnecessary assignment 2018-11-26 16:47: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: output main-10 bitstream if the input is P010_10LE 2018-12-12 09:00:13 +00:00
gstmsdkh265enc.h msdk: Create plugin for Intel's Media SDK 2016-11-14 15:16:45 +01:00
gstmsdkmjpegdec.c msdk: allow building against open sourced msdk 2018-05-15 16:31:02 -08: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 msdkdec: move output-order out of decode bass class. 2018-11-23 12:26:40 +00:00
gstmsdkvp8dec.h msdkdec: move output-order out of decode bass class. 2018-11-23 12:26:40 +00:00
gstmsdkvp8enc.c msdk: allow building against open sourced msdk 2018-05-15 16:31:02 -08:00
gstmsdkvp8enc.h msdk: Create plugin for Intel's Media SDK 2016-11-14 15:16:45 +01:00
gstmsdkvp9dec.c msdkdec: move output-order out of decode bass class. 2018-11-23 12:26:40 +00:00
gstmsdkvp9dec.h msdkdec: move output-order out of decode bass class. 2018-11-23 12:26:40 +00:00
gstmsdkvpp.c msdkvpp: close the current VPP session if this session has been initialized 2019-01-08 10:08:43 +08: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 msdkdec: move output-order out of decode bass class. 2018-11-23 12:26:40 +00:00
meson.build msdk: don't declare headers in meson 2018-11-23 17:10:24 +01: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: don't use hard-coded video format 2018-11-26 16:47:17 +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: allow building against open sourced msdk 2018-05-15 16:31:02 -08: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).