GStreamer xvimagesink with QGraphicsWidget

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

GStreamer xvimagesink with QGraphicsWidget

Zhao, Halley

 

On Linux/X based platform, GStreamer xvimagesink works well with QWidget since QWidget’s winId() could connect to xvimagesink

 

In order to get rich user experience, I try to use QGraphics*.

QGraphicsWidget doesn’t associate with xid, I tried to add QWidget to QGraphicsProxyWidget. Then it could be used in QGraphicsScene.

There is no video at all, though audio playback well at the same time, and log from xvimagesink also looks well since _put_frame() is called timely.

 

Is there anyone else try it before?

ZHAO, Halley (Aihua)

Email: halley.zhao<a href="blocked::mailto:aihua.zhao@intel.com" title="mailto:aihua.zhao@intel.com&#10;mailto:hui.xue@intel.com">@intel.com

Tel: +86(21)61166476   iNet: 8821-6476

SSG/OTC/Moblin 3W038 Pole: F4

 


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: GStreamer xvimagesink with QGraphicsWidget

George Kiagiadakis
On Fri, Apr 2, 2010 at 9:31 AM, Zhao, Halley <[hidden email]> wrote:

>
> On Linux/X based platform, GStreamer xvimagesink works well with QWidget
> since QWidget’s winId() could connect to xvimagesink
>
> In order to get rich user experience, I try to use QGraphics*.
>
> QGraphicsWidget doesn’t associate with xid, I tried to add QWidget to
> QGraphicsProxyWidget. Then it could be used in QGraphicsScene.
>
> There is no video at all, though audio playback well at the same time, and
> log from xvimagesink also looks well since _put_frame() is called timely.
>
> Is there anyone else try it before?

Hi,
I am no expert and I haven't actually tried it, but I can give you some hints.

QGraphicsWidgets are not native X11 widgets and don't associate
themselves with a X11 window. Similarly, if you put a QWidget in
there, afaik, it will still be non-native in order to render correctly
in QGraphicsScene.

In short, the answer is that you can't use xvimagesink or any other
sink using GstXOverlay with QGraphics*. You can however do software
rendering by manually extracting the frames from the pipeline (with
appsink or some other custom sink) and render them on the
QGraphicsWidget with QPainter.

You can see an example of how that works here:
http://gitorious.org/phonon/phonon/blobs/master/gstreamer/widgetrenderer.cpp

Regards,
George

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: GStreamer xvimagesink with QGraphicsWidget

Stefan Sauer
In reply to this post by Zhao, Halley
Am 02.04.2010 11:31, schrieb Zhao, Halley:

>  
>
> On Linux/X based platform, GStreamer xvimagesink works well with QWidget
> since QWidget’s winId() could connect to xvimagesink
>
>  
>
> In order to get rich user experience, I try to use QGraphics*.
>
> QGraphicsWidget doesn’t associate with xid, I tried to add QWidget to
> QGraphicsProxyWidget. Then it could be used in QGraphicsScene.
>
> There is no video at all, though audio playback well at the same time,
> and log from xvimagesink also looks well since _/put/_frame() is called
> timely.

At first there are two basic qt example now in
gst-plugins-base/tests/examples/overlay. QGraphicsView did indeed not cooperate
well with overlays. To remedy currect gst-plugins-base git version extended the
xoverlay interface to allow specifying a render_rectangle. There is also an
example for that gst-plugins-base/tests/icles/test-xoverlay.c

>
> Is there anyone else try it before?
>
> *ZHAO, Halley (Aihua)*

I recommend you to subscribe to gstreamer-cvs mailing list too:
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-cvs

Despite the name, it shows all commits. Quite useful to stay up to date.

Greetings,
Stefan

>
> Email: [hidden email] <blocked::mailto:[hidden email]>
>
> Tel: +86(21)61166476   iNet: 8821-6476
>
> SSG/OTC/Moblin 3W038 Pole: F4
>
>  
>
>
>
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
>
>
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: GStreamer xvimagesink with QGraphicsWidget

Zhao, Halley
Great thanks Stefan.
It is really helpful.


