diff options
| author | Lim Siew Hoon <siew.hoon.lim@intel.com> | 2023-06-02 10:56:38 +0800 |
|---|---|---|
| committer | Anuj Mittal <anuj.mittal@intel.com> | 2023-06-02 11:16:50 +0800 |
| commit | d7692dba743170ae661998d262347563ceaaf6dd (patch) | |
| tree | 851e40a9ca4a926f1dfa8afb73d54f03d884f3af | |
| parent | 43a28a839c5522af1b5822f748b361d28f4d51e1 (diff) | |
| download | meta-intel-d7692dba743170ae661998d262347563ceaaf6dd.tar.gz | |
onevpl: fix various issues
1. Fixed memory leaking on sample rendering in wayland
2. Fixed sample_multi_transcode segfault rendering in wayland.
3. Fixed sample X11 rendering in corruption issue.
4. Fixed Adjust MJPEG 1920x1080 alignment issue.
5. Fixed sample_multi_transcode intermittent segfault issue.
Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
6 files changed, 342 insertions, 0 deletions
diff --git a/recipes-multimedia/onevpl/files/0001-Fix-valgrind-leak-reported-on-wayland.patch b/recipes-multimedia/onevpl/files/0001-Fix-valgrind-leak-reported-on-wayland.patch new file mode 100644 index 00000000..e368bb6e --- /dev/null +++ b/recipes-multimedia/onevpl/files/0001-Fix-valgrind-leak-reported-on-wayland.patch | |||
| @@ -0,0 +1,111 @@ | |||
| 1 | From 19005bb487c31aacecab333d8a40ab6434885911 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Vincent Cheah Beng Keat <vincent.beng.keat.cheah@intel.com> | ||
| 3 | Date: Fri, 24 Mar 2023 22:59:08 +0800 | ||
| 4 | Subject: [PATCH 1/5] Fix valgrind leak reported on wayland | ||
| 5 | |||
| 6 | Upstream-Status: Backport | ||
| 7 | Expect it to be removed once move to v2023.2.0 and above. | ||
| 8 | https://github.com/oneapi-src/oneVPL/commit/d276bb08e060956cde678d2c15fc291eec46d1dc | ||
| 9 | --- | ||
| 10 | .../legacy/sample_common/include/vaapi_utils.h | 2 ++ | ||
| 11 | tools/legacy/sample_common/src/vaapi_device.cpp | 1 + | ||
| 12 | tools/legacy/sample_common/src/vaapi_utils.cpp | 3 ++- | ||
| 13 | .../sample_misc/wayland/src/class_wayland.cpp | 17 +++++++++++++++-- | ||
| 14 | 4 files changed, 20 insertions(+), 3 deletions(-) | ||
| 15 | |||
| 16 | diff --git a/tools/legacy/sample_common/include/vaapi_utils.h b/tools/legacy/sample_common/include/vaapi_utils.h | ||
| 17 | index 9d80255..2598883 100644 | ||
| 18 | --- a/tools/legacy/sample_common/include/vaapi_utils.h | ||
| 19 | +++ b/tools/legacy/sample_common/include/vaapi_utils.h | ||
| 20 | @@ -315,11 +315,13 @@ private: | ||
| 21 | |||
| 22 | public: | ||
| 23 | typedef Wayland* (*WaylandCreate_type)(void); | ||
| 24 | + typedef void (*WaylandDestroy_type)(Wayland*); | ||
| 25 | |||
| 26 | VA_WaylandClientProxy(); | ||
| 27 | ~VA_WaylandClientProxy(); | ||
| 28 | |||
| 29 | const WaylandCreate_type WaylandCreate; | ||
| 30 | + const WaylandDestroy_type WaylandDestroy; | ||
| 31 | }; | ||
| 32 | |||
| 33 | #endif // LIBVA_WAYLAND_SUPPORT | ||
| 34 | diff --git a/tools/legacy/sample_common/src/vaapi_device.cpp b/tools/legacy/sample_common/src/vaapi_device.cpp | ||
| 35 | index e621251..98c5883 100644 | ||
| 36 | --- a/tools/legacy/sample_common/src/vaapi_device.cpp | ||
| 37 | +++ b/tools/legacy/sample_common/src/vaapi_device.cpp | ||
| 38 | @@ -349,6 +349,7 @@ mfxStatus CVAAPIDeviceX11::RenderFrame(mfxFrameSurface1* pSurface, | ||
| 39 | |||
| 40 | CVAAPIDeviceWayland::~CVAAPIDeviceWayland(void) { | ||
| 41 | Close(); | ||
| 42 | + m_WaylandClient.WaylandDestroy((MfxLoader::Wayland*)m_Wayland); | ||
| 43 | } | ||
| 44 | |||
| 45 | mfxStatus CVAAPIDeviceWayland::Init(mfxHDL hWindow, mfxU16 nViews, mfxU32 nAdapterNum) { | ||
| 46 | diff --git a/tools/legacy/sample_common/src/vaapi_utils.cpp b/tools/legacy/sample_common/src/vaapi_utils.cpp | ||
| 47 | index e107624..d7aba0a 100644 | ||
| 48 | --- a/tools/legacy/sample_common/src/vaapi_utils.cpp | ||
| 49 | +++ b/tools/legacy/sample_common/src/vaapi_utils.cpp | ||
| 50 | @@ -182,7 +182,8 @@ Xcbpresent_Proxy::~Xcbpresent_Proxy() {} | ||
| 51 | |||
| 52 | VA_WaylandClientProxy::VA_WaylandClientProxy() | ||
| 53 | : lib(WAYLAND_LIB), | ||
| 54 | - SIMPLE_LOADER_FUNCTION(WaylandCreate) {} | ||
| 55 | + SIMPLE_LOADER_FUNCTION(WaylandCreate), | ||
| 56 | + SIMPLE_LOADER_FUNCTION(WaylandDestroy) {} | ||
| 57 | |||
| 58 | VA_WaylandClientProxy::~VA_WaylandClientProxy() {} | ||
| 59 | |||
| 60 | diff --git a/tools/legacy/sample_misc/wayland/src/class_wayland.cpp b/tools/legacy/sample_misc/wayland/src/class_wayland.cpp | ||
| 61 | index 1a0bffa..8f6edbb 100644 | ||
| 62 | --- a/tools/legacy/sample_misc/wayland/src/class_wayland.cpp | ||
| 63 | +++ b/tools/legacy/sample_misc/wayland/src/class_wayland.cpp | ||
| 64 | @@ -149,11 +149,15 @@ void Wayland::FreeSurface() { | ||
| 65 | if (NULL != m_surface) | ||
| 66 | wl_surface_destroy(m_surface); | ||
| 67 | #if defined(WAYLAND_LINUX_XDG_SHELL_SUPPORT) | ||
| 68 | - if (nullptr != m_xdg_toplevel) | ||
| 69 | + if (NULL != m_xdg_toplevel) | ||
| 70 | xdg_toplevel_destroy(m_xdg_toplevel); | ||
| 71 | - if (nullptr != m_xdg_surface) | ||
| 72 | + if (NULL != m_xdg_surface) | ||
| 73 | xdg_surface_destroy(m_xdg_surface); | ||
| 74 | #endif | ||
| 75 | +#if defined(WAYLAND_LINUX_DMABUF_SUPPORT) | ||
| 76 | + if (NULL != m_dmabuf) | ||
| 77 | + zwp_linux_dmabuf_v1_destroy(m_dmabuf); | ||
| 78 | +#endif | ||
| 79 | } | ||
| 80 | |||
| 81 | void Wayland::Sync() { | ||
| 82 | @@ -379,10 +383,16 @@ struct wl_buffer* Wayland::CreatePrimeBuffer(uint32_t name, | ||
| 83 | } | ||
| 84 | |||
| 85 | Wayland::~Wayland() { | ||
| 86 | +#if defined(WAYLAND_LINUX_XDG_SHELL_SUPPORT) | ||
| 87 | + if (NULL != m_xdg_wm_base) | ||
| 88 | + xdg_wm_base_destroy(m_xdg_wm_base); | ||
| 89 | +#endif | ||
| 90 | if (NULL != m_shell) | ||
| 91 | wl_shell_destroy(m_shell); | ||
| 92 | if (NULL != m_shm) | ||
| 93 | wl_shm_destroy(m_shm); | ||
| 94 | + if (NULL != m_drm) | ||
| 95 | + wl_drm_destroy(m_drm); | ||
| 96 | if (NULL != m_bufmgr) { | ||
| 97 | drm_intel_bufmgr_destroy(m_bufmgr); | ||
| 98 | } | ||
| 99 | @@ -492,6 +502,9 @@ void Wayland::DestroyBufferList() { | ||
| 100 | msdkFrameSurface* surface = FindUsedSurface(m_buffer->pInSurface); | ||
| 101 | msdk_atomic_dec16(&(surface->render_lock)); | ||
| 102 | } | ||
| 103 | + wl_buffer_destroy(m_buffer->buffer); | ||
| 104 | + m_buffer->buffer = NULL; | ||
| 105 | + m_buffer->pInSurface = NULL; | ||
| 106 | m_buffers_list.pop_front(); | ||
| 107 | delete m_buffer; | ||
| 108 | } | ||
| 109 | -- | ||
| 110 | 2.40.1 | ||
| 111 | |||
diff --git a/recipes-multimedia/onevpl/files/0002-Fix-sample_multi_transcode-segfault-on-wayland.patch b/recipes-multimedia/onevpl/files/0002-Fix-sample_multi_transcode-segfault-on-wayland.patch new file mode 100644 index 00000000..b7762709 --- /dev/null +++ b/recipes-multimedia/onevpl/files/0002-Fix-sample_multi_transcode-segfault-on-wayland.patch | |||
| @@ -0,0 +1,87 @@ | |||
| 1 | From 72ef4e2878f8cc2df431411027c92dc41ff26a2b Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Vincent Cheah Beng Keat <vincent.beng.keat.cheah@intel.com> | ||
| 3 | Date: Wed, 15 Mar 2023 22:37:08 +0800 | ||
| 4 | Subject: [PATCH 2/5] Fix sample_multi_transcode segfault on wayland | ||
| 5 | |||
| 6 | HSD ID: 15012772965 | ||
| 7 | Tested command: ./sample_multi_transcode -par ../../config.par | ||
| 8 | |||
| 9 | Upstream-Status: Backport | ||
| 10 | Expect it to be removed once move to v2023.2.0 and above. | ||
| 11 | https://github.com/oneapi-src/oneVPL/commit/59c850db505d32e6b7e4d68ced8d714afe390a70 | ||
| 12 | --- | ||
| 13 | .../sample_misc/wayland/src/class_wayland.cpp | 27 +++++++++++++++---- | ||
| 14 | .../src/pipeline_transcode.cpp | 6 ++++- | ||
| 15 | 2 files changed, 27 insertions(+), 6 deletions(-) | ||
| 16 | |||
| 17 | diff --git a/tools/legacy/sample_misc/wayland/src/class_wayland.cpp b/tools/legacy/sample_misc/wayland/src/class_wayland.cpp | ||
| 18 | index 8f6edbb..af4d3f3 100644 | ||
| 19 | --- a/tools/legacy/sample_misc/wayland/src/class_wayland.cpp | ||
| 20 | +++ b/tools/legacy/sample_misc/wayland/src/class_wayland.cpp | ||
| 21 | @@ -144,19 +144,36 @@ bool Wayland::CreateSurface() { | ||
| 22 | } | ||
| 23 | |||
| 24 | void Wayland::FreeSurface() { | ||
| 25 | - if (NULL != m_shell_surface) | ||
| 26 | + if (NULL != m_shell_surface) { | ||
| 27 | wl_shell_surface_destroy(m_shell_surface); | ||
| 28 | - if (NULL != m_surface) | ||
| 29 | + m_shell_surface = NULL; | ||
| 30 | + } | ||
| 31 | + if (NULL != m_surface) { | ||
| 32 | + while (!m_buffers_list.empty()) { | ||
| 33 | + wl_surface_attach(m_surface, NULL, 0, 0); | ||
| 34 | + wl_surface_commit(m_surface); | ||
| 35 | + if (wl_display_dispatch_queue(m_display, m_event_queue) < 1) | ||
| 36 | + break; | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | wl_surface_destroy(m_surface); | ||
| 40 | + m_surface = NULL; | ||
| 41 | + } | ||
| 42 | #if defined(WAYLAND_LINUX_XDG_SHELL_SUPPORT) | ||
| 43 | - if (NULL != m_xdg_toplevel) | ||
| 44 | + if (NULL != m_xdg_toplevel) { | ||
| 45 | xdg_toplevel_destroy(m_xdg_toplevel); | ||
| 46 | - if (NULL != m_xdg_surface) | ||
| 47 | + m_xdg_toplevel = NULL; | ||
| 48 | + } | ||
| 49 | + if (NULL != m_xdg_surface) { | ||
| 50 | xdg_surface_destroy(m_xdg_surface); | ||
| 51 | + m_xdg_surface = NULL; | ||
| 52 | + } | ||
| 53 | #endif | ||
| 54 | #if defined(WAYLAND_LINUX_DMABUF_SUPPORT) | ||
| 55 | - if (NULL != m_dmabuf) | ||
| 56 | + if (NULL != m_dmabuf) { | ||
| 57 | zwp_linux_dmabuf_v1_destroy(m_dmabuf); | ||
| 58 | + m_dmabuf = NULL; | ||
| 59 | + } | ||
| 60 | #endif | ||
| 61 | } | ||
| 62 | |||
| 63 | diff --git a/tools/legacy/sample_multi_transcode/src/pipeline_transcode.cpp b/tools/legacy/sample_multi_transcode/src/pipeline_transcode.cpp | ||
| 64 | index 1c39daf..5e69a94 100644 | ||
| 65 | --- a/tools/legacy/sample_multi_transcode/src/pipeline_transcode.cpp | ||
| 66 | +++ b/tools/legacy/sample_multi_transcode/src/pipeline_transcode.cpp | ||
| 67 | @@ -4675,12 +4675,16 @@ void CTranscodingPipeline::Close() { | ||
| 68 | m_bIsJoinSession = false; | ||
| 69 | } | ||
| 70 | |||
| 71 | - //Destroy renderer | ||
| 72 | #if defined(_WIN32) || defined(_WIN64) | ||
| 73 | + //Destroy renderer | ||
| 74 | if (m_hwdev4Rendering) { | ||
| 75 | delete m_hwdev4Rendering; | ||
| 76 | m_hwdev4Rendering = NULL; | ||
| 77 | } | ||
| 78 | +#else | ||
| 79 | + if (m_hwdev4Rendering) { | ||
| 80 | + m_hwdev4Rendering->Close(); | ||
| 81 | + } | ||
| 82 | #endif | ||
| 83 | |||
| 84 | if (m_b3DLutEnable) { | ||
| 85 | -- | ||
| 86 | 2.40.1 | ||
| 87 | |||
diff --git a/recipes-multimedia/onevpl/files/0003-Fix-X11-rendering-corruption-issue.patch b/recipes-multimedia/onevpl/files/0003-Fix-X11-rendering-corruption-issue.patch new file mode 100644 index 00000000..10436c2b --- /dev/null +++ b/recipes-multimedia/onevpl/files/0003-Fix-X11-rendering-corruption-issue.patch | |||
| @@ -0,0 +1,30 @@ | |||
| 1 | From 9e13ea07fda1516f3c680929bea880aa4d303721 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Lim Siew Hoon <siew.hoon.lim@intel.com> | ||
| 3 | Date: Thu, 23 Mar 2023 09:46:04 +0800 | ||
| 4 | Subject: [PATCH 3/5] Fix X11 rendering corruption issue. | ||
| 5 | |||
| 6 | Upstream-Status: Backport | ||
| 7 | Expect it to be removed once move to v2023.3.0 and above. | ||
| 8 | https://github.com/oneapi-src/oneVPL/commit/f129e3ba2ca276f08003ae314d674fba4b5290cd | ||
| 9 | |||
| 10 | Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com> | ||
| 11 | --- | ||
| 12 | tools/legacy/sample_common/src/vaapi_device.cpp | 2 +- | ||
| 13 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 14 | |||
| 15 | diff --git a/tools/legacy/sample_common/src/vaapi_device.cpp b/tools/legacy/sample_common/src/vaapi_device.cpp | ||
| 16 | index 98c5883..b90443a 100644 | ||
| 17 | --- a/tools/legacy/sample_common/src/vaapi_device.cpp | ||
| 18 | +++ b/tools/legacy/sample_common/src/vaapi_device.cpp | ||
| 19 | @@ -271,7 +271,7 @@ mfxStatus CVAAPIDeviceX11::RenderFrame(mfxFrameSurface1* pSurface, | ||
| 20 | width = pSurface->Info.CropX + pSurface->Info.CropW; | ||
| 21 | height = pSurface->Info.CropY + pSurface->Info.CropH; | ||
| 22 | |||
| 23 | - stride = width * bpp / 8; | ||
| 24 | + stride = memId->m_image.pitches[0]; | ||
| 25 | size = PAGE_ALIGN(stride * height); | ||
| 26 | |||
| 27 | bo = drmintellib.drm_intel_bo_gem_create_from_prime(m_bufmgr, | ||
| 28 | -- | ||
| 29 | 2.40.1 | ||
| 30 | |||
diff --git a/recipes-multimedia/onevpl/files/0004-Adjust-MPEG-1920x1088-alignment.patch b/recipes-multimedia/onevpl/files/0004-Adjust-MPEG-1920x1088-alignment.patch new file mode 100644 index 00000000..90728cad --- /dev/null +++ b/recipes-multimedia/onevpl/files/0004-Adjust-MPEG-1920x1088-alignment.patch | |||
| @@ -0,0 +1,75 @@ | |||
| 1 | From e73b46657b286cd015e489e691166cbc79f5e79e Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Lim Siew Hoon <siew.hoon.lim@intel.com> | ||
| 3 | Date: Thu, 20 Apr 2023 10:16:30 +0800 | ||
| 4 | Subject: [PATCH 4/5] Adjust MPEG 1920x1088 alignment | ||
| 5 | |||
| 6 | Driver alignment for Mjpeg decode is 8, | ||
| 7 | but vpp need 16 alignment. | ||
| 8 | |||
| 9 | [Internal] | ||
| 10 | OSPR: Auto | ||
| 11 | Commit_Type: BugFix | ||
| 12 | Platforms: Gen11+ | ||
| 13 | OS: Windows and Linux | ||
| 14 | Feature impact: Dec_Legacy | ||
| 15 | Resolves: N/A | ||
| 16 | Related-to: PR#6323 | ||
| 17 | Klocwork: N/A | ||
| 18 | TP_Passed: N/A | ||
| 19 | IP Scan: N/A | ||
| 20 | Open/Embargo Dependency: N/A | ||
| 21 | |||
| 22 | Signed-off-by: Teng, Jin Chung <jin.chung.teng@intel.com> | ||
| 23 | |||
| 24 | Upstream-Status: Backport | ||
| 25 | Expect it to be removed once move to v2023.3.0 and above. | ||
| 26 | https://github.com/oneapi-src/oneVPL/commit/7fe92332a7c32e85e6bb0a2724d66ce7124006ee | ||
| 27 | |||
| 28 | Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com> | ||
| 29 | --- | ||
| 30 | tools/legacy/sample_decode/src/pipeline_decode.cpp | 9 +++++++++ | ||
| 31 | .../sample_multi_transcode/src/pipeline_transcode.cpp | 8 ++++++++ | ||
| 32 | 2 files changed, 17 insertions(+) | ||
| 33 | |||
| 34 | diff --git a/tools/legacy/sample_decode/src/pipeline_decode.cpp b/tools/legacy/sample_decode/src/pipeline_decode.cpp | ||
| 35 | index c0d5c46..47c17f3 100644 | ||
| 36 | --- a/tools/legacy/sample_decode/src/pipeline_decode.cpp | ||
| 37 | +++ b/tools/legacy/sample_decode/src/pipeline_decode.cpp | ||
| 38 | @@ -800,6 +800,15 @@ mfxStatus CDecodingPipeline::InitMfxParams(sInputParams* pParams) { | ||
| 39 | m_mfxVideoParams.mfx.FrameInfo.PicStruct = m_mfxBS.PicStruct; | ||
| 40 | } | ||
| 41 | |||
| 42 | + // MJPEG decoder just need 8 alignment for height but VPP need 16 alignment still | ||
| 43 | + if (m_bVppIsUsed && (m_mfxVideoParams.mfx.CodecId == MFX_CODEC_JPEG) && | ||
| 44 | + (pParams->bUseHWLib)) { | ||
| 45 | + m_mfxVideoParams.mfx.FrameInfo.Height = | ||
| 46 | + (MFX_PICSTRUCT_PROGRESSIVE == m_mfxVideoParams.mfx.FrameInfo.PicStruct) | ||
| 47 | + ? MSDK_ALIGN16(m_mfxVideoParams.mfx.FrameInfo.Height) | ||
| 48 | + : MSDK_ALIGN32(m_mfxVideoParams.mfx.FrameInfo.Height); | ||
| 49 | + } | ||
| 50 | + | ||
| 51 | switch (pParams->nRotation) { | ||
| 52 | case 0: | ||
| 53 | m_mfxVideoParams.mfx.Rotation = MFX_ROTATION_0; | ||
| 54 | diff --git a/tools/legacy/sample_multi_transcode/src/pipeline_transcode.cpp b/tools/legacy/sample_multi_transcode/src/pipeline_transcode.cpp | ||
| 55 | index 5e69a94..26b0915 100644 | ||
| 56 | --- a/tools/legacy/sample_multi_transcode/src/pipeline_transcode.cpp | ||
| 57 | +++ b/tools/legacy/sample_multi_transcode/src/pipeline_transcode.cpp | ||
| 58 | @@ -406,6 +406,14 @@ mfxStatus CTranscodingPipeline::VPPPreInit(sInputParams* pParams) { | ||
| 59 | } | ||
| 60 | |||
| 61 | if (m_bIsVpp) { | ||
| 62 | + // MJPEG decoder just need 8 alignment for height but VPP need 16 alignment still | ||
| 63 | + if ((pParams->DecodeId == MFX_CODEC_JPEG) && (pParams->libType != MFX_IMPL_SOFTWARE)) { | ||
| 64 | + m_mfxDecParams.mfx.FrameInfo.Height = | ||
| 65 | + (m_mfxDecParams.mfx.FrameInfo.PicStruct == MFX_PICSTRUCT_PROGRESSIVE) | ||
| 66 | + ? MSDK_ALIGN16(m_mfxDecParams.mfx.FrameInfo.Height) | ||
| 67 | + : MSDK_ALIGN32(m_mfxDecParams.mfx.FrameInfo.Height); | ||
| 68 | + } | ||
| 69 | + | ||
| 70 | sts = InitVppMfxParams(m_mfxVppParams, pParams); | ||
| 71 | MSDK_CHECK_STATUS(sts, "InitVppMfxParams failed"); | ||
| 72 | |||
| 73 | -- | ||
| 74 | 2.40.1 | ||
| 75 | |||
diff --git a/recipes-multimedia/onevpl/files/0005-Fix-sample_multi_transcode-intermittent-segfault.patch b/recipes-multimedia/onevpl/files/0005-Fix-sample_multi_transcode-intermittent-segfault.patch new file mode 100644 index 00000000..52f8fb7e --- /dev/null +++ b/recipes-multimedia/onevpl/files/0005-Fix-sample_multi_transcode-intermittent-segfault.patch | |||
| @@ -0,0 +1,34 @@ | |||
| 1 | From 1f03f8e2569e69e558d077643ea628d3ba3cacb7 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Vincent Cheah Beng Keat <vincent.beng.keat.cheah@intel.com> | ||
| 3 | Date: Thu, 25 May 2023 01:16:18 +0800 | ||
| 4 | Subject: [PATCH 5/5] Fix sample_multi_transcode intermittent segfault | ||
| 5 | |||
| 6 | HSD ID: 15012772965 | ||
| 7 | Tested command: ./sample_multi_transcode -par config.par | ||
| 8 | |||
| 9 | Upstream-Status: Backport | ||
| 10 | Expect it to be removed once move to v2023.3.0 and above. | ||
| 11 | https://github.com/oneapi-src/oneVPL/commit/c21756e6a235fbde08844cca5e429ca142eef479 | ||
| 12 | --- | ||
| 13 | tools/legacy/sample_misc/wayland/src/class_wayland.cpp | 4 +++- | ||
| 14 | 1 file changed, 3 insertions(+), 1 deletion(-) | ||
| 15 | |||
| 16 | diff --git a/tools/legacy/sample_misc/wayland/src/class_wayland.cpp b/tools/legacy/sample_misc/wayland/src/class_wayland.cpp | ||
| 17 | index af4d3f3..e86ceee 100644 | ||
| 18 | --- a/tools/legacy/sample_misc/wayland/src/class_wayland.cpp | ||
| 19 | +++ b/tools/legacy/sample_misc/wayland/src/class_wayland.cpp | ||
| 20 | @@ -152,8 +152,10 @@ void Wayland::FreeSurface() { | ||
| 21 | while (!m_buffers_list.empty()) { | ||
| 22 | wl_surface_attach(m_surface, NULL, 0, 0); | ||
| 23 | wl_surface_commit(m_surface); | ||
| 24 | - if (wl_display_dispatch_queue(m_display, m_event_queue) < 1) | ||
| 25 | + if (wl_display_dispatch_queue(m_display, m_event_queue) < 1) { | ||
| 26 | + DestroyBufferList(); | ||
| 27 | break; | ||
| 28 | + } | ||
| 29 | } | ||
| 30 | |||
| 31 | wl_surface_destroy(m_surface); | ||
| 32 | -- | ||
| 33 | 2.40.1 | ||
| 34 | |||
diff --git a/recipes-multimedia/onevpl/onevpl_2023.1.3.bb b/recipes-multimedia/onevpl/onevpl_2023.1.3.bb index c106efb6..5b8b6260 100644 --- a/recipes-multimedia/onevpl/onevpl_2023.1.3.bb +++ b/recipes-multimedia/onevpl/onevpl_2023.1.3.bb | |||
| @@ -9,6 +9,11 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=c18ea6bb4786a26bf4eee88a7424a408 \ | |||
| 9 | file://third-party-programs.txt;md5=f43d223f2b736e89abed9660483d0386" | 9 | file://third-party-programs.txt;md5=f43d223f2b736e89abed9660483d0386" |
| 10 | 10 | ||
| 11 | SRC_URI = "git://github.com/oneapi-src/oneVPL.git;protocol=https;branch=master \ | 11 | SRC_URI = "git://github.com/oneapi-src/oneVPL.git;protocol=https;branch=master \ |
| 12 | file://0001-Fix-valgrind-leak-reported-on-wayland.patch \ | ||
| 13 | file://0002-Fix-sample_multi_transcode-segfault-on-wayland.patch \ | ||
| 14 | file://0003-Fix-X11-rendering-corruption-issue.patch \ | ||
| 15 | file://0004-Adjust-MPEG-1920x1088-alignment.patch \ | ||
| 16 | file://0005-Fix-sample_multi_transcode-intermittent-segfault.patch \ | ||
| 12 | " | 17 | " |
| 13 | SRCREV = "4cdf44ccaa605460499c52f39eff5517da2fc3c8" | 18 | SRCREV = "4cdf44ccaa605460499c52f39eff5517da2fc3c8" |
| 14 | S = "${WORKDIR}/git" | 19 | S = "${WORKDIR}/git" |
