Kaynağa Gözat

Merge pull request #113 from jitsi/removes_fake_tracks

Removes fake video tracks from the code
master
lyubomir 9 yıl önce
ebeveyn
işleme
2f0d4befd8

+ 13
- 17
JitsiConference.js Dosyayı Görüntüle

@@ -629,6 +629,13 @@ JitsiConference.prototype.onDisplayNameChanged = function (jid, displayName) {
629 629
     this.eventEmitter.emit(JitsiConferenceEvents.DISPLAY_NAME_CHANGED, id, displayName);
630 630
 };
631 631
 
632
+/**
633
+ * Notifies this JitsiConference that a JitsiRemoteTrack was added (into the
634
+ * ChatRoom of this JitsiConference).
635
+ *
636
+ * @param {JitsiRemoteTrack} track the JitsiRemoteTrack which was added to this
637
+ * JitsiConference
638
+ */
632 639
 JitsiConference.prototype.onTrackAdded = function (track) {
633 640
     var id = track.getParticipantId();
634 641
     var participant = this.getParticipantById(id);
@@ -636,16 +643,7 @@ JitsiConference.prototype.onTrackAdded = function (track) {
636 643
         return;
637 644
     }
638 645
 
639
-    //FIXME: This is temporary fix
640
-    //Make sure that no fake tracks are left.
641
-    if(track.isVideoTrack() && !track.isFake) {
642
-        //Remove the fake video track
643
-        participant._tracks = participant._tracks.filter(function (track) {
644
-            return !track.isFake;
645
-        });
646
-    }
647
-
648
-    // add track to JitsiParticipant
646
+    // Add track to JitsiParticipant.
649 647
     participant._tracks.push(track);
650 648
 
651 649
     var emitter = this.eventEmitter;
@@ -658,11 +656,14 @@ JitsiConference.prototype.onTrackAdded = function (track) {
658 656
     track.addEventListener(
659 657
         JitsiTrackEvents.TRACK_AUDIO_LEVEL_CHANGED,
660 658
         function (audioLevel) {
661
-            emitter.emit(JitsiConferenceEvents.TRACK_AUDIO_LEVEL_CHANGED, id, audioLevel);
659
+            emitter.emit(
660
+                JitsiConferenceEvents.TRACK_AUDIO_LEVEL_CHANGED,
661
+                id,
662
+                audioLevel);
662 663
         }
663 664
     );
664 665
 
665
-    this.eventEmitter.emit(JitsiConferenceEvents.TRACK_ADDED, track);
666
+    emitter.emit(JitsiConferenceEvents.TRACK_ADDED, track);
666 667
 };
667 668
 
668 669
 JitsiConference.prototype.updateDTMFSupport = function () {
@@ -966,11 +967,6 @@ function setupListeners(conference) {
966 967
             });
967 968
         }
968 969
     );
969
-    conference.rtc.addListener(RTCEvents.FAKE_VIDEO_TRACK_CREATED,
970
-        function (track) {
971
-            conference.onTrackAdded(track);
972
-        }
973
-    );
974 970
 
