Summary
| Mentor(s): | Prof. Megan Hickman Fulp Dr. Mike Murphy |
|---|---|
| Project Type: | Software development; networking |
| Technologies: | Python, Qt (PySide6 and Qt Designer), Git |
| Undergraduate Credit: | CSCI 399, CSCI 490 |
| Graduate Credit: | IST 659 |
| Locality: | Main campus and/or remote |
Purpose
TealPlay was initially designed to play locally saved media files from a library. Basic live media support has since been added, since Qt Multimedia can load a limited selection of files from the Internet. Also, on Linux systems, support for TV tuners is also present. Each of these playback sources has a slightly different code path within the current application, which makes adding new sources more challenging.
There are a number of other ways that TealPlay could be used to play content. For example, Streamlink could be added to allow access to a wider variety of Internet-based streams. Another approach is to support virtual sources that combine different kinds of content. For example, weather information could be displayed as a rotating series of images, with music playing in the background. News headlines could be displayed from RSS feeds. Even local artificial intelligence (AI) might advance to the point of being able to provide generated, on-demand entertainment.
In order to support these new sources of media, some type of virtual channel support will need to be developed. The first step will be to abstract away the underlying details of how media get to the player, making it easier to develop and add new sources as opportunities arise. Once this architectural change is made, it will be possible to create some virtual channels for testing and demonstration purposes.
Scope of Work
Refactor the media handling in TealPlay to create an abstraction for a playback source. Migrate the existing sources to use the new abstraction. Develop additional virtual sources of media to test and demonstrate the new abstraction. Add documentation for the new capabilities.
There will necessarily be some overlap between this project and the Media Backend, since the abstraction will need to be adapted to each supported backend.