So I figured if I made a tool that allowed for much more rapid UI development, and then gave that to customers to use as well (which took a couple years until we made that decision) then everyone could get the UI they wanted.yeah, great theory.not reality, but it helped.
The driver behind this was because every user had an opinion on what the user interface should do.and I wanted to try to satisfy everyone. We also integrated with Direct3D for UI rendering and for 3D compositing of video with the UI during playback so we'd have a proper alpha-blended user interface.Īt this time, we also created the SageTV Studio.
Picture support was also added at some point, which was trivial because we already did image display in the UI. In version 2, we added support for music and video playback, because this was fairly trivial to do since we already had a DirectShow based media player working. In version 1, we only supported using Java2D rendering for the UI and 'punched through' the video overlay surface to get native video to render in a Java application. The main driver was people didn't have enough PCI slots in their computers to hold all the capture cards they wanted to use. This was the ability to use a TCP/IP protocol in order to communicate with a capture card running on another machine and allow 3rd parties to write their own capture device components as well.
We also added network encoding in version 1. There was also a mechanism for synchronizing the SageTV properties which is the main configuration mechanism in SageTV (based on Java properties files). The client/server protocol mainly consisted of a network synchronization mechanism for the database as well as various other RPC calls that would resolve any calls that needed to be executed on the server because the database itself did not have the information it needed (such as recording requests, file deletions, creation of Favorites, or anything else that requires writing/modifying to the system). SageTV had been built with a custom object database from the start and that was the main source of data access in the application. This was done by running the same Java application on another PC.
This was the PC based client version of SageTV (still included today). While still on version 1, we created the SageTV Client. Later in version 1, we added support for multiple tuner cards. The 1.0 version of SageTV was a Java application, with native C/C++ components for doing capture/playback with DirectShow and supported only a single tuner. At that time we did charge for programming guide data, but that ended within a couple months to become part of the product's overall cost. The product went on sale March 1st, 2003. The alpha/beta testing for SageTV 1.0 (and SageTV Recorder, now defunct) started in the fall of 2002. We (my brother and myself) formed an LLC in the Spring of 2002.
I also built my own IRBlaster for channel changing and used the IRMan serial infrared receiver for remote control. The first version, which was called TVMaster, was written in Java as a wrapper around the ATI Media Player using an ATI All-in-Wonder card. The theory being that if I liked it, then other tech geeks would like it and I could build a business from there.
I had a video capture card, could write good code and loved to watch TV.so I decided to create my own DVR software. It all started back in the fall of 2001, I was tired of working for others and wanted to do my own thing.