PDA

View Full Version : TySuiteJ V3 Source



dburckh
12-01-2007, 02:27 PM
I've got some good news and I've got some bad news.

The good news:

My wife and I are expecting twins!

The bad news:

DTV is shutdown the MPEG-2 Septemberish and that will force me to get an HR20 or drop DTV (more likely drop DTV).
I have had very little time to do anything with TySuiteJ and it isn't likely to get any better before #1


Between the twins coming and lack of motivation due to the eminent obsolescence of my Tivo, I'm not going to continue to update TySuiteJ.

I'm attaching what I have of V3. I split it into two projects. One called "core" which is the demuxer/muxer and web server. I may continue to enhance this to support other containers.

The rest is in the Tivo project. The UI is mostly functional. I'm not sure about the web server/MyIHome/UPNP, but they are pretty close. This is a total re-write, so it is likely to have bugs, but it should be a lot easier to maintain (and make more sense). I think I've included everything.

I will lurk around the forum supporting 2.6 and I'm willing to help anyone out that wants to take over development.

Here's a link to the Eclipse (Java IDE) website. It's free, it rocks.
http://www.eclipse.org/downloads/

Thanks for all the people that supported me and helped along the way!

SteveT
12-03-2007, 09:28 AM
I've got some good news and I've got some bad news....Congrats on the twins!

Would you mind posting a list of the improvements you've put into 3.0? That might give someone more incentive to pick up this ball and push it along.

I definitely appreciate the work you've done and that you're making it all available as source.

ronnythunder
12-03-2007, 12:17 PM
congrats on the twins, and thanks for your contribution to the community.

dang, am i going to finally have to learn java? :)

ronny

dburckh
12-03-2007, 01:04 PM
The biggest improvements are internal that allow for the new features requested.


Changed from a generic HashMap for titles and job to "real" objects. This elevates developer confusion as to what the heck is actually happening
New muxer architecture. Spilt the Demux, Video Buffer and muxer into multiple pieces. This would allow easier coding of new muxers, demuxers and new streams like TS.
No longer dependant on NowShowing. Probably the "coolest" piece is that it now parse the MFS objects directly. This allows TySuiteJ to access ALL Tivo metadata. Most notably title description, original air date, and duration.
Limited support for real time extraction and trick play.

dburckh
12-03-2007, 01:09 PM
congrats on the twins, and thanks for your contribution to the community.

dang, am i going to finally have to learn java? :)

ronny

If you know C, Java is pretty easy. The hardest parts are the Java API and the class structure. Everything except primitives (numbers) are pass by reference. No more malloc() or memory leaks.

Cool stuff:
The Eclipse IDE is pretty amazing.
Remote debugging.
Code update at runtime (with some limitations).

ronnythunder
12-03-2007, 04:32 PM
Code update at runtime (with some limitations).that's not like self modifying code, is it? i lost a letter grade on an assignment in 370 assembly in college for doing that. ;)

i do know c pretty well; i guess i should try to get going on java. probably help my job prospects as well.

ronny

dburckh
12-03-2007, 08:28 PM
Wow, you took assembly. You are really dating yourself. :) I learned it on my own.

Java supports in memory remote class replacement while debugging. Since it is bytecode, you can also generate classes at runtime (that's over my head). Since most VM's have a Just In Time (JIT) compiler it can get close to C speeds. It's really easy to bang out networked apps. The UI development kind of sucks unless you really get into it.

SteveT
12-05-2007, 12:11 PM
The biggest improvements are internal that allow for the new features requested.
Changed from a generic HashMap for titles and job to "real" objects. This elevates developer confusion as to what the heck is actually happening
New muxer architecture. Spilt the Demux, Video Buffer and muxer into multiple pieces. This would allow easier coding of new muxers, demuxers and new streams like TS.
No longer dependant on NowShowing. Probably the "coolest" piece is that it now parse the MFS objects directly. This allows TySuiteJ to access ALL Tivo metadata. Most notably title description, original air date, and duration.
Limited support for real time extraction and trick play.
These sound great. Can you give me some pointers for using the new metadata? Can I use it as columns in the UI? Part of the output filename? Where can I see a list of the available items?
I have v3 up and running with basic defaults, but am getting stuck going beyond there.

Also, any hints on using real time extraction and trick play would be appreciated.

dburckh
12-05-2007, 02:33 PM
Two ways to access the MetaData. One from the TivoTitle object methods. The other is from the generic Title method that takes an attribute name. getAttribute()??? You should be able to add them to filenames, but there maybe a validator somewhere that you have to add the new names too.

I know I changed the UI to allow different column selections. I believe there is a variable that controls this in TivoUI. I think it's still hardcoded, but it could loaded from the properties file.

The available list of items is in Schema.txt, or you can get it by running schema.tcl (Not included) on the Tivo. I was hoping to eventually do this dynamically, but for now it is in that file. I don't store all the attributes. You can add new attributes to TivoTitle and set them in NowShowing2. The NowShowing2 code is not pretty, it my first revision.

gravely101
07-13-2009, 12:23 PM
I'm pretty confused here, your other release of TysuiteJ was just a JAR file that was simple to open. But this is a jardesc file? I tried opening it within Java but it didn't want to open it. Is there something I'm supposed to be doing with the jardesc file? Open it with Eclipse (Java IDE)?