Hi,<div>I have been playing with wxWidgets and Gst and I was unsuccesful for some day. Thank God today I made it, but alas it was videotestsrc. Now I want to test my code with real video/audio file and every attempt have been furtile. Before I put my code below, let me say that am new to Gst and that I use 1.x version</div><div>Thanks</div><div><br></div><div>my code</div><div><div>static GstBusSyncReply</div><div>create_window(GstBus * bus, GstMessage * message, gpointer user_data)</div><div>{</div><div>// ignore anything but 'prepare-window-handle' element messages</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>if(!gst_is_video_overlay_prepare_window_handle_message(message))</div><div><span class="Apple-tab-span" style="white-space:pre">             </span>return GST_BUS_PASS;</div><div><span class="Apple-tab-span" style="white-space:pre">         </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>CustomData *data = reinterpret_cast<CustomData*>(user_data);</div><div><span class="Apple-tab-span" style="white-space:pre">   </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>if(data->xid!=NULL)</div><div><span class="Apple-tab-span" style="white-space:pre">       </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">    </span></div><div><span class="Apple-tab-span" style="white-space:pre">             </span>GstVideoOverlay *overlay;</div><div><span class="Apple-tab-span" style="white-space:pre">            </span>overlay = GST_VIDEO_OVERLAY(GST_MESSAGE_SRC(message));</div><div><span class="Apple-tab-span" style="white-space:pre">               </span>gst_video_overlay_set_window_handle(overlay, data->xid);</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">    </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>return GST_BUS_DROP;</div><div>}</div></div><div><br></div><div>and wx thing</div><div><div>wxGStreamer::wxGStreamer(wxWindow* parent, wxWindowID id, const wxString& uri) : wxPanel(parent, id)</div><div>{</div><div><span class="Apple-tab-span" style="white-space:pre">       </span>SetBackgroundColour(*wxBLACK);</div><div><span class="Apple-tab-span" style="white-space:pre">       </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>if(!g_thread_supported())</div><div><span class="Apple-tab-span" style="white-space:pre">            </span>g_thread_init(NULL);</div><div><span class="Apple-tab-span" style="white-space:pre">         </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>int i;</div><div><span class="Apple-tab-span" style="white-space:pre">       </span>char **argv = new char*[wxTheApp->argc + 1];</div><div><span class="Apple-tab-span" style="white-space:pre">      </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>for(i = 0; i < wxTheApp->argc; i++)</div><div><span class="Apple-tab-span" style="white-space:pre">    </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">            </span>argv[i] = wxStrdupA(wxTheApp->argv[i].utf8_str());</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">    </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>argv[wxTheApp->argc] = NULL;</div><div><span class="Apple-tab-span" style="white-space:pre">      </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>gst_init(&wxTheApp->argc, &argv);</div><div><span class="Apple-tab-span" style="white-space:pre"> </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>// prepare the pipeline</div><div><span class="Apple-tab-span" style="white-space:pre">      </span>GstElement *pipeline = gst_pipeline_new("xvoverlay");</div><div><span class="Apple-tab-span" style="white-space:pre">      </span>GstElement *src = gst_element_factory_make("videotestsrc", NULL);<span class="Apple-tab-span" style="white-space:pre"> </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>GstElement *sink = gst_element_factory_make("xvimagesink", NULL);</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>gst_bin_add_many(GST_BIN(pipeline), src, sink, NULL);</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>gst_element_link(src, sink);</div><div><span class="Apple-tab-span" style="white-space:pre"> </span></div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">    </span>GtkWidget* video_window = GetHandle();</div><div><span class="Apple-tab-span" style="white-space:pre">       </span>gtk_widget_realize(GetHandle());</div><div><span class="Apple-tab-span" style="white-space:pre">     </span>GdkWindow *videoareaXwindow =  gtk_widget_get_window(video_window);</div><div><span class="Apple-tab-span" style="white-space:pre">     </span>guintptr xid = GDK_WINDOW_XID(videoareaXwindow);</div><div><span class="Apple-tab-span" style="white-space:pre">     </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>// run the pipeline</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>GstStateChangeReturn sret = gst_element_set_state(pipeline,</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>                            GST_STATE_PLAYING);</div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>if(sret == GST_STATE_CHANGE_FAILURE)</div><div><span class="Apple-tab-span" style="white-space:pre"> </span>{</div><div><span class="Apple-tab-span" style="white-space:pre">            </span>gst_element_set_state(pipeline, GST_STATE_NULL);</div><div><span class="Apple-tab-span" style="white-space:pre">             </span>gst_object_unref(pipeline);</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">    </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>CustomData* data = new CustomData(xid);</div><div><span class="Apple-tab-span" style="white-space:pre">      </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>GstBus *bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline));</div><div><span class="Apple-tab-span" style="white-space:pre">  </span>gst_bus_set_sync_handler(bus, (GstBusSyncHandler) create_window, data, NULL);</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>//gst_element_set_state(pipeline, GST_STATE_NULL);</div><div><span class="Apple-tab-span" style="white-space:pre">   </span>//gst_object_unref(pipeline);</div><div><span class="Apple-tab-span" style="white-space:pre">        </span></div><div>}</div></div>