Commit Graph

86 Commits

Author SHA1 Message Date
Luke
ce8de088e7 Add RTCPFeedback support to PopulateFromSDP
Handles the newly added RTCPFeedback information from pion/sdp
2020-02-05 18:07:59 -05:00
Sean DuBois
a7e3c8623d Prefer Opus over G711
Relates to #991
2020-01-30 14:16:21 -08:00
Luke S
20f2d1899e Case-insensitive media subtype check
Updates mediaengine according to [1] and [2].

[1] https://tools.ietf.org/html/rfc4855#section-3
[2] https://tools.ietf.org/html/rfc4288#section-4.2
2020-01-21 13:07:39 -08:00
Bao Nguyen
d265906d6f Fixing panic for VP9
Once [1] is merged, this will allow for VP9 codec
to be loaded but noop which will fix [2] from panic
when attempting to use VP9.

[1] https://github.com/pion/rtp/pull/39
[2] https://github.com/pion/example-webrtc-applications/issues/37
2020-01-20 21:18:39 -08:00
adwpc
da03cb4a4d RTP codec and sdp support transport-cc
RTP codec and sdp support transport-cc
2020-01-08 22:31:56 +08:00
adwpc
bac0c492a9 Sdp support transport-cc
Sdp support transport-cc
2020-01-08 22:31:56 +08:00
Sean DuBois
7f53f4b7a8 Fix PopulateFromSDP with Application MediaSection
PopulateFromSDP did not properly handle Offers with Datachannels, now
we only parse a MediaSection that has a name of 'audio' or 'video'

Resolves #953
2019-12-20 01:17:21 -08:00
Sean DuBois
6a29bdf304 Fix typo in MediaEngine
Correctly build PCMU/PCMA entries, before was using NewRTPOpusCodec
2019-10-23 23:44:17 -07:00
Sean DuBois
d1236c8c80 Add G711 Support
Resolves #851
2019-10-10 13:13:25 -07:00
Sean DuBois
0d585106c0 Add examples/play-from-disk
Using IVFReader demonstrate how users can stream a video
from hard disk to browser.

Relates to #636
2019-08-08 16:44:50 -07:00
Mike Coleman
4095d2cde9 Fix for Safari and latest Firefox
This fixes the echo program so it works properly on Safari
and Firefox, where the preferred offered dynamic media type
is not 96/VP8. It loads MediaEngine with codecs found in the
offer and then uses the payload type of the offer's preferred
video codec in the answer.
2019-08-07 11:53:42 -07:00
Sean DuBois
0d768e26f5 Add issue links for MediaEngine TODOs
Relates to #106
2019-07-27 09:35:55 -07:00
Sean DuBois
ad185daaa5 Update TODO for VP9 Payloader
Not supported yet, created a ticket for it

Relates to #106
2019-07-27 09:35:55 -07:00
Sean DuBois
cc940bc5f4 Rename pion-webrtc -> Pion WebRTC
Mass rename everywhere we forgot to update
2019-06-30 21:29:35 -07:00
Sean DuBois
40f5b9459b Update H264 Default Payload type
Short term fix, we need to update examples and show how you should probe
offer when deciding your payload type
2019-04-10 19:50:20 -07:00
Sean DuBois
1cdfc10c84 Mass replace pions -> pion
Pions organization was renamed to pion
2019-04-04 15:32:03 -07:00
Sean DuBois
1202dbaa06 Migrate SDP generation to Unified Plan
This commit has breaking changes. This API change means we
can no longer support an arbitrary number of receivers. For every track
you want to receive you MUST call PeerConnection.AddTransceiver

We do now support sending an multiple audio/video feeds. You can see
this behavior via gstreamer-receive and gstreamer-send currently.

Resolves #54
2019-04-04 12:55:36 -07:00
Alex Browne
012a7ea686 Improve build tags for Wasm
Fixes #515

This includes a few small and closely related changes:

1. All occurrences of the build tag `+build js` have been changed to the
   more precise `+build js,wasm`. This will exclude the files from being
   included by third-party compilers like GopherJS, with which they are
   incompatible.
2. Some files which are incompatible with JavaScript/Wasm now have the
   correct build tag (`+build -js`) so they will be excluded from Wasm
   builds.
3. Some configuration options which are incompatible with
   JavaScript/Wasm (or at least the current bindings) will now no longer
   appear in Wasm builds. This meant creating new files with new struct
   definitions and the appropriate build tags.
2019-03-22 10:48:03 -07:00
Luke Curley
205c759a69 Add feedback support to SDP generation
Syntax could be better but works in a standards-compliant way.

```
codec := webrtc.NewRTPH264Codec(webrtc.DefaultPayloadTypeH264, 90000)
codec.RTPCodecCapability.RTCPFeedback = []webrtc.RTCPFeedback{{
    Type: "nack",
}, {
    Type:      "nack",
    Parameter: "pli",
}}
```
2019-03-20 15:44:17 -07:00
Woodrow Douglass
8a4878c2c4 Don't allow RTP codecs that violate RFC7587
Resolves #462
2019-03-01 16:00:33 -05:00
Max Hawkins
9cba54cfd0 Upgrade to pions/sdp v2
Relates to #417
2019-02-18 11:47:05 -08:00
Max Hawkins
9d88f7c71a Rename Sdp -> SDP
Relates to #417
2019-02-18 11:47:05 -08:00
Max Hawkins
0e7086d37a Remove RTC prefix from all names
Let's pull off the bandaid!

* Reduces studdering: webrtc.RTCTrack -> webrtc.Track
* Makes it easier to find types by editor autocomplete
* Makes code read more fluently (less repetition)

Since we're breaking the API in 2.0, our only chance to
do this is now.

Relates to #408
2019-02-17 16:22:56 -08:00
Sean DuBois
2863555984 Export RTP/RTCP to unique packages
Resolves #272
2019-01-28 11:38:54 -08:00
backkem
db15e20c54 API: Expose SettingEngine
Enable passing custom settings and media engine to an API.
2019-01-24 20:35:49 +01:00
Woodrow Douglass
3aee69ea60 Add some tests for MediaEngine
Also, centralize the error object returned
from media engine codec searches

Relates to #333
2019-01-23 16:21:13 +01:00
Woodrow Douglass
e906728df3 Factor out an API object
Relates to #333
2019-01-23 16:21:13 +01:00
Sean DuBois
29d004ca75 Move SDP to an external package
Resolves #322
2018-12-28 13:57:59 -08:00
Sean DuBois
bec4743e47 Update GStreamer examples to support G722
Update util/gstreamer-sink with case for G722. Also prefer Opus over
G722 in RegisterDefaultCodecs

Relates to #283
2018-12-20 05:19:48 -05:00
Woodrow Douglass
c1bfcc8367 Tweak g722 support code
* allow GST examples to use g722
* Assume G722 is mono -- that's what chrome likes,
  and i don't know if anyone's doing stereo g722 anyway

Relates to #283
2018-12-18 08:33:19 -05:00
Woodrow Douglass
9d6ed099e7 Add a G722 RTP payloader
Resolves #283
2018-12-12 09:23:19 -05:00
chenkaiC4
2b7ab19a94 fix golangci linter 2018-08-16 01:26:58 -07:00
backkem
ab6910899c api: support a custom media engine 2018-07-16 14:20:18 -07:00
backkem
f7c5ecd57f api: fix typos 2018-07-16 14:20:18 -07:00
backkem
1bdd1af406 mediaengine: cleanup 2018-07-16 14:20:18 -07:00
backkem
7f682d2d2e api: match WebRTC api more closely 2018-07-16 14:20:18 -07:00