2010-02-13 7 views
1

XULRunner를 기반으로하는 GStreamer 응용 프로그램을 만들고 있습니다. 이를 달성하기 위해 XPCOM 구성 요소를 만들었습니다.이 구성 요소는 XUL 응용 프로그램에서 일부 GStreamer 기능을 사용할 수 있도록합니다. 그러나 GStreamer는 일반적으로 버스 메시지를 수신 할 수있게하는 메시지 루프 (GMainLoop)를 사용합니다. XULRunner는 이미 자체 메시지 루프를 가지고 있기 때문에 GMainLoop을 생성 할 수 없습니다. 그래서 나는 그 메시지를 얻는 또 다른 방법이 필요하다. 한 가지 방법은 gst_bus_poll 호출을 사용하는 것입니다. 메시지 큐가 넘치지 않도록 자주 호출해야합니다. 그래서 타이머가 올바른 해결책이라고 생각합니다.XPCOM 구성 요소에 타이머를 구현하는 방법은 무엇입니까?

짧은 이야기를 나누려면 어떻게합니까? XPCOM 구성 요소에 타이머를 만들려면 어떻게해야합니까?

+1

XPCOM 플러그인? 그 기술은 죽었다. NPAPI 플러그인 또는 XPCOM 구성 요소를 의미합니까? – Nickolay

+0

XPCOM 구성 요소를 의미합니다. 내 게시물을 업데이트했습니다. – StackedCrooked

답변

1

nsITimer을 살펴보십시오.

this bug about implementing a GStreamer backend for <video>의 코드에 관심이있을 수 있습니다.

+0

나는 약간의 실험을 해왔고 자바 측 (setTimeout)에서 타이머를 구현했다. html 비디오 용 GStreamer 백엔드 관련. 흥미로운 것처럼 보이지만 모질라 소스 디렉토리 (a/content/html/content/public/nsHTMLMediaElement.h)에서 실제 소스 파일을 찾을 수없는 것 같습니다. 나는 틀린 장소에서 아마보고있다. Btw, 현재 내 코드는 Songbird 소스에서 영감을 받았습니다. Windows와 Mac에서 잘 작동합니다. 그러나 때로는 앱이 응답하지 않게됩니다 (일반적으로 다른 앱이나 YouTube에서 동영상을 재생하는 동안). – StackedCrooked

+0

@StackedCrooked : http://mxr.mozilla.org/mozilla-central/source/content/html/content/public/nsHTMLMediaElement.h. "a /"것은 DVCS와의 차이점입니다. – Nickolay

관련 문제