1.0.10 • Published 4 years ago

sdp-munger v1.0.10

Weekly downloads
9
License
ISC
Repository
-
Last release
4 years ago

sdp-munger

Allows to prioritize the audio/video codecs of WebRTC SDPs without needing to deal with regular expressions.

Requirements:

  • A Web browser capable of interpreting ES6 JavaScript code.

Installation

$ npm install sdp-munger

Usage samples

Munge audio parameters:

The following code sample generates a new SDP with the audio codec named "Sample-Codec" moved to the end the priority list of the SDP audio codecs.

// Create a munger to perform the changes on SDP:
const munger = new Munger(oldSdp);

// Make sure the SDP supports audio:
if (munger.isAudioAvailable()) {

    // Get all audio codecs:
    const audioUpdater = munger.createUpdater(UpdaterType.AUDIO);
    let audioCodecs = audioUpdater.getCodecsList();
    
    // Audio codecs simply a string array. Make changes to
    // this codec array: remove, change order of codecs, etc:
    const audioIndex = audioCodecs.indexOf("Sample-Codec");
    if (audioIndex > -1) {
        audioCodecs.splice(audioIndex, 1);
        audioCodecs.push("Sample-Codec");
    }
    
    // You must stage the codec changes in order to generate the
    // updated SDP.
    audioUpdater.stage(audioCodecs);

    // Generate the SDP with updated codecs:
    const newSdp = munger.getMungedSdp();
}

Create multiple updaters

It is possible to create multiple updaters. The following code, creates one video one audio updater:

if (munger.isAudioAvailable() && munger.isVideoAvailable()) {

    // Create multiple updaters:
    const videoUpdater = munger.createUpdater(UpdaterType.VIDEO);
    const audioUpdater = munger.createUpdater(UpdaterType.AUDIO);
    // ...

    // Perform the necessary chenges to the list of SDP codecs.
    // ...

    // Stage the changes:
    videoUpdater.stage(videoCodecs);
    audioUpdater.stage(audioCodecs);

    // Generate the SDP:
    const newSdp = munger.getMungedSdp();
}

Clear changes made using specific updater

Sometimes it may be necessary to unstage the previously staged changes to SDP. The following code illustrates this usage:

    updater.stage(codecs);
    // ...

    // Woops! Gotta' unstage the changes:
    updater.clearStage();

    // Phew! The changes staged by "updater" will not be
    // visible in the generated SDP:
    const newSdp = munger.getMungedSdp();

Disassociate updater from munger

    const updater = munger.createUpdater(UpdaterType.VIDEO);
     
    // The staged changes made by the removed "updater" will not
    // be applied when generating SDP:
    munger.removeUpdater(updater);
1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.10

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago