gstreamer-java / gst1-java-core

Java bindings for GStreamer 1.x
GNU Lesser General Public License v3.0
188 stars 72 forks source link

Not supported by requested GStreamer version #167

Closed neilyoung closed 5 years ago

neilyoung commented 5 years ago

Hi,

I was trying to compile the WebRtcSendRecv java sample using

compile "org.freedesktop.gstreamer:gst1-java-core:1.1.0"

(https://github.com/centricular/gstwebrtc-demos)

I had to change some imports and a call to getCurrentCaps(), but it seems to not work at all. This is what I see in VSCode:

[gstreamer service thread 1] INFO WebrtcSendRecv - Pipe state changed from NULL to new READY
[gstreamer service thread 1] INFO WebrtcSendRecv - Pipe state changed from READY to new PAUSED
[gstreamer service thread 1] INFO WebrtcSendRecv - Pipe state changed from PAUSED to new PLAYING
[GCallback] INFO WebrtcSendRecv - onNegotiationNeeded: sendrecv
Jul 03, 2019 10:06:25 AM com.sun.jna.Native$1 uncaughtException
WARNUNG: JNA: Callback org.freedesktop.gstreamer.Promise$1@73a4df16 threw the following exception
org.freedesktop.gstreamer.GstException: Not supported by requested GStreamer version
    at org.freedesktop.gstreamer.Gst.checkVersion(Gst.java:609)
    at org.freedesktop.gstreamer.Promise.<init>(Promise.java:54)
    at org.freedesktop.gstreamer.webrtc.WebRTCBin.setLocalDescription(WebRTCBin.java:196)
    at WebrtcSendRecv.lambda$0(WebrtcSendRecv.java:281)
    at org.freedesktop.gstreamer.webrtc.WebRTCBin$3.onChange(WebRTCBin.java:146)
    at org.freedesktop.gstreamer.Promise$1.callback(Promise.java:67)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.sun.jna.CallbackReference$DefaultCallbackProxy.invokeCallback(CallbackReference.java:520)
    at com.sun.jna.CallbackReference$DefaultCallbackProxy.callback(CallbackReference.java:551)

[EventThread] INFO WebrtcSendRecv - CONNECTED

After that the app does not continue. What is behind that Not supported by requested GStreamer version trace?

neilcsmith-net commented 5 years ago

You need to pass in a version to Gst.init(). Default is 1.8 which doesn't support webrtc elements. I think you want -

Gst.init(new Version(1, 14));
neilyoung commented 5 years ago

@neilcsmith-net Wow, that was fast. And indeed - it works :) Thanks a bunch