Is the Compress plugin working for anyone? (1 Viewer)

ziphnor

Retired Team Member
  • Premium Supporter
  • August 4, 2005
    755
    13
    Copenhagen
    Home Country
    Denmark Denmark
    Is anyone here able to succesfully use the Compress plugin under Recorded TV?

    I can start transcoding the recording to VMW and MPEG-2 and as long as i dont change away from the status window its seems to go ok, but as soon as i do change away, the entire GUI locks up and MediaPortal must be shu t down in the Task Manager. Ive had this problem in all recent CVS versions. I tried looking at the log(see below) and i saw a null pointer exception, however this turns out to just be an error in the BlueTwo mytvcompress.xml skin where the id 3 control should be sortbutton and not button. Changing this however didnt help im still having the same problem(minus the null pointer exception). I tried looking into the code, but couldnt find anything that looked like it could cause this problem, however im going to try to look further into it. At the very least i will learn some C# :)

    So i would just like to know if its working for anyone AT ALL?

    Here is the log file contents leading from me entering the compress menu to the compression starting:

    Code:
    06-12-2005 19:23:59 Total Memory allocated:4,43 MB
    06-12-2005 19:23:59 Recorder:enable dx9 exclusive mode
    06-12-2005 19:23:59 goto fullscreen:True
    06-12-2005 19:23:59 app:Switch to fullscreen mode False
    06-12-2005 19:23:59 app:Switched to fullscreen mode
    06-12-2005 19:23:59 window:MediaPortal.GUI.TV.GUIRecordedTV init
    06-12-2005 19:24:02 key:13 0xD (2)
    06-12-2005 19:24:02 window:MediaPortal.GUI.TV.GUIRecordedTV deinit
    06-12-2005 19:24:02 texturemanager:CleanupThumbs()
    06-12-2005 19:24:02 Total Memory allocated:4,43 MB
    06-12-2005 19:24:02 Recorder:enable dx9 exclusive mode
    06-12-2005 19:24:02 goto fullscreen:False
    06-12-2005 19:24:02 window:MediaPortal.GUI.TV.GUITVCompressMain init
    06-12-2005 19:24:04 key:13 0xD (2)
    06-12-2005 19:24:04 window:MediaPortal.GUI.TV.GUITVCompressMain deinit
    06-12-2005 19:24:04 texturemanager:CleanupThumbs()
    06-12-2005 19:24:04 Total Memory allocated:4,43 MB
    06-12-2005 19:24:04 Recorder:enable dx9 exclusive mode
    06-12-2005 19:24:04 goto fullscreen:False
    06-12-2005 19:24:04 window:MediaPortal.GUI.TV.GUITVCompress init
    06-12-2005 19:24:04 OnMessage exception:System.NullReferenceException: Object reference not set to an instance of an object.
       at MediaPortal.GUI.TV.GUITVCompress.UpdateButtonStates()
       at MediaPortal.GUI.TV.GUITVCompress.OnSort()
       at MediaPortal.GUI.TV.GUITVCompress.LoadDirectory()
       at MediaPortal.GUI.TV.GUITVCompress.OnPageLoad()
       at MediaPortal.GUI.Library.GUIWindow.OnMessage(GUIMessage message)
    06-12-2005 19:24:05 key:13 0xD (2)
    06-12-2005 19:24:07 key:13 0xD (2)
    06-12-2005 19:24:07 window:MediaPortal.Dialogs.GUIDialogYesNo init
    06-12-2005 19:24:26 key:13 0xD (2)
    06-12-2005 19:24:27 window:MediaPortal.GUI.TV.GUITVCompress deinit
    06-12-2005 19:24:27 texturemanager:CleanupThumbs()
    06-12-2005 19:24:27 Total Memory allocated:4,44 MB
    06-12-2005 19:24:27 Recorder:enable dx9 exclusive mode
    06-12-2005 19:24:27 goto fullscreen:False
    06-12-2005 19:24:27 window:MediaPortal.GUI.TV.GUITVCompressStatus init
    06-12-2005 19:24:27 DVR2WMV: create graph
    06-12-2005 19:24:27 DVR2WMV: add streambuffersource
    06-12-2005 19:24:27 DVR2WMV: load file:C:\tvrecord\TCM_The Hunger_200512042320p2245.dvr-ms
    06-12-2005 19:24:27 DVR2WMV: add mpeg2 video codec:DScaler Mpeg2 Video Decoder
    06-12-2005 19:24:27 add filter:DScaler Mpeg2 Video Decoder to graph
    06-12-2005 19:24:27 added filter:DScaler Mpeg2 Video Decoder to graph
    06-12-2005 19:24:27 DVR2WMV: add mpeg2 audio codec:MPEG/AC3/DTS/LPCM Audio Decoder
    06-12-2005 19:24:27 add filter:MPEG/AC3/DTS/LPCM Audio Decoder to graph
    06-12-2005 19:24:27 added filter:MPEG/AC3/DTS/LPCM Audio Decoder to graph
    06-12-2005 19:24:27 DVR2WMV: connect streambufer source->mpeg audio/video decoders
    06-12-2005 19:24:27 DVR2WMV: add WM ASF Writer to graph
    06-12-2005 19:24:28 DVR2WMV: connect audio/video codecs outputs -> ASF WM Writer
    06-12-2005 19:24:28 DVR2WMV: set WMV High quality profile
    06-12-2005 19:24:28 DVR2WMV: start pre-run
    06-12-2005 19:24:28 DVR2WMV: movie duration:1:47:15
    06-12-2005 19:24:30 DVR2WMV: pre-run done
    06-12-2005 19:24:30 DVR2WMV: Get duration of movie
    06-12-2005 19:24:30 DVR2WMV: reconnect mpeg2 video codec->ASF WM Writer
    06-12-2005 19:24:30 DVR2WMV: add WM ASF Writer to graph
    06-12-2005 19:24:31 DVR2WMV: connect audio/video codecs outputs -> ASF WM Writer
    06-12-2005 19:24:31 DVR2WMV: set WMV High quality profile
    06-12-2005 19:24:32 DVR2WMV: Start transcoding

    So far everything is working, and now i press a button to back to the main menu:

    Code:
    6-12-2005 19:25:25 window:MediaPortal.GUI.TV.GUITVCompressStatus deinit
    06-12-2005 19:25:25 texturemanager:CleanupThumbs()
     

    ziphnor

    Retired Team Member
  • Premium Supporter
  • August 4, 2005
    755
    13
    Copenhagen
    Home Country
    Denmark Denmark
    hwahrmann said:
    it is working for me.
    It is not hanging up the PC, it is just blocking the GUI until the conversion has finished.
    In October i opened a bug, but it seems that it hasn't made it to some bug fixing list yet:
    http://nolanparty.com/mediaportal.sourceforge.net/phpBB2/viewtopic.php?t=9484&start=15

    When you say its "working", its still blocking the GUI for you, right? And i guess since you tried to open a bug for it we can agree that blocking the GUI while transcoding is not the correct behavior :)

    Looking at the recent CVS code i dont understand why its hanging up the GUI, according to the link you give the problem is the for loop transcoding the files one by one, but as far as i can tell the transcode call just adds the transcode job to a queue which a worker thread then deals with.

    Im not using AutoCompress, im doing it manually and i can start a transcoding job and the Status window will not block, it doesnt lock/block until i try to navigate away. From the log i can tell that the call to OnPageDestroy does finish, and it reaches the point where it calls CleanupThumbs() . Im not really into how changing windows in MediaPortal works, so i guess im just going to go at it by first finding out exactly at which point the gui freezes up. If you have any ideas, please do tell, as im actually going to see if i can fix it myself(thats the whole point of an opensource project,right?).
     

    ziphnor

    Retired Team Member
  • Premium Supporter
  • August 4, 2005
    755
    13
    Copenhagen
    Home Country
    Denmark Denmark
    Seems its the GC.GetTotalMemory(true) call in GUIWindow OnMessage thats hanging up the GUI when it gets a GUI_MSG_WINDOW_DEINIT message:

    Code:
    long lTotalMemory = GC.GetTotalMemory(true);
    Log.Write("window:{0} GC.GetTotalMemory done", this.ToString());
    Log.Write("Total Memory allocated:{0}", MediaPortal.Util.Utils.GetSize(lTotalMemory));

    If i remove this, the problem goes away and i can freely navigate the GUI while its compressing. According to the documentation the GetTotalMemory call with true as argument will wait for the next full garbage collection:

    " // Parameters:
    // forceFullCollection:
    // A Boolean value which, if true, indicates that this method can wait for garbage
    // collection to occur before returning."

    For some reason the transcoding job prevents this call from returning.

    Of course making the change directly in GUIWindow makes it take effect for all GUIWindow derived classes.
     

    Users who are viewing this thread

    Top Bottom