From: jodim <jo...@in...> - 2006-12-27 22:24:57
|
Greetings, First of all I would like to congratulate all gstreamer coders & gurus out there for their continued effort to provide the Linux community with a media framework nearing the caliber of existing commercial libraries. Now for the question: We have a requirement for a video capture application that should be able to grab 2 or more video sources, encode them to disk in mpeg2 format while at the same time display them in the screen. Now, the container is a KDE C++ application and using Kiss as a guide, we have implemented a self contained QT widget that takes an uri and plays the video overlayed to its windowId(). This works fine for as long as we use only one widget. BTW, we are using playbin as the element to play the test movie. If we try adding another widget, i.e. using two playbins, only one of them is ever displayed. After some debugging, we tried using gst editor to better understand what is happening. We used two test videosources directly conected to two xvimagesinks. The editor failed to start playing with the following error message: "/pipeline0/xvimagesink1: Resource busy or not available. Additional debug info: xvimagesink.c(740): gst_xvimagesink_get_xv_support: /pipeline0/xvimagesink1: No port available" However, if we use aasink as the sink elements, multiple video outputs work with out trouble. The question I would like to ask is whether its possible to have 2 or more xvimage sinks displaying video concurrently and if affirmative, what would be the best way to accomplish this. Apologies in advance should this email be off topic. Best Regards, joe |
From: S. <ma...@re...> - 2006-12-27 23:33:32
|
Am Mittwoch, den 27.12.2006, 22:24 +0000 schrieb jodim: > Greetings, > First of all I would like to congratulate all gstreamer coders &=20 > gurus out there for their continued effort to provide the Linux=20 > community with a media framework nearing the caliber of existing=20 > commercial libraries. >=20 > Now for the question: >=20 > We have a requirement for a video capture application that should be=20 > able to grab 2 or more video sources, encode them to disk in mpeg2=20 > format while at the same time display them in the screen. Now, the=20 > container is a KDE C++ application and using Kiss as a guide, we have=20 > implemented a self contained QT widget that takes an uri and plays the=20 > video overlayed to its windowId(). This works fine for as long as we use=20 > only one widget. > BTW, we are using playbin as the element to play the test movie. If=20 > we try adding another widget, i.e. using two playbins, only one of them=20 > is ever displayed. After some debugging, we tried using gst editor to=20 > better understand what is happening. We used two test videosources=20 > directly conected to two xvimagesinks. The editor failed to start=20 > playing with the following error message: >=20 > "/pipeline0/xvimagesink1: Resource busy or not available. >=20 > Additional debug info: xvimagesink.c(740):=20 > gst_xvimagesink_get_xv_support: /pipeline0/xvimagesink1: > No port available" >=20 > However, if we use aasink as the sink elements, multiple video=20 > outputs work with out trouble. The question I would like to ask is=20 > whether its possible to have 2 or more xvimage sinks displaying video=20 > concurrently and if affirmative, what would be the best way to=20 > accomplish this. >=20 > Apologies in advance should this email be off topic. >=20 > Best Regards, > joe This problem is unrelated to GStreamer. The caveat is that system setups generally provide just a single XVideo port. Try using two application instances to playback videos at once; the second application will either fail or implicitly fallback to plain X output with software scaling (in GStreamer's case videoscale + ximagesink). I'd say your options are to use "... ! videoscale ! ximagesink" for your individual videosinks or mix all streams together side by side using videomixer and videobox elements and play back to a single xvimagesink. The second option seems to prove as unfeasible since the costs for the mixing generally outweigh the savings gained through XVideo hardware scaling and rendering. --=20 Regards, Ren=C3=A9 Stadler |