gstreamer/sys/msdk
Sreerenj Balachandran 54482a54d8 msdk:dec: Add new propery to dump frames in decoded order
The new property "output-order" can be set to either "display" order
which is the default where frames will be outputting in display order,
or "decoded-order" which will be outputting the frames in decoded order.

The "decoded order" output is generally useful for debugging. But there
are few
customers who use it for low-latency streaming. For eg if the customer
already knows that the stream doesn't have b-frames (which means no
algorithm requires for display order calculation), then they can use
"decoded-order"
output to skip some of the DPB logic to avoid the frame accumulation at
start-up.

The root cause of the above issue is a bit of unclarity in h264 spec +
lazy implementation of many H264 encoders; This is well handled in
gstreamer-vaapi using "low-latency" property:
https://bugzilla.gnome.org/show_bug.cgi?id=762509

https://bugzilla.gnome.org/show_bug.cgi?id=795783
2018-05-07 14:12:10 -08:00
..
gstmsdk.c msdk: Add VPP element 2018-04-03 10:38:19 -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: allocator: libva: check if it's already using dmabuf when mapping 2018-04-02 15:49:32 -08:00
gstmsdkallocator_libva.h msdk: adds new function to get dmabuf information from surface. 2018-03-30 11:05:16 -08:00
gstmsdkbufferpool.c msdk: dmabuf support 2018-03-30 11:06:05 -08:00
gstmsdkbufferpool.h msdk: dmabuf support 2018-03-30 11:06:05 -08:00
gstmsdkcontext.c msdk: fix plugin load on implementations with only HW support 2018-04-04 17:31:14 -08: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:dec: Add new propery to dump frames in decoded order 2018-05-07 14:12:10 -08:00
gstmsdkdec.h msdk:dec: Add new propery to dump frames in decoded order 2018-05-07 14:12:10 -08:00
gstmsdkenc.c msdk: enc: Add dmabuf-export support 2018-05-02 14:52:24 -08:00
gstmsdkenc.h msdk: enc: Add dmabuf-export support 2018-05-02 14:52:24 -08:00
gstmsdkh264dec.c msdk: dec: remove framerate field from sink caps template 2018-03-29 13:06:41 -08:00
gstmsdkh264dec.h msdk: Add H.264 decoder 2016-12-12 23:16:11 +01: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: h265dec: remove framerate field from sink caps template 2018-03-29 12:40:34 -08:00
gstmsdkh265dec.h msdk: Add H.265 decoder 2016-12-12 23:48:46 +01:00
gstmsdkh265enc.c msdk: Don't set extended coding options for JPEG encode 2018-03-29 11:56:19 -08:00
gstmsdkh265enc.h msdk: Create plugin for Intel's Media SDK 2016-11-14 15:16:45 +01:00
gstmsdkmjpegdec.c msdk: jpegdec: Fix non-interleaved sample decode 2018-04-16 14:37:21 -08:00
gstmsdkmjpegdec.h msdk: add mjpeg decoder 2016-12-13 00:06:42 +01:00
gstmsdkmjpegenc.c msdk: Allow building against mfx_dispatcher 2017-10-30 18:20:23 +02:00
gstmsdkmjpegenc.h msdk: add mjpeg encoder 2016-12-13 00:06:42 +01:00
gstmsdkmpeg2dec.c msdk: dec: remove framerate field from sink caps template 2018-03-29 13:06:41 -08:00
gstmsdkmpeg2dec.h msdk: Add mpeg2 decoder 2018-01-10 10:40:24 -09: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: fix typo 2018-03-13 14:18:23 -08:00
gstmsdksystemmemory.h msdk: supports bufferpool 2018-02-13 13:44:08 -09:00
gstmsdkvc1dec.c msdk: vc1_dec: Add Advanced profile (WVC1) support 2018-02-13 14:41:52 -09:00
gstmsdkvc1dec.h msdk: Add VC1 decoder (simple and main profiles) 2018-02-13 14:40:54 -09:00
gstmsdkvideomemory.c msdk: dmabuf support 2018-03-30 11:06:05 -08:00
gstmsdkvideomemory.h msdk: dmabuf support 2018-03-30 11:06:05 -08:00
gstmsdkvp8dec.c msdk: implements GstMsdkContext. 2018-02-13 12:41:28 -09:00
gstmsdkvp8dec.h msdk: adds msdkvp8dec 2017-11-01 11:33:50 +02:00
gstmsdkvp8enc.c msdk: Don't set extended coding options for JPEG encode 2018-03-29 11:56:19 -08:00
gstmsdkvp8enc.h msdk: Create plugin for Intel's Media SDK 2016-11-14 15:16:45 +01:00
gstmsdkvpp.c msdkvpp: Disable passthrough if memory capsfeature changes 2018-04-30 12:40:32 -08:00
gstmsdkvpp.h msdkvpp: Disable passthrough if memory capsfeature changes 2018-04-30 12:40:32 -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 msdk: Add VPP element 2018-04-03 10:38:19 -08:00
meson.build Meson: Generate pc file for all plugins in bad 2018-04-25 11:08:09 +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: Add more video format mapping 2018-04-25 12:33:08 -08:00
msdk.h msdk: fix plugin load on implementations with only HW support 2018-04-04 17:31:14 -08:00
msdk_d3d.c msdk: implements GstMsdkContext. 2018-02-13 12:41:28 -09:00
msdk_libva.c msdk: libva: remove unnecessary code and comments 2018-03-13 14:21:40 -08:00
msdk_libva.h msdk: libva: adds utility function between mfx and libva 2018-02-13 12:39:44 -09: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).