Comcast / Gots
Licence: other
MPEG Transport Stream handling in Go
Stars: ✭ 250
Programming Languages
go
31211 projects - #10 most used programming language
goTS (Go Transport Streams)
gots (Go Transport Streams) is a library for working with MPEG transport streams. It provides abstractions for reading packet information and program specific information (psi)
Bug / Feature Reporting
Add requests to Github issues. To submit a PR see CONTRIBUTING
Tests
go test -race ./...
Travis-CI will run these tests:
go test -v ./...
License
This software is licensed under the MIT license. For full text see LICENSE
Code of Conduct
We take our code of conduct very seriously. Please abide by it.
Examples
This is a simple example that extracts all PIDs from a ts file and prints them. CLI example parser can be found here
func main() {
pidSet := make(map[uint16]bool, 5)
filename := "./scenario1.ts"
file, err := os.Open(filename)
if err == nil {
pkt := make([]byte, packet.PacketSize)
for read, err := file.Read(pkt); read > 0 && err == nil; read, err = file.Read(pkt) {
if err != nil {
println(err)
return
}
pid, err := packet.Pid(pkt)
if err != nil {
println(err)
continue
}
pidSet[pid] = true
}
for v := range pidSet {
fmt.Printf("Found pid %d\n", v)
}
} else {
fmt.Printf("Unable to open file [%s] due to [%s]\n", filename, err.Error())
}
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].