よりカスタマイズされたユーザーインターフェイスを可能にするために、ElectronアプリケーションのEmberjsにLinuxデスクトップアプリケーションを移植する作業を進めています。ほとんどのコントロールはHTMLやCSSに適していますが、Electronウィンドウ内に十数個のビデオディスプレイを描くことができる必要があります.RTSPストリームを使ってこれを行うことは重大なオーバーヘッドになると懸念しています。GStreamerビデオをPythonで描画するためにハンドルからウィンドウxidを取得
ビデオは、私はPythonで構築されたGStreamerのパイプラインから入手可能であり、通常、私は、次のようなものを使用して、既存のGTKアプリケーションに引く:
pipeline.add(src, sink)
src.link(sink)
window = Gtk.Window()
window.connect("delete-event", window_closed, pipeline)
window.set_default_size (1280, 720)
window.set_title ("Hello OpenGL Sink!")
drawing_area = Gtk.DrawingArea()
drawing_area.set_double_buffered (True)
window.add (drawing_area)
window.show_all()
window.realize()
xid = drawing_area.get_window().get_xid()
sink.set_window_handle (xid)
gtk.DrawingArea
を使用することができますget_window()
方法を持っています描画するウィンドウとxidを見つける。 ElectronのBrowserWindowはfunction to get the Window handleです。ただし、符号なしlongを8バイトのNode.js bufferとして返します。
このウィンドウハンドルをWindowオブジェクトに変換してxidを見つける方法はありますか?符号なしロングハンドルに基づいてxidを調べる方法はありますか?
これは私が考えたものです。このハンドルでさえ、ElectronにはGPUが通っているために問題が発生し、GTK DrawingAreaと同じように描画することはできません。 – superlou