| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | var MediaStreamType = require("../../service/RTC/MediaStreamTypes");
/**
 * Creates a MediaStream object for the given data, session id and ssrc.
 * It is a wrapper class for the MediaStream.
 *
 * @param data the data object from which we obtain the stream,
 * the peerjid, etc.
 * @param ssrc the ssrc corresponding to this MediaStream
 * @param mute the whether this MediaStream is muted
 *
 * @constructor
 */
function MediaStream(data, ssrc, browser, eventEmitter, muted, type) {
    // XXX(gp) to minimize headaches in the future, we should build our
    // abstractions around tracks and not streams. ORTC is track based API.
    // Mozilla expects m-lines to represent media tracks.
    //
    // Practically, what I'm saying is that we should have a MediaTrack class
    // and not a MediaStream class.
    //
    // Also, we should be able to associate multiple SSRCs with a MediaTrack as
    // a track might have an associated RTX and FEC sources.
    if (!type) {
        console.log("Errrm...some code needs an update...");
    }
    this.stream = data.stream;
    this.peerjid = data.peerjid;
    this.videoType = data.videoType;
    this.ssrc = ssrc;
    this.type = type;
    this.muted = muted;
    this.eventEmitter = eventEmitter;
}
// FIXME duplicated with LocalStream methods - extract base class
MediaStream.prototype.isAudioStream = function () {
    return MediaStreamType.AUDIO_TYPE === this.type;
};
MediaStream.prototype.isVideoStream = function () {
    return MediaStreamType.VIDEO_TYPE === this.type;
};
MediaStream.prototype.getOriginalStream = function () {
    return this.stream;
};
MediaStream.prototype.setMute = function (value) {
    this.stream.muted = value;
    this.muted = value;
};
module.exports = MediaStream;
 |