1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Streaming TiVo Videos

Discussion in 'Developers Corner' started by davidblackledge, Jan 18, 2009.

  1. davidblackledge

    davidblackledge Registered lÜser

    466
    0
    Sep 9, 2008
    NM
    Yes, because of moyekj's issues, this is largely a toy, but it does do exactly what you're saying Allanon (now that it has zeroconf to find other TiVo DVRs)... among other cute things ;]
    It could be set up easily enough to merge the lists of all available video providers so you don't have to care what machine your show is stored on, just find it in the larger list and start streaming, although I'm not working on that feature right now.

    Actually for *me* personally it's working out great since I only have SD and I record everything at basic quality, so the 1.1GB limit is only an issue for movies (if even then...I haven't really looked at the numbers)

    Hmm... maybe I should abandon my zeroconf-in-Galleon problem for now given that I released it as a standalone before and probably will again...
    But I still want to know the answer if anybody has it!
     
  2. davidblackledge

    davidblackledge Registered lÜser

    466
    0
    Sep 9, 2008
    NM
    Ok, partial answer to my problem... I finally realized that Galleon was serving my apps fine (with our without the dll), then consistently just over an hour later it would log several "connection timed out" errors in a row over several minutes, and the apps are no longer served. Haven't had a chance to watch it happen live yet, but I'm hoping if I just re-install 2.5.1 (vs. the 2.5.5 upgrade I had installed) maybe the problem will go away.
    Oddly enough the number of timeouts don't match the number of apps, so it's not a per-app thing. It also has a couple of the timeouts when it first starts up and one "connection refused" happens, too. It probably is related to my install of Bonjour, but I'm going to try downgrading Galleon first sometime this weekend.

    If that fixes that problem, then I'll just concentrate on getting a standalone NowPlaying update working... hopefully that will work on other machines using only the sampleserver jar. Someday I might learn how to get NowPlaying with Bonjour served by Galleon *sigh*.
     
  3. davidblackledge

    davidblackledge Registered lÜser

    466
    0
    Sep 9, 2008
    NM
    In case anybody cares... I found the true cause of my Galleon problem.

    Galleon is using JmDNS... JmDNS has a shortsighted section of code. When it tries to Renew the published information about services, it attempts to shove every service notification into a single data buffer which has a fixed maximum size.

    Since Galleon is serving all of its stuff and all of my stuff (which is a lot... including the fact that I deploy my generic "Multitasker" app multiple times with different settings for e.g. icanhascheesburger.com and local news/weather as separate apps) that makes for a long list of services to renew.

    I simply had hit the limit when I was trying to deploy my new NowPlaying version.
    JmDNS attempts to renew 30 minutes after starting - an error appears in wrapper.log at that time. I believe that also breaks the thread and no more attempts are made to renew the service listings.
    Eventually the information, unrenewed, expires from the Tivo's and Simulator's listings and all apps seem to disappear.

    I removed a couple of services from my list, and it works fine, now.

    If Galleon were to use multiple instances of JmDNS that would work around this problem. But better, as I see has been mentioned on some JmDNS forums in the past, JmDNS should handle that buffer dynamically or at least allow the maximum message length, not just "typical" if the maximum is defined in the standard.

    At an absolute minimum, the JmDNS renewer needs to catch the exception while adding service entries. Then it could back off the last attempt, and renew what it was able to add to the buffer... then you only lose the last few services, not ALL of them.

    Hmm... Now how do I go about getting Galleon to use a custom version of jmdns.jar with one of these fixes? Obviously I could do it myself and replace the jar, but it'd be nicer to have everybody get the fix.

    Anyhow... I just need to do some small enhancements then I'll be releasing a new NowPlaying zip with cool/fun enhancements... if I can ever get any time to do so.
     

Share This Page