LSDVD |
Introduction | |
  | |
It's been such a long time that I may have some of the dates wrong, but I shall at least present the material in a valid chronological order. This story represents the hard work and tribulations of 4 idealistic undergraduate students who gave it their all to bring proper DVD playback to the Linux OS. |
|
  | |
The year was 1998 and with the money I made on co-op at Lucent Technologies I bought the Creative Labs DVD combo wich included a DXR2 decoding card, a Soundblaster 64 and a DVD-ROM drive. This was my first introduction into the world of DVD. By then the technology was fairly new to the consumer market and there weren't many titles available for purchase or rent, but it was fun to watch the Fifth Element with annoying frequency. |
|
  | |
Eventually I grew tired of rebooting into Windows in order to use the DVD decoding software bundled with my drive. I decided that I would look into finding a Linux player. Let me just say that in 1998 there was absolutely nothing available for Linux with respect to DVD-Video. I decided that I would waive my right as an avid Linux user to reverse engineer the Creative Labs DXR2 card. |
|
  | |
Let's now consider that in 1998 I was still a Sophomore and very uncertain of my skills as a programmer. Not only was I uncertain of my abilities, but I didn't even know what I didn't know. That is to say that there was a lot to learn, and I couldn't see that far ahead. My first attempts were to find a way to probe the PCI bus to figure out what was happening under the hood of the DXR2 card. When that turned into a big mess I began asking professors at my school (Rochster Institute of Technology) for assistance or guidance. Somewhere down that path I found out that one of my professors in my own department of Computer Engineering worked for a DVD decoding company in Taiwan during the summers. Boy was I happy to strike up a conversation with this chap. |
|
  | |
As I just found my ticket for information, I posted an open letter to the Computer Science House newsgroups, of which I was (and still am) a proud member. I had one response from Dave Klint with regards to interest in working on the MPEG decoders. That was it. There were no other responses from CSH. Although, I did rope my roomate at the time, Mark Dezelon in for the ride, as well as another Computer Engineering colleague, Dayton Simmons. The last member, who turned out to be one of the biggest contributors to the project was Paul Volcko. His interest and knowledge in the project was sparked by my professor who mentioned the project during a class period. I met up with Paul, gave him my little speal about the project and welcomed him into the team. |
|
  |
Getting Started | |
  | |
So cool, I now had a team and we actually had meetings to discuss how we'd get this thing called DVD working in Linux. The very first step that we needed to take was to get a working UDF reader. With the help of Pat Fleckenstein we were able to parse the UDF headers on a DVD and find the location (LSN) of any file in the /VIDEO_TS/ directory which is all that matters for DVD-Video. This was our first piece of the puzzle and as I mentioned before about abilities, it was a real learning experience for me. A side note: as far as programming aptitude goes, this project would really throw me into many following levels of ability. For some reason, I really did not pick up what I should from school and class projects. I guess I was more interested in the DVD project, which also had a fairly high difficulty component to it. |
|
  | |
The school year passed by and it was time for another co-op at the then mega company, Lucent Technologies. I spent that summer cleaning up the UDF code while beginning on a stream demuxer. The only time I could work on those pieces were in the evenings after work and during the weekends. Mark, who we all affectionately call Dez, worked with Paul on the IFO parser/decoder. By this time, Dayton Simmons left the group to pursue other interests. A few months into the summer, Dez also decided that his time would be better placed on other projects. This left the LSDVD team with myself, Paul and Dave. What made things harder to handle was that Dave was out in France for the next 6 months on a co-op. It was up to Paul and I to continue working on the backbone of the project before getting into the real decoders. |
|
  | |
To make sure that noone is lost on the time schedule, this was the summer of 1998. This was also a very interesting summer for us. Even though we recently lost two members of our team, there was still a strong presence of mind between the existing members of the group. Paul and I somehow made a contact within Red Hat. We were given a weekend to put together a business plan to present to the higher-ups. This business plan was meant to sell ourselves and our work, or continued work, to Red Hat in the hopes that we'd actually make it and be able to help bring DVD playback to Linux. This had to be the coolest feeling I ever had. I mean think about it, I was only 20 years old and yet I was presenting a business plan to a company that did business in the same space that I enjoyed working/developing. Well, at least I thought it was cool. |
|
  |
Rejection | |
  | |
I guess I don't have to mention that we were turned down. From the sounds of it there were supporters as well as dissenters on the decision committee. DVD just wasn't on track with Red Hat's business model. It was upsetting for us, but understandable. If you look at the business today, they focus mostly on server products and support services. Not much in the multimedia sector. |
|
  | |
The rejection took a little bit of a toll, but we still worked on the project through the summer. The 1998/1999 school year rolled around in September and we headed into classes full-force. With every new year brings new students and new interest. I showed interested parties at CSH what we did over the summer with the DVD project and we had the usual remarks of "cool" and "good job". It had its rewards, but it was still nothing more than a UDF reader, stream demuxer and IFO parser. The most one would see is the type of packs streaming from the DVD and the name of the disc; possibly the side of the disc being read. |
|
  |
