Giter Club home page Giter Club logo

go-sdp's Introduction

go-sdp

Go implementation of SDP (Session Description Protocol). No external dependencies.

Build Status Go Report Card GoDoc

Features

  • SDP Encoder/Decoder

Installation

go get github.com/pixelbender/go-sdp/...

SDP Decoding

package main

import (
	"github.com/pixelbender/go-sdp/sdp"
	"fmt"
)

func main() {
    sess, err := sdp.ParseString(`v=0
o=alice 2890844526 2890844526 IN IP4 alice.example.org
s=Example
c=IN IP4 127.0.0.1
t=0 0
a=sendrecv
m=audio 10000 RTP/AVP 0 8
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000`)
    
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(sess.Media[0].Format[0].Name) // prints PCMU
    }
}

SDP Encoding

package main

import (
	"github.com/pixelbender/go-sdp/sdp"
	"fmt"
)

func main() {
    sess := &sdp.Session{
        Origin: &sdp.Origin{
            Username:       "alice",
            Address:        "alice.example.org",
            SessionID:      2890844526,
            SessionVersion: 2890844526,
        },
        Name: "Example",
        Connection: &sdp.Connection{
            Address: "127.0.0.1",
        },
        Media: []*sdp.Media{
            {
                Type:  "audio",
                Port:  10000,
                Proto: "RTP/AVP",
                Format: []*sdp.Format{
                    {Payload: 0, Name: "PCMU", ClockRate: 8000},
                    {Payload: 8, Name: "PCMA", ClockRate: 8000},
                },
            },
        },
        Mode: sdp.SendRecv,
    }
    
    fmt.Println(sess.String())
}

Attributes mapping

Scope Attribute Property
session, media sendrecv, recvonly, sendonly, inactive Session.Mode, Media.Mode
media rtpmap Media.Format
media rtcp-fb Format.Feedback
media fmtp Format.Params

Specifications

go-sdp's People

Contributors

pixelbender avatar nothingyf avatar alexflint avatar notorca avatar axelzv9 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.