gstreamer/sys/msdk
Haihao Xiang ce4f9ae531 msdk: fix for mfx frame alloc response
Both MSDK and this plugin use mfxFrameAllocResponse for video and DMABuf
memory, it is possible that some GST buffers are still in use when calling
gst_msdk_frame_free, so add a reference count in the wrapper of
mfxFrameAllocResponse (GstMsdkAllocResponse) to make sure the underlying
mfx resources are still available if the corresponding buffer pool is in
use.

In addtion, currently all allocators for input or output share the same
mfxFrameAllocResponse pointer in an element, so it is possible that
the content of mfxFrameAllocResponse is updated for a new caps then all
GST buffers allocated from an old allocator will use this new content of
mfxFrameAllocResponse, which will result in unexpected behavior. In this
fix, we save the the content of mfxFrameAllocResponse in the corresponding
tructure to avoid such issue

Sample pipeline:

gst-launch-1.0 filesrc location=vp9_multi_resolutions.ivf ! ivfparse ! msdkvp9dec !
msdkvpp ! video/x-raw\(memory:DMABuf\),format=NV12 ! glimagesink
2019-09-23 09:58:28 +08:00
..
gstmsdk.c msdk: add msdkvp9enc element 2019-07-07 15:16:28 +00: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: fix for mfx frame alloc response 2019-09-23 09:58:28 +08:00
gstmsdkallocator_libva.h msdk: Add method to replace internal VASurface of mfxFrameSurface 2018-05-30 16:23:44 -08:00
gstmsdkbufferpool.c msdkdec: make sure mfx frame width/height meets MSDK's requirement 2019-07-24 08:41:13 +08:00
gstmsdkbufferpool.h msdk: dmabuf support 2018-03-30 11:06:05 -08:00
gstmsdkcontext.c msdk: don't cache mfxFrameAllocResponse pointer 2019-09-21 19:51:38 +00:00
gstmsdkcontext.h msdk: fix for mfx frame alloc response 2019-09-23 09:58:28 +08: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: postpone surface free for VC1 2019-09-21 18:05:42 +00:00
gstmsdkdec.h msdkdec: postpone surface free for VC1 2019-09-21 18:05:42 +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: remove unneeded label 2019-09-16 10:09:00 +00:00
gstmsdkenc.h msdkenc: allow encode element requires extra frames 2019-07-07 15:16:28 +00:00
gstmsdkh264dec.c msdk: add Hardware tag to element metadata 2019-02-19 23:44:42 +00:00
gstmsdkh264dec.h msdkdec: move output-order out of decode bass class. 2018-11-23 12:26:40 +00:00
gstmsdkh264enc.c msdk: add Hardware tag to element metadata 2019-02-19 23:44:42 +00:00
gstmsdkh264enc.h msdk: h264_enc: Enable B-pyramid prediction support 2018-02-20 12:41:18 -09:00
gstmsdkh265dec.c msdk: Remove all DMABuf caps features on Windows 2019-09-10 13:29:11 +00:00
gstmsdkh265dec.h msdkdec: move output-order out of decode bass class. 2018-11-23 12:26:40 +00:00
gstmsdkh265enc.c msdkenc: add an extra surface for hevc encoding 2019-09-12 02:20:11 +00:00
gstmsdkh265enc.h msdkh265enc: enable low power mode 2019-01-24 09:59:37 +00:00
gstmsdkmjpegdec.c msdk: Remove all DMABuf caps features on Windows 2019-09-10 13:29:11 +00:00
gstmsdkmjpegdec.h msdk: add mjpeg decoder 2016-12-13 00:06:42 +01:00
gstmsdkmjpegenc.c msdk: add Hardware tag to element metadata 2019-02-19 23:44:42 +00:00
gstmsdkmjpegenc.h msdk: add mjpeg encoder 2016-12-13 00:06:42 +01:00
gstmsdkmpeg2dec.c msdk: add Hardware tag to element metadata 2019-02-19 23:44:42 +00:00
gstmsdkmpeg2dec.h msdkdec: move output-order out of decode bass class. 2018-11-23 12:26:40 +00:00
gstmsdkmpeg2enc.c msdk: add Hardware tag to element metadata 2019-02-19 23:44:42 +00:00
gstmsdkmpeg2enc.h msdk: Create plugin for Intel's Media SDK 2016-11-14 15:16:45 +01:00
gstmsdksystemmemory.c msdk: fix memory leaks in msdk allocators 2019-09-13 16:54:21 +00:00
gstmsdksystemmemory.h msdk: supports bufferpool 2018-02-13 13:44:08 -09:00
gstmsdkvc1dec.c msdkdec: postpone surface free for VC1 2019-09-21 18:05:42 +00:00
gstmsdkvc1dec.h msdkdec: move output-order out of decode bass class. 2018-11-23 12:26:40 +00:00
gstmsdkvideomemory.c msdk: fix for mfx frame alloc response 2019-09-23 09:58:28 +08:00
gstmsdkvideomemory.h msdk: fix for mfx frame alloc response 2019-09-23 09:58:28 +08:00
gstmsdkvp8dec.c msdkdec: add postinit_decoder 2019-03-29 13:32:06 +08:00
gstmsdkvp8dec.h msdkdec: move output-order out of decode bass class. 2018-11-23 12:26:40 +00:00
gstmsdkvp8enc.c msdk: add Hardware tag to element metadata 2019-02-19 23:44:42 +00:00
gstmsdkvp8enc.h msdk: Create plugin for Intel's Media SDK 2016-11-14 15:16:45 +01:00
gstmsdkvp9dec.c msdk: Remove all DMABuf caps features on Windows 2019-09-10 13:29:11 +00:00
gstmsdkvp9dec.h msdkdec: move output-order out of decode bass class. 2018-11-23 12:26:40 +00:00
gstmsdkvp9enc.c msdk: Remove all DMABuf caps features on Windows 2019-09-10 13:29:11 +00:00
gstmsdkvp9enc.h msdk: add msdkvp9enc element 2019-07-07 15:16:28 +00:00
gstmsdkvpp.c msdk: free mfx frames to avoid memory leaks in encoder and vpp 2019-09-13 16:54:21 +00:00
gstmsdkvpp.h msdkvpp: support video-direction property 2019-08-26 16:39:39 +00:00
gstmsdkvpputil.c msdk: vpp: rotate output frame 2019-08-22 18:17:30 +00:00
gstmsdkvpputil.h msdk: vpp: Add deinterlacing support 2018-04-03 10:38:52 -08:00
Makefile.am msdk: add msdkvp9enc element 2019-07-07 15:16:28 +00:00
meson.build msdk: actually use the include dir we compute 2019-09-11 00:14:08 +00:00
msdk-enums.c msdkvpp: support video-direction property 2019-08-26 16:39:39 +00: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: adjust the stride align 2019-09-21 16:59:10 +00:00
msdk.h msdk: Remove all DMABuf caps features on Windows 2019-09-10 13:29:11 +00:00
msdk_d3d.c msdk: implements GstMsdkContext. 2018-02-13 12:41:28 -09:00
msdk_libva.c msdk: map MFX_FOURCC_Y410 to VA_FOURCC_Y410 2019-06-29 17:33:57 +02:00
msdk_libva.h msdk: add mfx in include path 2019-01-08 12:59:45 +00:00