New Blood | |
  | |
Now why would I mention new students? We knew that we were going to continue and make a functioning DVD player, but there was still the lack of a knowledge base in front-end designs. One freshmen, Benjamin Meyer approached me with interest in joining the team. Of course I was skeptical about getting a freshmen involved in something like this, but it was the CSH way to get everyone involved, giving them the ability to grow beyond the level of class assignments. I figured why not. He was offering himself as help in the GUI design layer. He said that he had completed other projects using QT and with no one else working on GUIs in our team, it seemed like a good fit. |
|
  | |
The LSDVD team now comprised of 4 people again, myself, Paul, Dave and Ben. That was it from this point on the LSDVD team would not change and every reference to the team as a group refers to the previously mentioned four people. Although, we wouldn't see Dave until the Winter quarter when he returns from France. |
|
  |
Publicity | |
  | |
By this time, Linux and DVD became a very hot ticket item. If you mentioned either one of these words, or both of them to a venture capitalist he'd throw a million bucks at you and expect to start making ten million back in a few days. It was absolutely crazy. I never heard of such rampant spending, but I'll get into that later. What is important is that we lost time working on the DVD project due to school work. |
|
  | |
One advancement that we did make was the launch of our website that Matt Girard designed for us. We also had a few posts on Slashdot, Movie Bone and Linux.Com. It was an amazing time for us. We were getting coverage on our work which even extended to people on our campus. I was bumping into people (or shall I say that they were bumping into me) with kudos on getting mentioned on Slashdot. I thanked them and then wondered where the hell I met them before. I guess I knew more people than I thought. |
|
  | |
Anyway, this publicity escapade put a bug inside of us. If there was any question of giving up, it was all but forgotten. Vanity has to be THE best motivator. I mean seriously, just look at any magazine, they either sell their copies because they give you great diets that let you drink beer all day long and not get fat, or show you how to lose your beer gut with just 20 minutes a day of watching TV. That's my little rant :) |
|
  | |
The Winter quarter came along and Dave popped back into the physical realm of being. The LSDVD team was complete and in-person. We held a weekly meeting that laid out the groundwork of what we had to do in order to pump out a working DVD player. Dave was more in-tune with his school work and the rest of us were juggling the player and classes. This basically got us nowhere. I was reading Slashdot one morning and saw an announcement of Linux World Expo coming up. I made everyone order a free ground pass in the hopes that we may get to go. The scheduled dates were during classes, but that made no difference. What was also nice is that I grew up 30 minutes away from Manhattan (on the Jersey side) and had a place for the team to crash if we went. |
|
  |
Linux World Expo | |
  | |
Now with everything going for us the way it were, we decided to head out to NYC and mingle with the big boys of Linux. Before Linux World commenced there were a few events that transpired and changed our playing field a little. The first was DeCSS and the second was Livid. DeCSS is a small program that decrypted the heavily (with law) guarded Content Scrambling System that is implemented in DVDs to avoid rampant copying of discs. Livid is the Linux Video and DVD project that is a software DVD decoder for Linux and was the first to incorporate DeCSS as a method to playback DVDs. As far as LSDVD was concerned, we were handed a ticket out of the newsreel. Yet, we continued with our hopes to hook a fish at the Linux World Expo. |
|
  | |
Paul, Dave and I all went to the LWE. Ben stayed behind at RIT for one reason or another. The trip was truly excellent. We met a lot of big names and had fun perusing the different tables at the LWE. Most of the time we hung out with the Livid group that had a small table in the .ORG Pavillion. It was actually a little disheartening to sit in the stands and watch as they received all of the attention and we were just "the help". The only difference between our teams is that Livid wanted nothing more than to see a fully open-sourced free DVD player for Linux, where as we wanted to see a good quality fully-functional player for Linux. Apparently being on the side of rebellion always has a mystique that can't be beat. |
|
  |
New Beginnings | |
  | |
We as a team had plenty to think about on the 5 and 1/2 hour drive back to Rochester, NY. The final outcome was that if we were to succeed as a group and a dream, we had to forget school. This project was being hindered by school work/projects and co-ops. Either we devoted our full attention to LSDVD, or forget about it completely. Since we all invested a fairly large amount of time into this, we didn't want to give it up. LSDVD as a whole agreed to drop all of our classes for the Spring quarter of 1999 and go full-force on the player. |
|
  | |
Lucky for us that I had a few friends from CSH that rented a house about 25 minutes away from RIT. Everyone renting were leaving and already had a new place to live and told me that they could put in a good word for me with the landlord. The landlord was happy to have continuing rent and signed our names on a contract for the house. It's not a bad place, especially since it's 2002 and I'm still living here. |
|
  | |
