MediaPortal Version: 1.18.0
Description
Don't know if it was already present in 1.17 (did use that for a really short time, 1.16 didn't had this problem) but since 1.18 I get regular crashes of mediaportal when using the onlinevideos plugin.
They especially occur when it's buffering and I stop the process (f.e. because buffering is too slow), but also occurs sometimes as fetching the url doesn't give the expected result.
The crash dialog from windows gives me:
and attaching visual studio to the crashed mediaportal sends me to base.Dispose() in OnlineVideosPlayer.Dispose()
full stacktrace:
P.s. I did remove mediaportal.xml and trakt logging from the logs.zip as that contained usernames and passwords...
Edit: checking mpcSubs.cpp in FreeSubtitles, it's only one of 2 places where the use of g_subManager isn't guarded by an if (g_subManager), but there is a try/catch around it so that should (although not the nicest solution) be sufficient?
Edit2: after polishing my c++ skills it seems that access violations aren't caught by try/catch blocks, so perhaps an if should do the trick there?
I'm not able to compile the mpcSubs.dll myself, but if I can have a test version I can try and see if the error is gone.
Steps to Reproduce:
Try to play videos in onlinevideos and stop them when buffering.
If I do my best, it'll crash in about 1 in 10 attempts
Description
Don't know if it was already present in 1.17 (did use that for a really short time, 1.16 didn't had this problem) but since 1.18 I get regular crashes of mediaportal when using the onlinevideos plugin.
They especially occur when it's buffering and I stop the process (f.e. because buffering is too slow), but also occurs sometimes as fetching the url doesn't give the expected result.
The crash dialog from windows gives me:
Problem signature:
Problem Event Name: APPCRASH
Application Name: MediaPortal.exe
Application Version: 1.18.0.0
Application Timestamp: 59d9d5bc
Fault Module Name: mpcSubs.dll
Fault Module Version: 0.0.0.0
Fault Module Timestamp: 59d9d5ad
Exception Code: c0000005
Exception Offset: 00001db0
OS Version: 6.1.7601.2.1.0.256.1
Locale ID: 2057
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
Read our privacy statement online:
Datenschutzbestimmungen für Windows 7
If the online privacy statement is not available, please read our privacy statement offline:
C:\Windows\system32\en-US\erofflps.txt
Problem Event Name: APPCRASH
Application Name: MediaPortal.exe
Application Version: 1.18.0.0
Application Timestamp: 59d9d5bc
Fault Module Name: mpcSubs.dll
Fault Module Version: 0.0.0.0
Fault Module Timestamp: 59d9d5ad
Exception Code: c0000005
Exception Offset: 00001db0
OS Version: 6.1.7601.2.1.0.256.1
Locale ID: 2057
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
Read our privacy statement online:
Datenschutzbestimmungen für Windows 7
If the online privacy statement is not available, please read our privacy statement offline:
C:\Windows\system32\en-US\erofflps.txt
and attaching visual studio to the crashed mediaportal sends me to base.Dispose() in OnlineVideosPlayer.Dispose()
full stacktrace:
at MediaPortal.Player.Subtitles.MpcEngine.MpcSubtitles.FreeSubtitles()
at MediaPortal.Player.Subtitles.MpcEngine.FreeSubtitles()
at MediaPortal.Player.VideoPlayerVMR9.Cleanup()
at MediaPortal.Player.VideoPlayerVMR9.CloseInterfaces()
at MediaPortal.Player.VideoPlayerVMR7.Dispose()
at OnlineVideos.MediaPortal1.Player.OnlineVideosPlayer.Dispose() in D:\MediaPortal Sources\mp-onlinevideos2.3\OnlineVideos.MediaPortal1\Player\OnlineVideosPlayer.cs:line 778
at OnlineVideos.MediaPortal1.GUIOnlineVideos.Play_Step5(PlayListItem playItem, String lsUrl, Boolean goFullScreen, PlayerFactory factory, Nullable`1 factoryPrepareResult, Boolean showMessage) in D:\MediaPortal Sources\mp-onlinevideos2.3\OnlineVideos.MediaPortal1\GUIOnlineVideos.cs:line 2442
at OnlineVideos.MediaPortal1.GUIOnlineVideos.<>c__DisplayClass128_0.<Play_Step4>b__1(Boolean success, Object result) in D:\MediaPortal Sources\mp-onlinevideos2.3\OnlineVideos.MediaPortal1\GUIOnlineVideos.cs:line 2423
at OnlineVideos.MediaPortal1.Gui2UtilConnector.ExecuteTaskResultHandler() in D:\MediaPortal Sources\mp-onlinevideos2.3\OnlineVideos.MediaPortal1\Gui2UtilConnector.cs:line 193
at OnlineVideos.MediaPortal1.Gui2UtilConnector.<ExecuteInBackgroundAndCallback>b__19_1(Int32 p1, Int32 p2, Object o) in D:\MediaPortal Sources\mp-onlinevideos2.3\OnlineVideos.MediaPortal1\Gui2UtilConnector.cs:line 112
at MediaPortal.GUI.Library.GUIWindowManager.CallbackMsg(GUIMessage msg)
at MediaPortal.GUI.Library.GUIWindowManager.SendMessage(GUIMessage message)
at MediaPortal.GUI.Library.GUIWindowManager.DispatchThreadMessages()
at MediaPortalApp.FrameMove()
at MediaPortal.D3D.OnIdle(Object sender, EventArgs e)
at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at MediaPortalApp.Main(String[] args)
at MediaPortal.Player.Subtitles.MpcEngine.FreeSubtitles()
at MediaPortal.Player.VideoPlayerVMR9.Cleanup()
at MediaPortal.Player.VideoPlayerVMR9.CloseInterfaces()
at MediaPortal.Player.VideoPlayerVMR7.Dispose()
at OnlineVideos.MediaPortal1.Player.OnlineVideosPlayer.Dispose() in D:\MediaPortal Sources\mp-onlinevideos2.3\OnlineVideos.MediaPortal1\Player\OnlineVideosPlayer.cs:line 778
at OnlineVideos.MediaPortal1.GUIOnlineVideos.Play_Step5(PlayListItem playItem, String lsUrl, Boolean goFullScreen, PlayerFactory factory, Nullable`1 factoryPrepareResult, Boolean showMessage) in D:\MediaPortal Sources\mp-onlinevideos2.3\OnlineVideos.MediaPortal1\GUIOnlineVideos.cs:line 2442
at OnlineVideos.MediaPortal1.GUIOnlineVideos.<>c__DisplayClass128_0.<Play_Step4>b__1(Boolean success, Object result) in D:\MediaPortal Sources\mp-onlinevideos2.3\OnlineVideos.MediaPortal1\GUIOnlineVideos.cs:line 2423
at OnlineVideos.MediaPortal1.Gui2UtilConnector.ExecuteTaskResultHandler() in D:\MediaPortal Sources\mp-onlinevideos2.3\OnlineVideos.MediaPortal1\Gui2UtilConnector.cs:line 193
at OnlineVideos.MediaPortal1.Gui2UtilConnector.<ExecuteInBackgroundAndCallback>b__19_1(Int32 p1, Int32 p2, Object o) in D:\MediaPortal Sources\mp-onlinevideos2.3\OnlineVideos.MediaPortal1\Gui2UtilConnector.cs:line 112
at MediaPortal.GUI.Library.GUIWindowManager.CallbackMsg(GUIMessage msg)
at MediaPortal.GUI.Library.GUIWindowManager.SendMessage(GUIMessage message)
at MediaPortal.GUI.Library.GUIWindowManager.DispatchThreadMessages()
at MediaPortalApp.FrameMove()
at MediaPortal.D3D.OnIdle(Object sender, EventArgs e)
at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at MediaPortalApp.Main(String[] args)
Edit: checking mpcSubs.cpp in FreeSubtitles, it's only one of 2 places where the use of g_subManager isn't guarded by an if (g_subManager), but there is a try/catch around it so that should (although not the nicest solution) be sufficient?
Edit2: after polishing my c++ skills it seems that access violations aren't caught by try/catch blocks, so perhaps an if should do the trick there?
I'm not able to compile the mpcSubs.dll myself, but if I can have a test version I can try and see if the error is gone.
Steps to Reproduce:
Try to play videos in onlinevideos and stop them when buffering.
If I do my best, it'll crash in about 1 in 10 attempts
Last edited: