[confirm] MP always crashes after wakeup from standby when starting a recorded file (3 Viewers)

Sebastiii

Development Group
  • Team MediaPortal
  • November 12, 2007
    16,583
    10,403
    France
    Home Country
    France France
    RC (Remote control) ?
    So it act like you want to resume multiple times ?
     

    elliottmc

    Retired Team Member
  • Premium Supporter
  • August 7, 2005
    14,927
    6,061
    Cardiff, UK
    Home Country
    United Kingdom United Kingdom
    It seems that the error resulted from my RC which send multiple "Start MP" commands.
    When I start MP manually the error doesn't come up even after enabling all plugins.

    Thanks. Which RC do you have? Maybe there is a way to configure it.
     

    rogerleifert

    Retired Team Member
  • Premium Supporter
  • April 22, 2009
    241
    82
    Aachen
    Home Country
    Germany Germany
    Thanks. Which RC do you have? Maybe there is a way to configure it.

    Well, it's not that easy. As you can see from my system-specs I am using the Zalman HD160-XT case which has a proprietary IR-receiver, IR-RC and IR-control-software ("Zini"). The IR-codes from the Zalman IR-RC were mapped to my Logitech Harmony 885 which controls all in all 10 devices in my Stereo-/Video-Setup.
    It is able to send commands in any imaginable combination as well as repeating some commands after a delay etc.

    Now the wakeup-command from standby is a kind of "Power-On" command and works normally.
    That would normally be followed by the "Mediaportal.exe" command with a safety-delay of a few seconds.
    But since upgrading from WinXP/32bit to Win7/64bit I have problems with the proprietary "Zini" control software which translates IR-commands to nearly any desired and configurable action (combination of up to 3 key-presses, direct execution of an .exe like Mediaportal.exe, internal commands like Standby etc.)

    Formerly I had to send the Power-On command a second time to execute the "Mediaportal.exe"! Strange isn't it.
    That must have something to do with that the Zini control software sometimes being not in focus and then not or not correctly reacting to IR-commands.
    So it's really a bit confusing. However after that the IR-RC worked perfectly with the Zini-software once MP was started (and in focus, because Zini recognizes which program is in focus and you can map different commands to different programs being in focus).

    Perhaps the clean solution would be to install Win7/32bit instead of 64bit. I wish I never had installed the 64bit version because one suspicion is that the problems with the Zini-software originate from having to run it in WinXP-compatibility mode to work at all.

    Anyway. After I recognized that manually starting MP after wakeup seemed to make the problem go away, I deleted the second Power-On command, gave the system a 20-second delay after wakeup before starting MP with the "Mediaportal.exe" command. The only annoyance was that MP now does not always start automatically after Power-up. But at least I thought that would make the crashes go away.

    Yesterday everything went well, but today the old problem reappeared at least once :(

    So everything back to start. I am really confused and it probably sounds as confusing to you.

    Perhaps I will now try to directly start the Watchdog.exe with MP in debug mode with the IR-RC instead of the Mediaportal.exe and try it at least 10 times directly after wakeup. That could at least narrow down the problem a bit.
    We'll see....

    Kind regards

    Roger
     

    Sebastiii

    Development Group
  • Team MediaPortal
  • November 12, 2007
    16,583
    10,403
    France
    Home Country
    France France
    Yep it's related to Audio Device not ready.
    In fact in MP on wakeup, MP start/try to init Audio device :
    It failed :
    Code:
    2014-03-09 15:26:58,328] [Log    ] [MPMain   ] [ERROR] - Exception: System.InvalidOperationException: Mixer.GetControl.2
       bei MediaPortal.Mixer.Mixer.GetControl(MixerComponentType componentType, MixerControlType controlType)
       bei MediaPortal.Mixer.Mixer.Open(Int32 mixerIndex, Boolean isDigital)
       bei MediaPortal.Player.VolumeHandler..ctor(Int32[] volumeTable)
       bei MediaPortal.Player.VolumeHandler.CreateInstance()
       bei MediaPortal.Player.VolumeHandler.get_Instance()
       bei MediaPortalApp.OnStartup()
       bei MediaPortal.D3D.OnLoad(Object sender, EventArgs e)
       bei System.Windows.Forms.Form.OnLoad(EventArgs e)
       bei System.Windows.Forms.Form.OnCreateControl()
       bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
       bei System.Windows.Forms.Control.CreateControl()
       bei System.Windows.Forms.Control.WmShowWindow(Message& m)
       bei System.Windows.Forms.Control.WndProc(Message& m)
       bei System.Windows.Forms.ScrollableControl.WndProc(Message& m)
       bei System.Windows.Forms.ContainerControl.WndProc(Message& m)
       bei System.Windows.Forms.Form.WmShowWindow(Message& m)
       bei System.Windows.Forms.Form.WndProc(Message& m)
       bei MediaPortalApp.WndProc(Message& msg)  Message: Mixer.GetControl.2  Site   : MixerControlDetails GetControl(MediaPortal.Mixer.MixerComponentType, MediaPortal.Mixer.MixerControlType)  Source : Core  Stack Trace:     bei MediaPortal.Mixer.Mixer.GetControl(MixerComponentType componentType, MixerControlType controlType)
       bei MediaPortal.Mixer.Mixer.Open(Int32 mixerIndex, Boolean isDigital)

    After that, in other part of code, i have add a double check when connection Audio Pin :
    Code:
                  try
                  {
                    if (pinName == "Audio")
                    {
                      try
                      {
                      #pragma warning disable 168
                        VolumeHandler vh = VolumeHandler.Instance;
                      #pragma warning restore 168
                        // vh.Volume = 19660500 that means Audio endpoint device are not available.
                        if (vh.Volume == 19660500) // Check if new audio device is connected
                        {
                          VolumeHandler.Dispose();
                        #pragma warning disable 168
                          vh = VolumeHandler.Instance;
                        #pragma warning restore 168
                        }
                        if (vh.Volume != 19660500)
                        {
                          hr = graphBuilder.Render(pins[0]);
                        }
                      }
                      catch (Exception exception)
                      {
                        Log.Warn("DirectShowUtil: Could not initialize volume handler (don't connect Audio Pin) : ",
                                 exception.Message);
                      }
                    }
                    else
                    {
                      hr = graphBuilder.Render(pins[0]);
                    }
                  }

    It failed too :

    log line :
    Code:
    [2014-03-09 15:27:26,193] [Log    ] [MPMain   ] [WARN ] - DirectShowUtil: Could not initialize volume handler (don't connect Audio Pin) :

    So it's fully related to audio device not init and can't be init even after a while it seems.

    Can you test next time to play something on your PC before start to play something in MP (but let MP running) ?

    Thanks :)
     

    rogerleifert

    Retired Team Member
  • Premium Supporter
  • April 22, 2009
    241
    82
    Aachen
    Home Country
    Germany Germany
    Did just that.
    Wokeup MP from standby and started MP.
    Then (before playing a recorded TV-file) I started VLC mediaplayer and played a .ts-file.
    No problem with VLC.
    Sound is OK.
    Then tried to play a recorded TV-file with MP.
    And boom. Same crash as before.
    I can now always predict when MP will crash because the startup-time of MP is much slower than normal before a crash.
    Logs attached
     

    Sebastiii

    Development Group
  • Team MediaPortal
  • November 12, 2007
    16,583
    10,403
    France
    Home Country
    France France
    Yep the slowdown time is surely related because MP failed to init audio device. :)
    Can you try something else than vlc (i know audio work but like it maybe not use the same directx level lol (i'm not 100% sure) but can you try mpc-hc for example that will use lav audio) ?

    Thanks for log, i can try to add log in bin to detect if directshowutil try to really init the audio device when it failed the first time.
     

    Sebastiii

    Development Group
  • Team MediaPortal
  • November 12, 2007
    16,583
    10,403
    France
    Home Country
    France France
    Can you try with attached dll ? :)
    Try to use MP as normal to see if all is ok and then try to standby/wakeup :)
    It have more log (set as error) to try to see what happen :)
    Thanks :)
     

    Sebastiii

    Development Group
  • Team MediaPortal
  • November 12, 2007
    16,583
    10,403
    France
    Home Country
    France France
    New files :) previous one has not all log and this one try to catch more exception.
    Try with this v2 dll with your current setting, after that if you can reproduce the issue, try to set MP to Volume Master and not Wave :

    upload_2014-3-9_21-54-27.png
     

    Attachments

    • Core_volume_handler_v2.zip
      2.8 MB

    rogerleifert

    Retired Team Member
  • Premium Supporter
  • April 22, 2009
    241
    82
    Aachen
    Home Country
    Germany Germany
    With your dll I can start playing a recorded .ts-file, but I cannot stop it anymore.
    Is this intended?
    Of course starting is sufficient to get the crash :)

    Edit: Only just saw your V2-dll.
    Will try that one
     

    Users who are viewing this thread

    Top Bottom