975 971
     conference.room.addListener(XMPPEvents.AUDIO_MUTED_BY_FOCUS,
976 972
         function (value) {

+ 1
- 3
modules/RTC/JitsiRemoteTrack.js Dosyayı Görüntüle

@@ -11,17 +11,15 @@ var JitsiTrackEvents = require("../../JitsiTrackEvents");
11 11
  * @param videoType the VideoType of the JitsiRemoteTrack
12 12
  * @param ssrc the SSRC number of the Media Stream
13 13
  * @param muted intial muted state of the JitsiRemoteTrack
14
- * @param isFake true if the track is not associated with Media Stream.
15 14
  * @constructor
16 15
  */
17 16
 function JitsiRemoteTrack(RTC, ownerJid, stream, track, mediaType, videoType,
18
-                          ssrc, muted, isFake) {
17
+                          ssrc, muted) {
19 18
     JitsiTrack.call(
20 19
         this, RTC, stream, track, function () {}, mediaType, videoType, ssrc);
21 20
     this.rtc = RTC;
22 21
     this.peerjid = ownerJid;
23 22
     this.muted = muted;
24
-    this.isFake = isFake? isFake : false;
25 23
 }
26 24
 
27 25
 JitsiRemoteTrack.prototype = Object.create(JitsiTrack.prototype);

+ 15
- 23
modules/RTC/RTC.js Dosyayı Görüntüle

@@ -42,23 +42,10 @@ function RTC(room, options) {
42 42
     var self = this;
43 43
     this.options = options || {};
44 44
     room.addPresenceListener("videomuted", function (values, from) {
45
-        if(!self.remoteTracks[from])
46
-            return;
47 45
         var videoTrack = self.getRemoteVideoTrack(from);
48
-        // If there is no video track, but we receive it is muted,
49
-        // we need to create a dummy track which we will mute, so we can
50
-        // notify interested about the muting
51
-        if (!videoTrack) {
52
-            videoTrack = self.createRemoteTrack({
53
-                    owner: room.roomjid + "/" + from,
54
-                    videoType: VideoType.CAMERA,
55
-                    mediaType: MediaType.VIDEO,
56
-                    isFake: true
57
-                });
58
-            self.eventEmitter
59
-                .emit(RTCEvents.FAKE_VIDEO_TRACK_CREATED, videoTrack);
46
+        if (videoTrack) {
47
+            videoTrack.setMute(values.value == "true");
60 48
         }
61
-        videoTrack.setMute(values.value == "true");
62 49
     });
63 50
     room.addPresenceListener("audiomuted", function (values, from) {
64 51
         var audioTrack = self.getRemoteAudioTrack(from);
@@ -254,21 +241,26 @@ RTC.prototype.removeLocalTrack = function (track) {
254 241
     }
255 242
 };
256 243
 
244
+/**
245
+ * Initializes a new JitsiRemoteTrack instance with the data provided by (a)
246
+ * ChatRoom to XMPPEvents.REMOTE_TRACK_ADDED.
247
+ *
248
+ * @param {Object} event the data provided by (a) ChatRoom to
249
+ * XMPPEvents.REMOTE_TRACK_ADDED to (a)
250
+ */
257 251
 RTC.prototype.createRemoteTrack = function (event) {
258 252
     var ownerJid = event.owner;
259 253
     var remoteTrack = new JitsiRemoteTrack(
260 254
         this,  ownerJid, event.stream,    event.track,
261
-        event.mediaType, event.videoType, event.ssrc, event.muted, event.isFake);
255
+        event.mediaType, event.videoType, event.ssrc, event.muted);
262 256
     var resource = Strophe.getResourceFromJid(ownerJid);
263
-    if(!this.remoteTracks[resource]) {
264
-        this.remoteTracks[resource] = {};
265
-    }
257
+    var remoteTracks
258
+        = this.remoteTracks[resource] || (this.remoteTracks[resource] = {});
266 259
     var mediaType = remoteTrack.getType();
267
-    if (this.remoteTracks[resource][mediaType]) {
268
-        logger.warn(
269
-            "Overwriting remote track !", resource, mediaType);
260
+    if (remoteTracks[mediaType]) {
261
+        logger.warn("Overwriting remote track!", resource, mediaType);
270 262
     }
271
-    this.remoteTracks[resource][mediaType] = remoteTrack;
263
+    remoteTracks[mediaType] = remoteTrack;
272 264
     return remoteTrack;
273 265
 };
274 266
 

+ 1
- 2
service/RTC/RTCEvents.js Dosyayı Görüntüle

@@ -5,10 +5,9 @@ var RTCEvents = {
5 5
     DOMINANTSPEAKER_CHANGED: "rtc.dominantspeaker_changed",
6 6
     LASTN_ENDPOINT_CHANGED: "rtc.lastn_endpoint_changed",
7 7
     AVAILABLE_DEVICES_CHANGED: "rtc.available_devices_changed",
8
-    FAKE_VIDEO_TRACK_CREATED: "rtc.fake_video_track_created",
9 8
     TRACK_ATTACHED: "rtc.track_attached",
10 9
     AUDIO_OUTPUT_DEVICE_CHANGED: "rtc.audio_output_device_changed",
11 10
     DEVICE_LIST_CHANGED: "rtc.device_list_changed"
12 11
 };
13 12
 
14
-module.exports = RTCEvents;
13
+module.exports = RTCEvents;

Loading…
İptal
Kaydet