Before IPTV, interactive application on STBs were relatively rare, but we built some on the native stack of a STB (in C++), that used an incoming data stream on cable to provide it with data (like flight data, stock information, weather, etc) for a resort cable operator in Portugal.
These devices were really underpowered and used a customized OS, besides a whole undocumented framework.
To feed data into the system (which was one way), we had to use a DVB transport layer to encapsulate the data that we fetched from internet sources.
In this project, I programmed everything myself.