分页: 1 / 1

做过gtk ,gstreamer的麻烦过来帮帮忙分析一下可能原因

发表于 : 2011-11-02 15:44
inkfish321

代码: 全选

g_videoWindow->drawear = gtk_drawing_area_new();
g_return_if_fail (g_videoWindow->drawear != NULL);
gtk_container_add(GTK_CONTAINER(g_videoWindow->window), g_videoWindow->drawear);


start_player(GTK_WIDGET(g_videoWindow->window),
                 g_videoWindow->drawear,
                 TRUE);

void start_player(GtkWidget *parentWindow,
                   GtkWidget *drawear,
                   gboolean play)
{
      ....................
      g_player->videoWindow = parentWindow;
      g_player->videoWindowDrawear = drawear;
      ........................
}

static gboolean my_bus_callback (GstBus * bus, GstMessage * message, gpointer data)
{

    .....................

    switch (GST_MESSAGE_TYPE (message)) {
     ...............................

           case GST_MESSAGE_ELEMENT:{

                   ..............................
                   gst_x_overlay_set_xwindow_id (GST_X_OVERLAY (GST_MESSAGE_SRC (message)),
                                                                  GDK_WINDOW_XWINDOW (player->videoWindowDrawear->window));
                   .................................
           }
}

display_image_window(GTK_WIDGET(g_videoWindow->window), "./image/forward.png");

void display_image_window(GtkWidget *parentWindow, gchar *imageFile)
{
...................................

    g_imageWindow->parntWindow = parentWindow;

    g_imageWindow->imageWindow = gtk_dialog_new_with_buttons(NULL,
                                      GTK_WINDOW(g_imageWindow->parntWindow),
                                      GTK_DIALOG_MODAL|GTK_DIALOG_DESTROY_WITH_PARENT|GTK_DIALOG_NO_SEPARATOR,
                                       NULL);
    .....................................
}
这是一些程序的片段,大家帮我分析一下,程序使用GTK和gstreamer构建一个视频播放的窗口,gstreamer总线收到消息调用my_bus_callback,根据消息的类型处理
将视频显示到窗口上(调用函数gst_x_overlay_set_xwindow_id实现)。
现在要在每次切换视频内容,上一曲,或下一曲时在窗口上显示一个图标(左右箭头)。实现的方法是生成一个对话框(调用函数gtk_dialog_new_with_buttons)
在PC上这样实现没有问题。但在IMX233上这样实现。。这个对话框始终显示不出来。被视频给盖住了。

Re: 做过gtk ,gstreamer的麻烦过来帮帮忙分析一下可能原因

发表于 : 2011-11-02 15:56
supercatexpert
IMX233应该是嵌入式环境了吧。估计是窗口管理器的原因,让对话框无法正确显示。

Re: 做过gtk ,gstreamer的麻烦过来帮帮忙分析一下可能原因

发表于 : 2011-11-04 9:54
inkfish321
谢谢楼上的意见。
还有一个现像就是本来我是用GTK+X11还有一个窗口管理器Matchbox window manager packages
显示正常,
但现在用了GTK+DirectFB 显示就不正常了。。显示的内容不是在屏幕正中间,而是偏左,左边有一部分超出的屏幕范围看不到了。右边屏幕上有一部分空空的什么都不显示。
所以可能真的是窗口管理器有问题吧。

Re: 做过gtk ,gstreamer的麻烦过来帮帮忙分析一下可能原因

发表于 : 2011-11-04 10:04
eexpress
fb下没wm管理。

Re: 做过gtk ,gstreamer的麻烦过来帮帮忙分析一下可能原因

发表于 : 2011-11-04 10:43
inkfish321
楼上这位兄弟。FB没窗口管理那我应该怎么解决这样的问题。。

Re: 做过gtk ,gstreamer的麻烦过来帮帮忙分析一下可能原因

发表于 : 2011-11-04 10:46
eexpress
你可以去freenode的房间,找答案。啥语言啥平台都有。
比如去gtk房间。