Not work videooverlay in debian!

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

Not work videooverlay in debian!

rasnaut
Hi to All!
I need imaging xvimagesink in my window (QT Widget). So, I write:

#include <gst/video/videooverlay.h>

.....

geVideoOut = gst_element_factory_make("xvimagesink", "video out1");
g_assert(geVideoOut);

....

gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(geVideoOut), window_id);

And I have next errors:
-- undefined reference to `gst_video_overlay_get_type'
-- undefined reference to `gst_video_overlay_set_window_handle'

When I was searching solution, I saw that body of this function been in file "videoverlay.c", but this file didn't install with "gst-plugins-base-0.11.92", only header ("videoverlay.h") installed.
When I added "videoverlay.c" in my project, compiling completed, but appeared another error:
-- GLib-GObject-WARNING **: cannot register existing type `GstVideoOverlay'

So what I do wrong?

I use last gstreamer version (11.92), programming in QT Creator, OS Debian 7 x64
I tried  install gstreamer use aptitude and tried install use 'hands' (./configure + make + make install).
Reply | Threaded
Open this post in threaded view
|

Re: Not work videooverlay in debian!

Tim-Philipp Müller-2
On Mon, 2012-07-16 at 07:44 -0700, rasnaut wrote:
> Hi,

> I need imaging xvimagesink in my window (QT Widget). So, I write:
>
> #include <gst/video/videooverlay.h>
>
> .....
>
> geVideoOut = gst_element_factory_make("xvimagesink", "video out1");
> g_assert(geVideoOut);
>
> ....
>
> gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(geVideoOut),
> window_id);
>
> And I have next errors:
> -- undefined reference to `gst_video_overlay_get_type'
> -- undefined reference to `gst_video_overlay_set_window_handle'

This means you did not actually link your application to libgstvideo-1.0


> When I was searching solution, I saw that body of this function been in file
> "videoverlay.c", but this file didn't install with
> "gst-plugins-base-0.11.92", only header ("videoverlay.h") installed.
> When I added "videoverlay.c" in my project, compiling completed, but
> appeared another error:
> -- GLib-GObject-WARNING **: cannot register existing type `GstVideoOverlay'
>
> So what I do wrong?

That's not how it works. You do not have to copy any .c files into your
project. The .h file tells the compiler what functions GStreamer makes
avilable in various libraries, and how to call them. You then link to
the GStreamer libraries you need to use that functionality.

For the includes (compiler/preprocessor flags):
pkg-config --cflags gstreamer-video-1.0

For the libraries (to link against):
pkg-config --libs gstreamer-video-1.0

Cheers
 -Tim

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Not work videooverlay in debian!

rasnaut
Thank you very much. All compiled, all working. But... You don't know how I can set imaging at window after start gstreamer? My program write video from multiple channels. For rapid computer operation, when program started, video is writing without preview. So I want that user can  push button and watch preview of one channel (with sound)))). But function "gst_video_overlay_set_window_handle" cannot do it, because it must be called before pipline start work. Maybe, you know any function, which can do it?
Thank you.