Hi,
I’m evaluating different possibilities for the implementation of a Linux multi-window video viewer application. At the moment, this looks like an “xvideo or sdl” decision to me. I never used SDL before, so I’ve little/no knowledge about it’s limitations.
The viewer application has to meet the following requirements:
- MDI Application with QT GUI
- simultaneous display of multiple videos, each in its own MDI subwindow.
- arbitrary resolutions of video sources.
( At least, 5-8 MPixel resolutions have to be considered, but most commonly, resolutions around 0.5-2 MPixel will be used) - video sources may have RGB or YUV pixelformat, uncompressed.
- Primary target platform is Linux, Secondary platform may be OSX.
In short, my question would be: What limitations of SDL do I have to expect, and how bad are they compared to XVideo?
I know that these requirements are quite high, and I expect some problems with them.
(XVideo-)Issues I’m already aware of are:
- XVideo only supports a certain resolution for overlay video sources, which depends on the graphics card. I’m planning to work around this issue with a dynamic fallback to slower standard drawing mechanisms.
- XVideo is limited by the number of xv ports provided by the graphics card driver. I also need a fallback solution, when the number of ports is exceeded.
Finally, these are the SDL issues I’m unsure about:
- (Most Important) I’ve read posts about SDL not supporting reentrancy, which is said to make multiple overlays impossible. Is this true, without exception? I could think of having a global image consumer, which synchronizes ‘new frame’ events from multiple sources, so that only one overlay surface is updated at a time. Would you call this a reasonable approach?
- I’ve been told that SDL does not have the xvideo size limitation. But SDL uses xv, when possible, right? Any detailled information (or link) about this topic would be great. I’m wondering about questions like: What is the magnitude of cpu utilization I have to expect, depending on the image size? What is the (default) fallback mechanism of SDL, when the allowed overlay size is exceeded?
- Let’s assume that I’ve already finished my Qt/SDL-based application with all requirements met. (at least all that weren’t impossible to fulfill.) Would you expect difficulties porting the SDl part to OSX?
Thanks for anny comment!
Philipp Beyer