Living Room Media Center
Software Development for multimedia content management for Media Center
The request
Our client company, a leader in the set-top box sector, was founded with the idea that TV would not remain a simple receiver of broadcasters’ content, but would become the interface for multimedia content coming from different sources (TV broadcasters, web, user’s personal videos, and photos).
The company has developed its own UI software stack—based on Linux and OpenGL and scriptable via Python—to be able to develop pioneering interfaces that allow the integration of all contents in a uniform manner, all while maintaining the peculiarities of each genre.
The collaboration request included using the client’s development framework to help their team build the set-top box software for large companies in the industry.
Challenges faced
- Because of the physical production times, the final hardware wouldn’t have been available until a very advanced stage of development.
- The software of a set-top box is very complex, and the reactivity of the interface is part of the requirement.
Solutions implemented
- We created a complete emulator of the graphic system, which allowed us to implement most of the software directly onto the desktop development systems.
- Thanks to the dynamism of Python, it was easy to build a test suite to control both functional and performance regressions.
Requirements
- Develop Media Center content management software
- Improve the internal development framework
- Collaborate with off-site Italy-France teams
Develer’s contribution
- Studied and developed a workflow shared among teams
- Set a cycle of Agile iterations with daily feedback
- Constructed a Media Center software emulator
Advantages of our solution
- Improved development flows between teams (internal and external) thanks to the introduction of the emulator
- Introduced automated test suites
Do you need support for the development of your new product?
Advantages of our approach
Since the definitive hardware platform was not available until a processing phase that was very advanced, we created a complete emulator of the client’s graphic system that allowed us to develop the necessary software without having to wait for the hardware to be made (or without having to later do the porting on different hardware).
Thanks to the emulator and our operating method, we reduced the integration times to zero and introduced a complete and automated test suite of the final software with about 200 regression tests.
Our experience in developing and maintaining large applications was fundamental in order to contribute to the client’s framework with additions and improvements.
Advantages of open source
The fact that the client’s software stack, although proprietary, was based on open-source software was useful during the entire debugging phase: it was possible to inspect and profile the application with the standard tools for Linux (massif, valgrind) and Python (cProfile).
Staff
“Integrating Python for creating dynamic UIs—conceived by our client—is one of the most interesting technologies we have had the opportunity to work on. We’ve willingly faced the challenge of working with a French team composed of experts in the field and brought contributions worthy of the project in which we entered.”