From 2af22cde925da42491949df90cb8a2a59c1f6a33 Mon Sep 17 00:00:00 2001 From: Paddy Xu Date: Thu, 25 Jan 2018 02:18:02 +0200 Subject: [PATCH] temporary ugly fix for memory leak --- .../ViewerPanel.xaml.cs | 23 +++++++++++++++++- .../ffme/ffme.common.dll | Bin 162816 -> 162816 bytes .../ffme/ffme.win.dll | Bin 112640 -> 112640 bytes 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/ViewerPanel.xaml.cs b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/ViewerPanel.xaml.cs index 81f2c5e..98066c7 100644 --- a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/ViewerPanel.xaml.cs +++ b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/ViewerPanel.xaml.cs @@ -21,6 +21,7 @@ using System.Diagnostics; using System.IO; using System.Linq; using System.Runtime.CompilerServices; +using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Input; @@ -110,7 +111,27 @@ namespace QuickLook.Plugin.VideoViewer try { CoverArt = null; - mediaElement?.Dispose(); + if (mediaElement.IsOpening) + { + void DelayedDisposeEvent(object sender, PropertyChangedEventArgs propertyChangedEventArgs) + { + var me = (Unosquare.FFME.MediaElement) sender; + + if (propertyChangedEventArgs.PropertyName != nameof(me.IsPlaying)) + return; + if (me.IsPlaying != true) + return; + + me.PropertyChanged -= DelayedDisposeEvent; + me.IsMuted = true; + Task.Delay(200).ContinueWith(t => me.Dispose()); + } + + mediaElement.PropertyChanged += DelayedDisposeEvent; + } + else + mediaElement.Dispose(); + mediaElement = null; } catch (Exception e) diff --git a/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/ffme/ffme.common.dll b/QuickLook.Plugin/QuickLook.Plugin.VideoViewer/ffme/ffme.common.dll index ba417808758ee1c8717de11979395250760219d3..18a6b9573fcbe28de336c56544e937b87b4b6f7b 100644 GIT binary patch delta 2487 zcmYk+dr(w$6bJC%Is0H25tpZr1$W)#w}3qI)i}gRQ@|*Syh4~XBDGu{1v63#n=7+~ z<|AUZP}0h5Ajz^(93{szeBdKfdLfmXAg)LVh@e|A+3)`D4_N+S_}uR~=XdVCbJ^(9 zZ*=M3->kk_mHSKiw)raK8r8u+Gwb1kW9q3iN7Wel2Q3vLq0iqS<3s`ynOY$!*AzDXzpJl?eaAg5PEEY0f zS%8qdJTkX-PhV$-q;6r;Nht~Q%r)JH=Y{+{ZxSc$7MjD=CNz;NqE+de&Q&1Po)BYl zg8G({O-{9$?!Y#osMSE)VRM_3eG}_J+o4_JEGCzzH@yq-x8<;y9E=H|9T4PHR1pKD z6ZUbHj+>Hgq@D1sB3)(ZYEu`S;W~}W6M=L=L_0r%RVK1*7MGHBL$h1f4Q=g`T&jdU z(0F&KaWd_JPDQ%clI^Bm=o2bQj$tAlBYh7bw0o#8l0JYrigedfsz^Vi3jLj8Gxft_ zF6F$3(9lif^W}R=G(Chyx9|~U_wb>*8kODh2y%tA8d)}>zqr;2y{wh9LPcbf*G&2d z;_nZw2E+yB!-}OY*vG`qmyb`N1F-Coa-fH90euXsgd#}>(>ktV-3*e&R4lTCstihS ztH|n9Sxglon~-KV0e&KsX86(ruv(})QPu%j5-HVH&sa-UNbd8(%Utry1~M9(x$H#BQB~5>Xx7P%b`q_wq~2)bQjQ;k2G5b>$DmnAKHh-M zZkYkw-7+6+9yQYEgHEmrUDDdU)EDmwEs{9<1oOBCxReLwi%)sUV}|rBmvR@rn8al# zN5~g!Xu8mO)z{PyGldqyVd{^|xRfaYxQ0ufA^{1&LQ#4K>S+M(91ej5;vSLR#B($d zYu&Q3cwA&-Rp;nf>>SR1q~j1r%WFGfa3+umIEt&749;A{6eqIk`2CW_h%X3UjNi}n z23IM$77xUTn}q7PDn+F{)QEezl%YnvqEzzt8-%UHx=Mr4<<>V5!CPKU>60enOim}T zZ7e2C5t5fN;R-Hg850%>$;+5+@2wmj>dy{zWEjTp zYdrg)Aa&5>=)ci%ZFYg(zuu4-yCbP;lRET9=5Mw_&yQ@at|QT_Dx2a8({uC-+2Uld kKJxL7ptU%|u;KLhb?E_TlTSLX2A_O=tNm#1THK@mA1@PGKL7v# delta 2426 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