1.18.0 Access violation in MPCSubs.dll (1 Viewer)

doskabouter

Development Group
  • Team MediaPortal
  • September 27, 2009
    4,583
    2,972
    Nuenen
    Home Country
    Netherlands Netherlands
    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:
    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

    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)
    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
     
    Last edited:

    Sebastiii

    Development Group
  • Team MediaPortal
  • November 12, 2007
    16,583
    10,403
    France
    Home Country
    France France

    Attachments

    • mpcSubs.zip
      246.3 KB
    Last edited:

    doskabouter

    Development Group
  • Team MediaPortal
  • September 27, 2009
    4,583
    2,972
    Nuenen
    Home Country
    Netherlands Netherlands
    Well, my first tests show that it indeed works with the current MP 1.18, and that I wasn't able to generate the crash.
    Will put it in the hands of my wife, she's a lot more thorough when it comes to testing :)
     

    doskabouter

    Development Group
  • Team MediaPortal
  • September 27, 2009
    4,583
    2,972
    Nuenen
    Home Country
    Netherlands Netherlands
    Well, as I said "If I do my best" :), normally it occurs a lot less frequent.
    I didn't have that either in an earlier version, perhaps there were some fixes for memory leaks or so, or the order of things happening in the player part have changed just enough to trigger this
     

    Users who are viewing this thread

    Top Bottom