iso's not playing for me in TVSeries (1 Viewer)

Mickey2Eyes

Portal Pro
December 18, 2007
79
2
Home Country
Germany Germany
I use the MP-TVSeries v2.3.3538 Stable Release [08-Sep-09]
and MP 1.0.1
Is it possible that MP is the problem?
At the moment I have no time for an update but I will try in a few weeks.

Just for understanding, what do you say to this part of the source code:

// If the file is an image file, it should be mounted before playing
string filename = m_currentEpisode[DBEpisode.cFilename];
if (m_bIsImageFile) {
if (!GUIVideoFiles.MountImageFile(GUIWindowManager.ActiveWindow, filename)) {
return false;
}
}

// Start Listening to any External Player Events
listenToExternalPlayerEvents = true;

// Play File
result = g_Player.Play(filename, g_Player.MediaType.Video);

does the GUIVideoFiles.MountImageFile(GUIWindowManager.ActiveWindow, filename) return the new filename?
For example the image d:\imageFiles\image.iso on harddisc is mounted to the virtual disc drive V:. Does "filename" then point to the virtual drive? Then i think it should work.
If "filename" is still the path to the iso, this declares my old error when TvSeries trys to play the iso directly.

I hope it was understandable. I have no experience with c# and the programming in for mp
 

ltfearme

