Skip to main content
  1. My writings/

Pioneering Personal Video Recording: My Internship Journey at Tekriti Software

In the summer of 2005, as a budding software engineer, I had the opportunity to intern at Tekriti Software in Gurgaon, India. This internship provided me with a unique challenge: to develop a Personal Video Recording (PVR) prototype, similar to TiVo, using off-the-shelf hardware and open-source software. This project was at the forefront of the digital home entertainment revolution, offering valuable insights into embedded systems and open-source development.

Project Overview #

The main objective was to create a functional PVR system that could:

  1. Record live TV
  2. Provide an interactive program guide
  3. Offer basic playback controls (pause, rewind, fast-forward live TV)
  4. Operate on affordable, readily available hardware

Technical Approach #

Hardware and Software Stack #

  • Hardware: VIA EPIA embedded board (a compact, low-power x86 platform)
  • Operating System: Linux (customized distribution)
  • PVR Software: MythTV (open-source PVR software suite)
  • Programming Languages: C++ (for MythTV customizations), Python (for web crawling and data processing)
  • Database: MySQL (for storing program information)

Key Components Developed #

  1. Custom Linux Build:

    • Created a streamlined Linux distribution optimized for the VIA EPIA board
    • Configured the system for diskless boot to minimize moving parts
  2. MythTV Integration:

    • Compiled and optimized MythTV for the embedded platform
    • Customized the MythTV interface for better usability on a TV screen
  3. Electronic Program Guide (EPG) Generation:

    • Developed a Python-based web crawler to extract TV listings from Indiatimes.com
    • Created a parser to convert the crawled data into a format compatible with MythTV’s EPG system
  4. Hardware Integration:

    • Configured TV tuner cards to work with the VIA EPIA board
    • Implemented drivers for remote control functionality
  5. Performance Optimization:

    • Fine-tuned the system for optimal performance on limited hardware resources
    • Implemented efficient video encoding and storage mechanisms

Challenges and Solutions #

Challenge: Limited Hardware Resources #

The VIA EPIA board had constrained processing power and memory compared to full-fledged PCs.

Solution: Optimized the Linux build by removing unnecessary components and fine-tuning MythTV’s configuration for low-resource environments. Implemented efficient buffering and caching mechanisms.

Challenge: Reliable EPG Data #

Consistently obtaining accurate and up-to-date program information was crucial for the PVR’s functionality.

Solution: Developed a robust web crawling system with error handling and redundancy. Implemented a local caching system to ensure EPG availability even during internet outages.

Challenge: User Interface for TV #

Designing a user interface that was easily navigable on a TV screen with a remote control posed unique challenges.

Solution: Customized MythTV’s interface, emphasizing large, clear fonts and simplified navigation suitable for remote control use. Conducted usability testing with potential users to refine the interface.

Open Source Contributions #

A significant aspect of this project was its commitment to open source:

  1. Code Contributions: Parts of the customized MythTV code and the EPG crawler were contributed back to the open-source community.
  2. Documentation: Created detailed documentation of the build process and customizations, making it easier for others to replicate or build upon our work.
  3. Community Engagement: Actively participated in MythTV and Linux embedded system forums, sharing insights and seeking community input.

Impact and Learning #

  1. Embedded Systems Expertise: Gained hands-on experience in developing for resource-constrained embedded environments.
  2. Open Source Development: Deepened understanding of open-source development practices and community collaboration.
  3. Full-Stack Development: Developed skills across the entire stack, from low-level system optimization to user interface design.
  4. Problem-Solving Skills: Enhanced ability to creatively solve problems with limited resources and off-the-shelf components.

Relevance and Forward-Looking Insights #

While dedicated PVR devices have since been largely superseded by integrated smart TV functions and streaming services, this project provided invaluable insights into:

  • The potential of open-source software in consumer electronics
  • The importance of user experience design in home entertainment systems
  • The growing convergence of traditional broadcasting and internet technologies

Conclusion #

My internship at Tekriti Software, working on this PVR prototype, was a formative experience that combined cutting-edge technology with practical, consumer-oriented development. It showcased the power of open-source software and commodity hardware in creating innovative solutions.

This project not only enhanced my technical skills but also instilled in me a passion for working at the intersection of software and hardware. The experience of contributing to the open-source community and tackling real-world challenges in embedded systems development laid a strong foundation for my future career in technology.

As the landscape of home entertainment continues to evolve, the lessons learned from this project – about system integration, user experience design, and the potential of open-source development – remain relevant, continually informing my approach to technology development and innovation.