Skip to content

Cannot recieve remote video on device without camera #388

Closed
@Ascold2017

Description

@Ascold2017

Environment details
Windows 10 x64
Chrome 81.0.4044.129
SDK 2.12.7
Vue.js 2.6.10

Did this work before?
I have two PC devices: with a camera and without. When I calling from a device with camera to a device without a camera, second device received a video track from the caller (first device). But, when I calling from a device without a camera - I don't receive a video track from the remote participant (from a device, who has a camera).

Expected behavior
Participant, who don't have a camera device always receive video track from a remote participant, who has a camera device

Actual behavior
Participants, who don't have a camera device receive video track from a remote participant, who has a camera device only if caller has a camera device.

Logs

Creating video session:
const sessionType = QB.webrtc.CallType[isAvailableVideoDevice ? 'VIDEO' : 'AUDIO']; 
const session = QB.webrtc.createNewSession(participants, sessionType, rootState.quickBlox.userId, {
    bandwidth: '512'
});

const mediaParams = {
  audio: isAvailableAudioDevice,
  video: isAvailableVideoDevice,
  options: {
      muted: false,
      mirror: true
  }
};

session.getUserMedia(mediaParams, function(err: any, stream: any) {
    if (err) {
      reject(err);
    } else {
      session.localStream = stream;
      resolve(session);
    }
});

...
Accept Incoming call:

const mediaParams = {
    audio: isAvailableAudioDevice,
    video: isAvailableVideoDevice,
    options: {
       muted: false,
       mirror: true
    }
};

state.currentVideoSession.getUserMedia(mediaParams, function(err: any, stream: any) {
    if (err) throw err;
    state.currentVideoSession.accept({});
});

....

Listener:

QB.webrtc.onRemoteStreamListener = function(session: any, userId: any, remoteStream: MediaStream) {
              ...
      state.currentVideoSession.peerConnections[userId].stream = remoteStream;
      commit('SET_REMOTE_VIDEO_STREAM', remoteStream);
};

Steps to reproduce the behavior

  1. Need 2 devices: first with camera device and second without it.
  2. Call from the device without a camera.
  3. Accept incoming call on device with a camera

Any others comments?
This problem also reproduces on webrtc example.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions