Commit Graph

104 Commits

Author SHA1 Message Date
Sean DuBois
09461d55a6 Remove examples/internal
Users find it frustrating that example code doesn't work out of tree.
This makes copying the examples out of the repo easier.

Relates to #1981
2024-05-20 10:54:16 -04:00
Sean DuBois
fda6c4f836 Fix linter errors
golangci-lint upgrade to v1.56.2 added more checks

Relates to pion/.goassets#201
2024-03-16 21:09:38 -04:00
Sean DuBois
f66b8b6ce2 Update examples to handle going to Closed
Relates to #1767
2023-09-08 16:20:12 -04:00
Sean DuBois
50301ea73c Update docs to use go install
`go get` is not a supported method to install binaries anymore
2023-09-05 13:17:23 -04:00
Sean DuBois
5aa5fac6ea Remove GO111MODULE from docs 2023-09-05 11:48:14 -04:00
Sean DuBois
dc4b591c4d Start pion/webrtc/v4
60eea43 is a breaking change
2023-09-05 11:48:14 -04:00
Sean DuBois
90e3a83b57 Add support to AV1 in play-from-disk
Resolves pion/rtp#190
Resolves pion/rtp#191
2023-07-20 19:42:44 -04:00
Steffen Vogel
683fc837d0 Make repo REUSE compliant 2023-05-05 11:58:49 -04:00
Sean DuBois
03c83a178c Use new intervalpli interceptor in examples
Instead of manually spawning a goroutine this demonstrates how an
interceptor can be useful.

Co-authored-by: Antoine Baché <antoine@tenten.app>
2023-04-25 22:25:56 -04:00
Pion
308f8616a3 Update CI configs to v0.10.6
Update lint scripts and CI configs.
2023-04-08 14:24:19 -04:00
Sean DuBois
9c47fea3f2 Remove new RTCSessionDescription pattern
SetRemoteDescription accepts a RTCSessionDescriptionInit so this is no
longer needed

Resolves #2324
2022-10-24 22:36:30 -04:00
Sean DuBois
ce533d527f Add StandardJS workflow
Been running these locally only.
2022-02-05 22:20:52 -05:00
Roman Romanenko
7c8064052e Update all examples with copySessionDescription
copySessionDescription adds a button to all examples that copies the
local Session Description. This makes it easier for users to copy the
values.

Resolves #2092
2022-02-05 13:41:44 -05:00
Sean DuBois
157220e800 Run gofmt to add new build constraints
Also remove some 1.13 specific WASM code
2022-01-17 22:36:01 -05:00
Sean DuBois
fe447d6e56 Revert "Process RTCP Packets in OnTrack examples"
This is not needed. We don't perform any operations on inbound RTCP
packets. Receiver Reports and TWCC are generated by Reading RTP packets.

This reverts commit 080d7b8427.
2021-12-29 23:39:32 -05:00
Sean DuBois
080d7b8427 Process RTCP Packets in OnTrack examples
TWCC and Receiver Reports are needed for a good default experience
2021-12-17 12:03:39 -05:00
Sean DuBois
fa72a9529f Add examples/rtcp-processing
rtcp-processing demonstrates how to access RTCP Packets via ReadRTCP

Resolves #2027
2021-11-20 22:06:03 -05:00
Artur Shellunts
85ec020450 Be more explicit examples/save-to-disk
save-to-webm saves VP8+Opus inside of a webm
2021-10-10 12:32:18 -04:00
Antoine Baché
7e049ec5ec Update examples
TestNonFatalRead now has an timeout.
Examples now use Mime types, instead of raw strings.

Fixes #839
2021-07-02 11:49:55 -04:00
Sean DuBois
33d953e1eb Enable Sender and Receiver Reports by default
The play-from-disk examples sees the average bitrate using
Chromium 90.0.4412.3 when enabled on loopback for a 3 minute
session.

Before: 744.443
After: 3927.669

Introduced with pion/interceptor@v0.0.10
2021-02-23 22:35:15 -08:00
Pascal Benoit
22eea024a2 Fix codec matching in save-to-disk
Use equalFold. Codecs aren't case sensitive and a client could use
either
2021-02-04 08:51:48 -08:00
Sean DuBois
67826b1914 Update Interceptors to use []byte based API
Also update test to assert Attributes get passed all the way through

Resolves pion/interceptor#14
2020-12-13 18:40:33 -08:00
Sean DuBois
9715626a0c Revert "Read/Write RTP/RTCP packets with context"
This change caused a ~24% performance decrease

Relates to pion/webrtc#1564

This reverts commit 47a7a64898.
2020-12-02 20:11:06 -08:00
Atsushi Watanabe
47a7a64898 Read/Write RTP/RTCP packets with context
Control cancel/timeout by context.
2020-12-01 11:08:48 +09:00
OrlandoCo
3333b65c01 Make WithMediaEngine to receive a pointer
These change will allow to use the MediaEngine outside Pion context
2020-11-18 10:56:29 -08:00
Pion
a737595534 Update CI configs to v0.4.15
Update lint scripts and CI configs.
2020-11-16 12:18:44 -08:00
Sean DuBois
7edfb701e0 New Track API
The Pion WebRTC API has been dramatically redesigned. The design docs
are located here [0]

You can also read the release notes [1] on how to migrate your
application.

[0] https://github.com/pion/webrtc-v3-design
[1] https://github.com/pion/webrtc/wiki/Release-WebRTC@v3.0.0
2020-11-15 09:20:47 -08:00
Jamie Good
63112a4ed4 Use addTrack instead of addStream in examples
Logs: TypeError: pc.addStream is not a function.
Fixed js error when using safari due to deprecated
RTCPeerConnection.addStream() method.

Updated js fiddle examples to use the addTrack()
method instead.
2020-10-14 10:16:28 -07:00
Sean DuBois
804a12fed3 Update CI configs to v0.4.7
Update lint scripts and CI configs.
2020-09-30 09:06:34 -07:00
Nick Mykins
a1bbddd0d8 Improve docs around Go Modules
adds export `GO111MODULE=on` to examples READMEs when appropriate
2020-06-30 20:14:23 -07:00
Sean DuBois
bb3aa9717f Move to pion/ice@v2
Removed support for trickle ice

Resolves #1274
2020-06-28 00:01:47 -07:00
Sean DuBois
89d7de1787 Start /v3
See #9 for the features we have planned, and the breaking changes that
may occur.
2020-06-25 09:45:27 -07:00
Yuki Igarashi
787b2c0a62 Update examples to use AddTransceiverFromKind
Move from AddTransceiver to AddTransceiverFromKind.
2020-04-05 00:14:22 +09:00
Masahiro Nakamura
31e3a1a6ac Update how to install in example projects
Download instructions should contain 'v2' now.
2020-04-02 19:22:23 -07:00
Sean DuBois
793a8b92ca Reference save-to-webm in save-to-disk example
Users may want to save H264 to disk, link to webm example to guide users
that way also.

Resolves #889
2019-12-08 02:09:52 -08:00
Hugo Arregui
6997cc792c Linter fixes
Disable funlen and some fixes

Co-authored-by: Sean DuBois <sean@siobud.com>
2019-09-10 21:48:25 -07:00
Sean DuBois
6209597312 Fix OpusWriter issues that break VLC
* Correctly calculate page CRC
Ogg uses slightly non-standard version of CRC, we are unable to
use the Go's version. You can see the details here[0], in summary
"direct algorithm, initial val and final XOR = 0,
generator polynomial=0x04c11db7"

[0] https://xiph.org/vorbis/doc/framing.html

* Properly set EOS value
Before we created a new page with an EOS. Instead seek backwards
and update the last page with valid Opus to have EOS header and
re-generate the CRC

* Only use 0 timestamp/granule for headers
Audio itself should start from 0

* Rename OpusWriter -> OggWriter
Ogg supports more then just Opus, renaming gives us the flexibility to
expand in the future.
2019-08-15 17:12:01 -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
e8fe7aa48d Bump SRTP/RTCP and update RTCP API
Reading/Writing RTCP packets now return a slice

Relates to pion/srtp#29
2019-04-11 16:03:26 -07:00
Sean DuBois
dbde6114a2 Update import paths
Add /v2 to import paths everywhere
2019-04-07 02:17:15 -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
Max Hawkins
2a9d654143 Rename media.Writer AddPacket -> WriteRTP
Makes the name consistent with webrtc's WriteRTP
and makes webrtc.Track a Writer.

Fixes #566
2019-03-31 00:03:37 -07:00
Max Hawkins
4298892dc0 Rename SendRTCP -> WriteRTCP
Makes method name consistent with WriteRTP

Fixes #557
2019-03-30 10:21:46 -07:00
Sean DuBois
fdcb1a3941 Rewrite examples to avoid onnegotiationneeded
onnegotiationneeded is broken in libwebrtc M73, so
just rewrite all examples to only set the offer once

Resolves #545
2019-03-23 13:36:06 -07:00
Sean DuBois
f174986c74 Fix all lint errors in examples/
Resolves #531 and Resolves #470
2019-03-21 09:31:27 -07:00
Antoine Baché
6a68ca04a8 IVF records can now be longer than 30s
- Added timeout to save-to-disk example
- Writing number of IVF frames when closing the file
- Fixed typos

Relates to #471
2019-03-07 14:49:25 -08:00
backkem
911013755a Examples: serve WASM examples locally
The examples server now detects 'demo.wasm' files in
the jsfiddles. Examples layout updated to match Pion style.
Resolves #491
2019-03-07 22:44:51 +01:00
Woodrow Douglass
8a4878c2c4 Don't allow RTP codecs that violate RFC7587
Resolves #462
2019-03-01 16:00:33 -05:00
Antoine Baché
07e5c4e07e Implementation of opuswriter
- Implemented a common "Writer" interface
- Made IVFWriter compliant to the new interface
- Implemented an OGG Opus writer
- Updated the save-file example
- Updated janus-gateway/streaming example
- Wrote a few unit tests for opus-writer
- Wrote a few unit tests for ivf-writer
- Fixed filenames
- Improved API to allow tests using an io.Writer
2019-02-27 12:02:34 -08:00