After moving in, our first assignment as LSDVD was to create 4 tables so that we have a good work area. We bought ply wood from Home Depot with a bunch of 2'x4's and made large, sturdy desks. From that point on, we did nothing but work all day long on the project. It was the coolest experience ever. None of us really had much money, so the desks were a steal at about $25 each for all of the wood and nails. We didn't have any furniture except for the smelly old sofa that the previous tennants left. That's where Dave slept. I slept on a mattress in an empty room on the floor. I could only afford the mattress, so there was no spring board or supports. Ben slept in the basement on a love seat that was barely big enough for him, and Paul had a contract that he had to fulfill with a campus apartment. Most of the time Paul would drive back to his apartment after finishing a day's worth of coding...at 5 in the morning. He'd basically get home from work while the sun was coming up. |
|
  |
The House | |
  | |
Oh man, the stories that I can tell about working in the house and the crazy stuff that happened. For instance, Dave seemed to be a better coder while drinking and he had a nasty habbit of raiding our liquor cabinet and whiping me out of Jack Daniel's. No matter how many times I bought a new bottle, Dave would always reply with "I'll owe you one" within the span of about 3-5 days. Damn! |
|
  | |
Working on the player was also very interesting. We basically had to make all of our components ourselves. There was no equivalent of DirectShow in Linux, which meant that we had to make our own media connection library to pass samples around. We also started using SDL for video rendering, but soon came to find out that it was too slow for DVD-Video requirements. Lastly, we developed the navigator, MPEG-2 video decoder and subpicture decoder in parallel. |
|
  | |
In the midst of our work, I spent a number of hours on the phone calling a number of companies and having the pleasure of answering phone calls from CEOs of those companies. I tried my best to sell our work to whichever company would foot the bill for the CSS and DVD Forum licensing. I was determined to do this all by the book. There was a lot of interset, but no single company was willing to get involved with the scenario that we wanted. |
|
  | |
Lucky for me, I kept one contact in the loop. While speaking with one of the companies, which I shall not mention the name, I found out that they already had DVD Forum licensing, had CSS licensing, had a Windows DVD decoder, and were looking to work on a Linux player. We were working on the same scheduled path as they. By then, Dave had a working MPEG-2 decoder. It only decoded a frame every 30 seconds, but it worked. I also finished my subpicture decoder, and we wrote some code to alpha- blend the two images so that we could watch the matrix over the course of a week on Paul's dual PII-450 :) |
|
  |
Hit it Big | |
  | |
This company, which I shall name Company X, sent one of their DVD engineers over to do some due diligence on our player and report back if we were legit. The few days with this engineer went very well and the decision makers at Company X called us up to give us an offer on buying our code. We were told to think over what we wanted for our work and that they would call us within the week. |
|
  | |
It's not every day that I have to make a decision like this, so we talked over a dinner what we wanted for our work and came up with a number that was easily divisible by four. That seemed like a fair way to split the costs of our labor. Company X finally called and I gave them our number. I was totally surprised to hear them accept it! Of course, looking back at it now, that means I may have undersold myself, but not to worry. |
|
  | |
Within a day, Company X phoned us back with our offer stating that for the rights to all of our work and code on the player they would pay us the amount that we requested, as well as offer us a significant salary, the chance to work in San Jose, and a place to stay. We were totally stoked. We were not only going to bring DVD to Linux, but we'd also get money. This was the most important at the moment, since we left Rochester with $5 less on the rent since Dave just ran out of money. |
|
  | |
I'd like to take a moment to mention the deal that Company X gave us. It is worth noting as it shows how hard work can pay off. Aside from getting a large chunk of change from the work done up to that point, we were given salaries that you usually don't see at that age in life. They paid for corporate housing for us. This place had a bunch of swimming pools, only one was heated, a hot tub, a gym, free parking and a theatre room. Our room had a kitchenette 2 bedrooms, 2 bathrooms, 4 beds and a fully furnished living room with cable TV a VCR and a nice balcony overlooking the quad. |
|
  | |
Beyond that, Company X also paid for a cleaning service to stop by the apartment every other Friday, just to make sure that we didn't have to put any effort into cleaning the place. That turned out to be a great service when Dave had a couple of friends fly in from NY and turned it upside-down with all of their drunken antics :) |
|
  | |
Lastly, so that we have a place in NY when we finish the 6 months in California, they paid for the rent and all services (phone, electricity, etc...) to stay open. They even paid the $5 that Dave missed on the previous month's rent. The only downturn to the entire deal is that not a single member of the team was over 25 years old. This meant that the car they would originally rent for us cost more in insurance than rent per day which led them to getting us a waiver with a cab company. That was fine for getting to and from work, but really sucked for doing anything else. Therefore, Paul, myself and Dave all bought bicycles and biked it to work. This also got rid of the problem of being on everyone's schedule and waiting for the usually late cab. |
Last Updated: August 18, 2002 |