NPAPI プラグインで gstreamer 関数を呼び出すつもりですが、プラグインでメソッド「gst_init」を呼び出すと、常に失敗することがわかりました。新しいスレッドまたは子プロセスで呼び出しても、渡されません。どうすれば gst_init 関数を正しい方法で呼び出すことができるのでしょうか? :)
例えば :
Javascript コード:obj.play();
obj はプラグイン NPObject です。
static void* play(void *) {
GMainLoop *loop;
GstElement *pipeline,*source,*decoder,*sink;
GstBus *bus;
gst_init(NULL, NULL);
...
}
bool plugin_invoke(NPObject *obj, NPIdentifier methodName, const NPVariant *args, uint32_t argCount, NPVariant *result) {
NPUTF8 *name = sBrowserFuncs->utf8fromidentifier(methodName);
if (strcmp(name, plugin_method_name_gs) == 0) {
...
pthread_t tid = 0;
int ret = 10000;
ret = pthread_create(&tid, NULL, play, NULL);
...
return true;
}
sBrowserFuncs->memfree(name);
return false;
}