Search in sources :

Example 1 with Camera

use of org.thoughtcrime.securesms.ringrtc.Camera in project Signal-Android by WhisperSystems.

the class CallSetupActionProcessorDelegate method handleSetEnableVideo.

@Override
@NonNull
protected WebRtcServiceState handleSetEnableVideo(@NonNull WebRtcServiceState currentState, boolean enable) {
    Log.i(tag, "handleSetEnableVideo(): enable: " + enable);
    Camera camera = currentState.getVideoState().requireCamera();
    if (camera.isInitialized()) {
        camera.setEnabled(enable);
    }
    currentState = currentState.builder().changeLocalDeviceState().cameraState(camera.getCameraState()).build();
    WebRtcUtil.enableSpeakerPhoneIfNeeded(webRtcInteractor, currentState);
    return currentState;
}
Also used : Camera(org.thoughtcrime.securesms.ringrtc.Camera) NonNull(androidx.annotation.NonNull)

Example 2 with Camera

use of org.thoughtcrime.securesms.ringrtc.Camera in project Signal-Android by WhisperSystems.

the class GroupConnectedActionProcessor method handleSetEnableVideo.

@Override
@NonNull
protected WebRtcServiceState handleSetEnableVideo(@NonNull WebRtcServiceState currentState, boolean enable) {
    Log.i(TAG, "handleSetEnableVideo():");
    GroupCall groupCall = currentState.getCallInfoState().requireGroupCall();
    Camera camera = currentState.getVideoState().requireCamera();
    try {
        groupCall.setOutgoingVideoMuted(!enable);
    } catch (CallException e) {
        return groupCallFailure(currentState, "Unable set video muted", e);
    }
    camera.setEnabled(enable);
    currentState = currentState.builder().changeLocalDeviceState().cameraState(camera.getCameraState()).build();
    WebRtcUtil.enableSpeakerPhoneIfNeeded(webRtcInteractor, currentState);
    return currentState;
}
Also used : CallException(org.signal.ringrtc.CallException) GroupCall(org.signal.ringrtc.GroupCall) Camera(org.thoughtcrime.securesms.ringrtc.Camera) NonNull(androidx.annotation.NonNull)

Example 3 with Camera

use of org.thoughtcrime.securesms.ringrtc.Camera in project Signal-Android by signalapp.

the class GroupConnectedActionProcessor method handleSetEnableVideo.

@Override
@NonNull
protected WebRtcServiceState handleSetEnableVideo(@NonNull WebRtcServiceState currentState, boolean enable) {
    Log.i(TAG, "handleSetEnableVideo():");
    GroupCall groupCall = currentState.getCallInfoState().requireGroupCall();
    Camera camera = currentState.getVideoState().requireCamera();
    try {
        groupCall.setOutgoingVideoMuted(!enable);
    } catch (CallException e) {
        return groupCallFailure(currentState, "Unable set video muted", e);
    }
    camera.setEnabled(enable);
    currentState = currentState.builder().changeLocalDeviceState().cameraState(camera.getCameraState()).build();
    WebRtcUtil.enableSpeakerPhoneIfNeeded(webRtcInteractor, currentState);
    return currentState;
}
Also used : CallException(org.signal.ringrtc.CallException) GroupCall(org.signal.ringrtc.GroupCall) Camera(org.thoughtcrime.securesms.ringrtc.Camera) NonNull(androidx.annotation.NonNull)

Example 4 with Camera

use of org.thoughtcrime.securesms.ringrtc.Camera in project Signal-Android by signalapp.

the class WebRtcVideoUtil method initializeVanityCamera.

@NonNull
public static WebRtcServiceState initializeVanityCamera(@NonNull WebRtcServiceState currentState) {
    Camera camera = currentState.getVideoState().requireCamera();
    VideoSink sink = currentState.getVideoState().requireLocalSink();
    if (camera.hasCapturer()) {
        camera.initCapturer(new CapturerObserver() {

            @Override
            public void onFrameCaptured(VideoFrame videoFrame) {
                sink.onFrame(videoFrame);
            }

            @Override
            public void onCapturerStarted(boolean success) {
            }

            @Override
            public void onCapturerStopped() {
            }
        });
        camera.setEnabled(true);
    }
    return currentState.builder().changeLocalDeviceState().cameraState(camera.getCameraState()).build();
}
Also used : VideoFrame(org.webrtc.VideoFrame) CapturerObserver(org.webrtc.CapturerObserver) BroadcastVideoSink(org.thoughtcrime.securesms.components.webrtc.BroadcastVideoSink) VideoSink(org.webrtc.VideoSink) Camera(org.thoughtcrime.securesms.ringrtc.Camera) NonNull(androidx.annotation.NonNull)

Example 5 with Camera

use of org.thoughtcrime.securesms.ringrtc.Camera in project Signal-Android by signalapp.

the class WebRtcVideoUtil method initializeVideo.

@NonNull
public static WebRtcServiceState initializeVideo(@NonNull Context context, @NonNull CameraEventListener cameraEventListener, @NonNull WebRtcServiceState currentState, @NonNull Object eglBaseHolder) {
    final WebRtcServiceStateBuilder builder = currentState.builder();
    ThreadUtil.runOnMainSync(() -> {
        EglBaseWrapper eglBase = EglBaseWrapper.acquireEglBase(eglBaseHolder);
        BroadcastVideoSink localSink = new BroadcastVideoSink(eglBase, true, false, currentState.getLocalDeviceState().getOrientation().getDegrees());
        Camera camera = new Camera(context, cameraEventListener, eglBase, CameraState.Direction.FRONT);
        camera.setOrientation(currentState.getLocalDeviceState().getOrientation().getDegrees());
        builder.changeVideoState().eglBase(eglBase).localSink(localSink).camera(camera).commit().changeLocalDeviceState().cameraState(camera.getCameraState()).commit();
    });
    return builder.build();
}
Also used : BroadcastVideoSink(org.thoughtcrime.securesms.components.webrtc.BroadcastVideoSink) WebRtcServiceStateBuilder(org.thoughtcrime.securesms.service.webrtc.state.WebRtcServiceStateBuilder) EglBaseWrapper(org.thoughtcrime.securesms.components.webrtc.EglBaseWrapper) Camera(org.thoughtcrime.securesms.ringrtc.Camera) NonNull(androidx.annotation.NonNull)

Aggregations

NonNull (androidx.annotation.NonNull)14 Camera (org.thoughtcrime.securesms.ringrtc.Camera)14 BroadcastVideoSink (org.thoughtcrime.securesms.components.webrtc.BroadcastVideoSink)6 CallException (org.signal.ringrtc.CallException)4 GroupCall (org.signal.ringrtc.GroupCall)4 WebRtcServiceStateBuilder (org.thoughtcrime.securesms.service.webrtc.state.WebRtcServiceStateBuilder)4 EglBaseWrapper (org.thoughtcrime.securesms.components.webrtc.EglBaseWrapper)2 CallParticipant (org.thoughtcrime.securesms.events.CallParticipant)2 CapturerObserver (org.webrtc.CapturerObserver)2 VideoFrame (org.webrtc.VideoFrame)2 VideoSink (org.webrtc.VideoSink)2