Community Plugin Dev
  • Premium Supporter
  • June 10, 2007
    6,760
    7,224
    Sydney
    Home Country
    Australia Australia
    MountImageFile leave the filename untouched. the g_Player.Play method will work out what to do with the file:

    Code:
    public static bool Play(string strFile, MediaType type)
        {
          try
          {
            if (string.IsNullOrEmpty(strFile))
            {
              Log.Error("g_Player.Play() called without file attribute");
              return false;
            }
    
            if (Util.Utils.IsDVD(strFile))
            {
              ChangeDriveSpeed(strFile, DriveType.CD);
            }
    
            _mediaInfo = new MediaInfoWrapper(strFile);
            Starting = true;
            
            if (Util.Utils.IsVideo(strFile) || Util.Utils.IsLiveTv(strFile)) //video, tv, rtsp
            {
              if (type == MediaType.Unknown)
              {
                type = MediaType.Video;
              }
              // refreshrate change done here.
              RefreshRateChanger.AdaptRefreshRate(strFile, (RefreshRateChanger.MediaType)(int)type);
    
              if (RefreshRateChanger.RefreshRateChangePending)
              {
                TimeSpan ts = DateTime.Now - RefreshRateChanger.RefreshRateChangeExecutionTime;
                if (ts.TotalSeconds > RefreshRateChanger.WAIT_FOR_REFRESHRATE_RESET_MAX)
                {
                  Log.Info("g_Player.Play - waited {0}s for refreshrate change, but it never took place (check your config). Proceeding with playback.",
                  RefreshRateChanger.WAIT_FOR_REFRESHRATE_RESET_MAX);
                  RefreshRateChanger.ResetRefreshRateState();
                }
                else
                {
                  return true;
                }
              }
            }
    
            _currentStep = 0;
            _currentStepIndex = -1;
            _seekTimer = DateTime.MinValue;
            _isInitialized = true;
            _subs = null;
    
            if (_player != null)
            {
              GUIGraphicsContext.ShowBackground = true;
              OnChanged(strFile);
              OnStopped();
              bool doStop = true;
              if (Util.Utils.IsAudio(strFile))
              {
                if (type == MediaType.Unknown)
                {
                  type = MediaType.Music;
                }
                if (BassMusicPlayer.IsDefaultMusicPlayer && BassMusicPlayer.Player.Playing)
                {
                  doStop = !BassMusicPlayer.Player.CrossFadingEnabled;
                }
              }
              if (doStop)
              {
                if (_player != null)
                {
                  _player.Stop();
                }
                CachePlayer();
                _player = null;
              }
            }
    
            Log.Info("g_Player.Play({0} {1})", strFile, type);
            if (!Util.Utils.IsAVStream(strFile) && Util.Utils.IsVideo(strFile))
            {
              string extension = Path.GetExtension(strFile).ToLower();
              bool isImageFile = Util.VirtualDirectory.IsImageFile(extension);
              
              if (!Util.Utils.IsRTSP(strFile) && extension != ".ts") // do not play recorded tv with external player
              {
                using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.MPSettings())
                {
                  bool bInternal, bInternalDVD;
                  bInternal = xmlreader.GetValueAsBool("movieplayer", "internal", true);
                  bInternalDVD = xmlreader.GetValueAsBool("dvdplayer", "internal", true);
    
                  if ((!bInternalDVD && (extension == ".ifo" || extension == ".vob" || isImageFile)) || (!bInternal && (extension != ".ifo" && extension != ".vob" && !isImageFile))) // external player used
                  {
                    if (isImageFile)
                    {
                      strFile = Util.DaemonTools.GetVirtualDrive() + @"\VIDEO_TS\VIDEO_TS.IFO";
                    }
                    if (Util.Utils.PlayMovie(strFile))
                    {
                      return true;
                    }
                    else // external player error
                    {
                      UnableToPlay(strFile, type);
                      return false;
                    }
                  }
                }
              }
            }
    
            _player = _factory.Create(strFile, type);
    
            if (_player != null)
            {
              LoadChapters(strFile);
              _player = CachePreviousPlayer(_player);
              bool bResult = _player.Play(strFile);
              if (!bResult)
              {
                Log.Info("g_Player: ended");
                _player.Release();
                _player = null;
                _subs = null;
                UnableToPlay(strFile, type);
              }
              else if (_player.Playing)
              {
                _isInitialized = false;
                _currentFilePlaying = _player.CurrentFile;
                if (_chapters == null)
                {
                  _chapters = _player.Chapters;
                }
                OnStarted();
              }
              return bResult;
            }
          }
          finally
          {
            Starting = false;
          }
          UnableToPlay(strFile, type);
          return false;
        }

    So it should attempt to play:

    Code:
    strFile = Util.DaemonTools.GetVirtualDrive() + @"\VIDEO_TS\VIDEO_TS.IFO";
     

    Mickey2Eyes

    Portal Pro
    December 18, 2007
    79
    2
    Home Country
    Germany Germany
    Ah ok, I understand.
    I will try it again with an updated system, maybe it works then.
    Thanks for the explanation.
     

    JustusIV

    Portal Pro
    April 16, 2009
    78
    0
    Home Country
    United States of America United States of America
    I updated to the newest stable MyTvSeries and now it mounts the iso but i still get the same error.
    Ideas?
     

    ltfearme

    Community Plugin Dev
  • Premium Supporter
  • June 10, 2007
    6,760
    7,224
    Sydney
    Home Country
    Australia Australia
    Are you using MP 1.0.X or MP 1.1.0? There was a known issue with MP1.0.x that displays an error.
     

    JustusIV

    Portal Pro
    April 16, 2009
    78
    0
    Home Country
    United States of America United States of America
    As a heads up, while it is working for me also know that i have switched to 1.1.0 i have a strange lag, i think MyTvSeries might be tring to get media info 5 times from the iso every time it does a import.
     

    ltfearme

    Community Plugin Dev
  • Premium Supporter
  • June 10, 2007
    6,760
    7,224
    Sydney
    Home Country
    Australia Australia
    As a heads up, while it is working for me also know that i have switched to 1.1.0 i have a strange lag, i think MyTvSeries might be tring to get media info 5 times from the iso every time it does a import.

    Yeah, I secretly am aware of that one...it will stop trying after 5 times (actually I think its 6 (another bug)).

    The plugin needs a check to disable mediainfo checking on isos.
     

    Users who are viewing this thread

    Top Bottom