Life After RC3... (1 Viewer)

te3hpurp

Retired Team Member
  • Premium Supporter
  • September 23, 2008
    910
    231
    Rovaniemi
    Home Country
    Finland Finland
    As mediaportal is reaching RC3 phase, i'd like to point out some thoughts
    about going to RC4/Release version.

    I'm very happy about Mediaportal, no guestion about it. even though
    i have 15 y's of c# experience, i cannot take part of developing
    Mediaportal at the moment.

    First thing that comes to mind when i use MP based HTPC as primary STB
    for dvb-s is overall stability. i have latest svn and building enviroment installed,
    so i can actually debug and analyze logs. But. Well when kids want to
    watch tv there is no time to explain that daddy has to tweak something....
    Well back to the point. When going to 1.0.0 release i'd like to see
    improvement on Error handling, Recovery of a fatal errors, and of course
    those Channel is Scrambled and No Audio/Video available
    errors. As i know they are just bugs.

    In my humble opinion is that So far Developers have done a great job,
    but before reaching 1.0.0 Release, i would go trough the code
    for looking and checking mutexes, locks, WaitOne clauses without timeout defind.
    General Exception catching.
    catch(Exception e)
    {
    ....
    }

    catches all exception and it is effective for hiding some other errors that
    actually needs to take care of and should not be hidden. These kind of code lines are the ones
    that cause problems in error hunting, at least in projects i've been in.
    I think that specific Exception should be used to trap only that exception
    we can do something in that part of code.

    When using mutex it would be a good idea to implement try/catch/finally and release mutex in finally
    statement.

    Some other mysterious hangs are for example when scrolling mini epg, or full epg MP sometimes just hangs and i have to reboot.

    :D to developing team.

    Regs,
    te3hpurp
     

    revs

    MP Donator
  • Premium Supporter
  • February 1, 2007
    1,274
    72
    The Sauce of Worcester
    Home Country
    Wales Wales
    i have 15 y's of c# experience

    I assume you mean 5, as C# was not announced until 2000, and released in 2001! :)

    Regarding the rest of the post - MP 1.0 wont be perfect, but it seems to work really well for me. I agree that any errors should be handled gracefully, maybe exiting to the main menu if need be.

    I think my most hated message is the "No Video/Audio" message when a free card isnt available!

    I look forward to the day when I can remove the "magic button" from my keyboard which I have set to kill the MP process and reboot/restart MP! :)

    At the end of the day though, I am grateful for everything we have, and realise developers do all this for free in spare time. I am a developer and I have no time to help - I have no idea how the MP devs fit it all in!!
     

    IkeV70

    Portal Pro
    April 28, 2008
    55
    3
    Home Country
    Netherlands Netherlands
    Not only Mutexes need to have defined timeouts, also blocking webrequests. I believe there's still a bug in the collection of audio CD detailsfrom freedb. If freedb doesn't respond for some reason MP hangs for 100 seconds, the default webrequest timeout.
     

    seco

    Retired Team Member
  • Premium Supporter
  • August 7, 2007
    1,575
    1,239
    Home Country
    Finland Finland
    I agree. No doubt there's too much code to make a full review but when I have been debugging some problems with RC1, I've seen too many

    catch (Exception e) {

    }

    blocks. Other thing is "No audio/video detected" error which can be caused by several different situations, not very good "global" error message. This is why we have a long "No audio/video detected" thread here in the forums ;) Of course, logs USUALLY point out where the problem is but sometimes they don't (for example for me, all timeshifting files are locked, none can be removed and new one cannot be created).
     

    te3hpurp

    Retired Team Member
  • Premium Supporter
  • September 23, 2008
    910
    231
    Rovaniemi
    Home Country
    Finland Finland
    One more thing, and then i shut my mouth. :) Those Directshow wrappers. There should be extra careful of using them from managed code as there are
    tricks that are not always clear. Marshal.releaseComObject does not release all resources in some special cases(resources behind IntPtr). It is very easy to have memory or handle leaks. Other thing is managed code automatic GarbageCollector as it does not see that unmanaged resource is alive and well. There must be managed object attached to it every time, or GarbageCollector might kill it(belive me, i've been there). There was a huge project for creating Learning Solution software for language lab, which involved huge Directshow library for playing MS supported media files + realmedia+quicktime internally. It was created with C#.
     

    Users who are viewing this thread

    Top Bottom