Summary
| Mentor(s): | Dr. Mike Murphy |
|---|---|
| Project Type: | Software development and engineering; multimedia; interprocess communication |
| Technologies: | Python, Qt (PySide6 and Qt Designer), VLC, Git |
| Undergraduate Credit: | CSCI 399, CSCI 490 |
| Graduate Credit: | IST 659 |
| Locality: | Main campus and/or remote |
Purpose
At the moment, TealPlay uses Qt Multimedia to handle audio and video playback. In turn, Qt Multimedia uses ffmpeg directly, which results in both bugs and licensing issues. Crashes and lockups frequently occur when interfacing Qt Multimedia with a local TV tuner card, especially if the incoming TV signal is weak. See the licensing notes on the Qt Multimedia page for the caution about redistribution of certain ffmpeg builds.
Both these issues could be sidestepped by using the libvlc backend of the VLC media player instead of Qt Multimedia. Back in the days of X11, embedding a VLC player into a Qt window was straightforward. However, with Wayland on Linux today, the process is a bit more cumbersome and involves using either shared buffers or receiving and displaying frame data in code. Some additional research, as well as a healthy dose of trial-and-error, will be required. However, TealPlay would likely be more reliable at playback with a VLC backend.
Scope of Work
Research the current state of embedding VLC in a Wayland environment on a Linux system. Develop and test various approaches using Qt in Python (with PySide6) to see if sharing a buffer is possible. If not, test to see if receiving and displaying frame data would be a feasible alternative to Qt Multimedia. Assuming the tests are successful, modify the TealPlay code to use VLC as a backend instead of (or perhaps as an optional alternative to) Qt Multimedia.