gstreamer/sys/msdk
Hyunjun Ko 580a52ec49 msdkenc: use bufferpool
1\ Proposes msdk bufferpool to upstream.
  - If upstream has accepted the proposed msdk bufferpool,
    encoder can get msdk surface from the buffer directly.
  - If not, encoder get msdk surface its own msdk bufferpool
    and copy from upstream's frame to the surface.

2\ Replace arrays of surfaces with msdk bufferpool.

3\ In case of using VPP, there should be another msdk bufferpool
   with NV12 info so that it could convert first and encode.

Calls gst_msdk_set_frame_allocator and uses video memory only on linux.
and uses system memory on Windows until d3d allocator is implemented.

https://bugzilla.gnome.org/show_bug.cgi?id=790752
2018-02-13 13:48:32 -09:00
..
gstmsdk.c msdk: change plugin's description 2018-01-11 11:29:38 +01:00
gstmsdkallocator.h msdk: adds frame allocator using libva 2018-02-13 12:43:42 -09:00
gstmsdkallocator_libva.c msdk: adds frame allocator using libva 2018-02-13 12:43:42 -09:00
gstmsdkbufferpool.c msdk: supports bufferpool 2018-02-13 13:44:08 -09:00
gstmsdkbufferpool.h msdk: supports bufferpool 2018-02-13 13:44:08 -09:00
gstmsdkcontext.c msdk: adds frame allocator using libva 2018-02-13 12:43:42 -09:00
gstmsdkcontext.h msdk: adds frame allocator using libva 2018-02-13 12:43:42 -09:00
gstmsdkdec.c msdkdec: fix typo 2018-02-13 12:43:00 -09:00
gstmsdkdec.h msdk: implements GstMsdkContext. 2018-02-13 12:41:28 -09:00
gstmsdkenc.c msdkenc: use bufferpool 2018-02-13 13:48:32 -09:00
gstmsdkenc.h msdkenc: use bufferpool 2018-02-13 13:48:32 -09:00
gstmsdkh264dec.c msdk: Add H.264 decoder 2016-12-12 23:16:11 +01:00
gstmsdkh264dec.h msdk: Add H.264 decoder 2016-12-12 23:16:11 +01:00
gstmsdkh264enc.c msdkh264enc: Implement frame-packing SEI insertion for side-by-side and top-bottom 2017-11-20 14:39:03 +02:00
gstmsdkh264enc.h msdkh264enc: Implement frame-packing SEI insertion for side-by-side and top-bottom 2017-11-20 14:39:03 +02:00
gstmsdkh265dec.c msdk: implements GstMsdkContext. 2018-02-13 12:41:28 -09:00
gstmsdkh265dec.h msdk: Add H.265 decoder 2016-12-12 23:48:46 +01:00
gstmsdkh265enc.c msdk: implements GstMsdkContext. 2018-02-13 12:41:28 -09: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 mfx_dispatcher 2017-10-30 18:20:23 +02: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: Add mpeg2 decoder 2018-01-10 10:40:24 -09:00
gstmsdkmpeg2dec.h msdk: Add mpeg2 decoder 2018-01-10 10:40:24 -09:00
gstmsdkmpeg2enc.c msdk: Create plugin for Intel's Media SDK 2016-11-14 15:16:45 +01:00
gstmsdkmpeg2enc.h msdk: Create plugin for Intel's Media SDK 2016-11-14 15:16:45 +01:00
gstmsdksystemmemory.c msdk: supports bufferpool 2018-02-13 13:44:08 -09:00
gstmsdksystemmemory.h msdk: supports bufferpool 2018-02-13 13:44:08 -09:00
gstmsdkvideomemory.c msdk: supports bufferpool 2018-02-13 13:44:08 -09:00
gstmsdkvideomemory.h msdk: supports bufferpool 2018-02-13 13:44:08 -09: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: implements GstMsdkContext. 2018-02-13 12:41:28 -09:00
gstmsdkvp8enc.h msdk: Create plugin for Intel's Media SDK 2016-11-14 15:16:45 +01:00
Makefile.am msdk: supports bufferpool 2018-02-13 13:44:08 -09:00
meson.build msdk: supports bufferpool 2018-02-13 13:44:08 -09:00
msdk.c msdkenc: use bufferpool 2018-02-13 13:48:32 -09:00
msdk.h msdkenc: use bufferpool 2018-02-13 13:48:32 -09:00
msdk_d3d.c msdk: implements GstMsdkContext. 2018-02-13 12:41:28 -09:00
msdk_libva.c msdk: implements GstMsdkContext. 2018-02-13 12:41:28 -09: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).