GNOME Bugzilla – Bug 796465
msdk: Vertical mirroring not supported, avoid segfault and fail gracefully.
Last modified: 2018-06-07 22:58:05 UTC
Test Env: ============================================ Platform: APL/KBL/SKL Arch: x86_64 Linux release 16.04 Kernel: 4.12.0-rc2 libva https://github.com/01org/libva.gitb commit 3be72a5a110880f70626d7c3bed953cdde124b2 media_driver https://github.com/intel/media-driver commit 1c2b0615d749c45c07f9aee6586774816989c5b3 MediaSDK: https://github.com/Intel-Media-SDK/MediaSDK commit 7c2b069dce7bed268806f680412a2f3b09a52ce9 gst-bad master branch 0bdcf51baf77926b4f29c01a2fdf133c13aad62e Reproduce Steps: ============================================ take one case for example 1. build enc as above lists 2. gst-launch-1.0 filesrc location=/media/gst_msdk_vpp_ref/768x480.I420 '!' videoparse format=i420 width=768 height=480 framerate=1 '!' videoconvert '!' video/x-raw,format=NV12 '!' msdkvpp mirroring=2 '!' videoconvert '!' video/x-raw,format=I420 '!' checksumsink2 frame-checksum=false dump-output=true dump-location=mirroring2.I420 3. error message occurs as below ERROR msdkvpp gstmsdkvpp.c:904:gst_msdkvpp_initialize:<msdkvpp0> VPP Query IO surfaces failed (undeveloped feature) ** (gst-launch-1.0:19228): CRITICAL **: gst_msdk_video_allocator_new: assertion 'context != NULL' failed (gst-launch-1.0:19228): GStreamer-CRITICAL **: gst_buffer_pool_get_config: assertion 'GST_IS_BUFFER_POOL (pool)' failed (gst-launch-1.0:19228): GStreamer-CRITICAL **: gst_buffer_pool_config_get_params: assertion 'config != NULL' failed (gst-launch-1.0:19228): GStreamer-CRITICAL **: gst_buffer_pool_config_get_allocator: assertion 'config != NULL' failed (gst-launch-1.0:19228): GStreamer-CRITICAL **: gst_structure_free: assertion 'structure != NULL' failed ** (gst-launch-1.0:19228): CRITICAL **: gst_msdk_video_allocator_new: assertion 'context != NULL' failed
it has no mirroring element in mfxvpp.
Latest gst-mfx has the mirroring option and others not included in gstreamer-media-SDK master at 01.org - https://github.com/ishmael1985/gstreamer-media-SDK or https://github.com/intel/gstreamer-media-SDK/tree/topic_linux_and_window
Vertical mirroring is not supported by msdk. Ishmael already filed a bug against msdk: https://github.com/Intel-Media-SDK/MediaSDK/issues/90 But irrespective of that, gst-msdk shouldn't be segfaulting. It should just fail. I will fix that.
Pushed a few patches to handle the failure cases. commit 665f4a140ff8224c6f3952b779f8585892a20e04 commit 6cd12cb6a1a9d7ebe481d7f56e036fc5552db59c