-----Original Message-----
From: Stefan Kost [mailto:[hidden email]]
Sent: Friday, April 02, 2010 5:53 PM
To: Discussion of the development of GStreamer
Cc: Zhao, Halley
Subject: Re: [gst-devel] GStreamer xvimagesink with QGraphicsWidget

Am 02.04.2010 11:31, schrieb Zhao, Halley:

>  
>
> On Linux/X based platform, GStreamer xvimagesink works well with QWidget
> since QWidget's winId() could connect to xvimagesink
>
>  
>
> In order to get rich user experience, I try to use QGraphics*.
>
> QGraphicsWidget doesn't associate with xid, I tried to add QWidget to
> QGraphicsProxyWidget. Then it could be used in QGraphicsScene.
>
> There is no video at all, though audio playback well at the same time,
> and log from xvimagesink also looks well since _/put/_frame() is called
> timely.

At first there are two basic qt example now in
gst-plugins-base/tests/examples/overlay. QGraphicsView did indeed not cooperate
well with overlays. To remedy currect gst-plugins-base git version extended the
xoverlay interface to allow specifying a render_rectangle. There is also an
example for that gst-plugins-base/tests/icles/test-xoverlay.c

>
> Is there anyone else try it before?
>
> *ZHAO, Halley (Aihua)*

I recommend you to subscribe to gstreamer-cvs mailing list too:
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-cvs

Despite the name, it shows all commits. Quite useful to stay up to date.

Greetings,
Stefan

>
> Email: [hidden email] <blocked::mailto:[hidden email]>
>
> Tel: +86(21)61166476   iNet: 8821-6476
>
> SSG/OTC/Moblin 3W038 Pole: F4
>
>  
>
>
>
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
>
>
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

What happens after XvShmPutImage in xvimagesink? ==> GStreamer xvimagesink with QGraphicsWidget

Zhao, Halley
In reply to this post by Stefan Sauer
I often heard X overlay, and regard that xvimagesink goes through X overlay to be accelerated.
But now, I get confused when XvShmPutImage will show nothing in QGraphicsView.
If it goes through overlay, then what else could prevent the video showing on screen?
And what details happen after XvShmPutImage in xvimagesink?

Stefan and Kiagiadakis had told me something about it before, and I had turn to use shader for video rendering in QGraphicsView,
However I'm still curious about the above question. Maybe Qt has done something magic to ignore the XvShmPutImage?

BR


-----Original Message-----
From: Stefan Kost [mailto:[hidden email]]
Sent: 2010年4月2日 17:53
To: Discussion of the development of GStreamer
Cc: Zhao, Halley
Subject: Re: [gst-devel] GStreamer xvimagesink with QGraphicsWidget

Am 02.04.2010 11:31, schrieb Zhao, Halley:

>  
>
> On Linux/X based platform, GStreamer xvimagesink works well with QWidget
> since QWidget’s winId() could connect to xvimagesink
>
>  
>
> In order to get rich user experience, I try to use QGraphics*.
>
> QGraphicsWidget doesn’t associate with xid, I tried to add QWidget to
> QGraphicsProxyWidget. Then it could be used in QGraphicsScene.
>
> There is no video at all, though audio playback well at the same time,
> and log from xvimagesink also looks well since _/put/_frame() is called
> timely.

At first there are two basic qt example now in
gst-plugins-base/tests/examples/overlay. QGraphicsView did indeed not cooperate
well with overlays. To remedy currect gst-plugins-base git version extended the
xoverlay interface to allow specifying a render_rectangle. There is also an
example for that gst-plugins-base/tests/icles/test-xoverlay.c

>
> Is there anyone else try it before?
>
> *ZHAO, Halley (Aihua)*

I recommend you to subscribe to gstreamer-cvs mailing list too:
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-cvs

Despite the name, it shows all commits. Quite useful to stay up to date.

Greetings,
Stefan

>
> Email: [hidden email] <blocked::mailto:[hidden email]>
>
> Tel: +86(21)61166476   iNet: 8821-6476
>
> SSG/OTC/Moblin 3W038 Pole: F4
>
>  
>
>
>
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
>
>
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel

------------------------------------------------------------------------------
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel