Commit Briefs

02e68a4c76 Oliver Lowe

m3u8: parse segment title from EXTINF (main, tags/v0.0.4)

Resolves: https://github.com/untangledco/streaming/issues/41


a42aeb2b57 Oliver Lowe

readme: note self-hosted livestream pause


c30923a3bd Oliver Lowe

wav: declare header var once

The rest are initialised to zero values so we don't have to do it ourselves.


837319ae0f Oliver Lowe

pcap: let caller decide to buffer writes

There was probably a bug here. Anyway it's less code!


54727822bf Oliver Lowe

mpegts: shorter return

No need to annotate the error; caller knows we're unmarshalling.


abc6381f91 Oliver Lowe

rtp: tidy marshal, unmarshal


3faffc6a91 Oliver Lowe

m3u8: keep Rendition writing validation separate from Encode

Consistent with the rest of playlist fields. While here delete duplicate Map writing function


896f602490 Oliver Lowe

sdp: use encoding.TextMarshaler for Session encoding

fmt.Stringer is not really meant for larger multi-line text. It sucks a bit that we may return an error, but this lets us put some validation logic in; we don't have any validation yet.


035ab79449 Oliver Lowe

scte35: early return

Clearer than keeping most of the code indented


fdd78130c1 Oliver Lowe

m3u8: de-indent variant parsing common path

Return early with guard statements


Branches

Tags

Tree

.gitignorecommits | blame
LICENSEcommits | blame
README.mdcommits | blame
cair/
cmcd/
cmd/
go.modcommits | blame
internal/
m3u8/
mpegts/
pcap/
rtp/
scte35/
sdp/
wav/

README.md

[![pkgsite](https://pkg.go.dev/badge/github.com/untangledco/streaming)](https://pkg.go.dev/github.com/untangledco/streaming)
[![0 dependencies!](https://www.olowe.co/0.svg)](https://0dependencies.dev)

This repository contains packages for developing media streaming systems in Go.
Watch it being developed live!

- [twitch.tv/untangledco]
- [youtube.com/@untangledco]

We used to use these packages to self-host the livestream,
but the dayjob prevents me from streaming often enough to keep the
server running.

[twitch.tv/untangledco]: https://twitch.tv/untangledco
[youtube.com/@untangledco]: https://www.youtube.com/@untangledco

## Contributing

### Stuff to do

Larger, fleshed-out tasks are managed in [issues].

There are `TODO` notes in the source code, too.
[godoc] provides a graphic interface to view these with the `-notes`
flag:

	godoc -notes TODO

Of course `grep` works too:

	git grep -n TODO

[godoc]: https://pkg.go.dev/golang.org/x/tools/cmd/godoc
[issues]: https://github.com/untangledco/streaming/issues

### Patches

Patches are preferred via email so that we're not too locked in to GitHub.
Post them to the mailing list
[~otl/untangledco@lists.sr.ht] ([archives]).
or to [Oliver Lowe].
See [git-send-email.io] if you're unfamiliar with the workflow.

	git config sendemail.to '~otl/untangledco@lists.sr.ht'

We also accept changes via [pull request].

### Commit messages

Commit messages follow the same format used by the [Go] project (and others).
The commit subject starts with the affected package name then a brief description of the change.
The body may contain an explanation of the change and why it was made.
For example:

	sdp: store attributes as key-value pairs

	This matches what the spec allows, and lets users not worry about
	encoding.

[archives]: https://lists.sr.ht/~otl/untangledco
[~otl/untangledco@lists.sr.ht]: mailto:~otl/untangledco@lists.sr.ht
[git-send-email.io]: https://git-send-email.io
[pull request]: https://github.com/untangledco/streaming/pulls

### Code review

We try to make all code feel familiar to Go programmers
so that it's easier for others to learn from and contribute to in the
future.

In general we follow the guidelines laid out in the following articles:

- [Effective Go]
- [Go Code Review Comments]

Don't worry if you're asked about changing things around!
If there are trivial changes, we may make the changes ourselves.
In this case you still retain all authorship and copyright over your
submission.

If you've read this far and want to join in but feel a little unsure;
I know *exactly* how you feel.
Please feel free to email [Oliver Lowe] and maybe I can help out :)

[Effective Go]: https://go.dev/doc/effective_go
[Go Code Review Comments]: https://go.dev/wiki/CodeReviewComments
[Go]: https://go.dev/doc/contribute#commit_messages
[Oliver Lowe]: mailto:o@olowe.co

## License

Unless otherwise noted, this sotfware is licensed under the ISC License.
See LICENSE.