Skip to content

Commit c91430c

Browse files
authored
Fix linter warnings and update build config (#54)
* prune ci config * bump testify version * remove unused makefile goals * update readme * fix example compile errors * auto fix various linter warnings * fix circle build * match latest circle config schema * map all xml attrs in content protection structs * include in marshal
1 parent e4ca85a commit c91430c

File tree

15 files changed

+207
-267
lines changed

15 files changed

+207
-267
lines changed

.circleci/config.yml

Lines changed: 10 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,26 @@
11
---
22
version: 2
3-
executorType: docker
4-
containerInfo:
5-
- image: library/golang
6-
environment:
7-
AWS_ACCESS_KEY_ID: 1
8-
AWS_SECRET_ACCESS_KEY: 1
9-
GLIDE_VERSION: 0.12.3
103
jobs:
114
build:
12-
workdir: "/go/src/github.com/zencoder/go-dash"
5+
docker:
6+
- image: circleci/golang
7+
working_directory: "/go/src/github.com/zencoder/go-dash"
138
steps:
149
- checkout
1510
- run:
1611
name: Install Glide
1712
command: |
1813
set -eux
19-
curl -sSLfO https://github.com/Masterminds/glide/releases/download/v${GLIDE_VERSION}/glide-v${GLIDE_VERSION}-linux-amd64.tar.gz
20-
mkdir glide
21-
tar -xzf glide-v${GLIDE_VERSION}-linux-amd64.tar.gz -C ./glide
22-
cp ./glide/linux-amd64/glide /usr/local/bin/glide
23-
rm -r glide glide-v${GLIDE_VERSION}-linux-amd64.tar.gz
14+
curl -sSLfO https://github.com/Masterminds/glide/releases/download/v0.12.3/glide-v0.12.3-linux-amd64.tar.gz
15+
mkdir -p /go/bin glide
16+
tar -xzf glide-v0.12.3-linux-amd64.tar.gz -C ./glide
17+
cp ./glide/linux-amd64/glide /go/bin/glide
18+
rm -rf glide glide-v0.12.3-linux-amd64.tar.gz
2419
- restore_cache:
2520
key: glide-{{ checksum "glide.lock" }}
26-
- run:
27-
name: Download vendored Go dependencies
28-
command: glide install
21+
- run: /go/bin/glide install
2922
- save_cache:
3023
key: glide-{{ checksum "glide.lock" }}
3124
paths:
3225
- vendor
33-
- run:
34-
name: Install required tooling
35-
command: |
36-
go get golang.org/x/tools/cmd/cover
37-
go get github.com/mattn/goveralls
38-
go get github.com/modocache/gover
39-
- run:
40-
name: Run unit tests
41-
command: |
42-
make test
43-
- run:
44-
name: Collect coverage reports
45-
command: |
46-
make cover
47-
- run:
48-
name: Submit coverage to coveralls.io
49-
command: |
50-
make coveralls
26+
- run: make test

Makefile

Lines changed: 18 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,31 @@
1-
COVERAGEDIR = coverage
2-
ifdef CIRCLE_ARTIFACTS
3-
COVERAGEDIR = $(CIRCLE_ARTIFACTS)
4-
endif
5-
61
ifdef VERBOSE
72
V = -v
3+
X = -x
84
else
95
.SILENT:
106
endif
117

12-
all: test cover
8+
.DEFAULT_GOAL := all
139

14-
fmt:
15-
find . -not -path "./vendor/*" -name '*.go' -type f | sed 's#\(.*\)/.*#\1#' | sort -u | xargs -n1 -I {} bash -c "cd {} && goimports -w *.go && gofmt -w -s -l *.go"
10+
.PHONY: all
11+
all: test
1612

17-
test:
18-
mkdir -p coverage
19-
go test $(V) ./mpd -race -cover -coverprofile=$(COVERAGEDIR)/mpd.coverprofile
13+
vendor:
14+
glide install
2015

21-
cover:
22-
go tool cover -html=$(COVERAGEDIR)/mpd.coverprofile -o $(COVERAGEDIR)/mpd.html
16+
.PHONY: test
17+
test: vendor
18+
go test $(V) ./... -race
2319

24-
tc: test cover
20+
.PHONY: generate
21+
generate: vendor
22+
GENERATE_FIXTURES=true $(MAKE) test
2523

26-
coveralls:
27-
gover $(COVERAGEDIR) $(COVERAGEDIR)/coveralls.coverprofile
28-
goveralls -coverprofile=$(COVERAGEDIR)/coveralls.coverprofile -service=circle-ci -repotoken=$(COVERALLS_TOKEN)
24+
.PHONY: fmt
25+
fmt:
26+
find . -not -path "./vendor/*" -name '*.go' -type f | sed 's#\(.*\)/.*#\1#' | sort -u | xargs -n1 -I {} bash -c "cd {} && goimports -w *.go && gofmt -w -s -l *.go"
2927

28+
.PHONY: clean
3029
clean:
31-
go clean
32-
rm -rf coverage/
33-
34-
examples-live:
35-
go run examples/live.go
36-
37-
examples-ondemand:
38-
go run examples/ondemand.go
39-
40-
generate:
41-
GENERATE_FIXTURES=true $(MAKE) test
30+
rm -rf vendor/
31+
go clean -i $(X) -cache -testcache

README.md

Lines changed: 8 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,11 @@
1-
# go-dash
1+
# go-dash [![godoc](https://godoc.org/github.com/zencoder/go-dash/mpd?status.svg)](http://godoc.org/github.com/zencoder/go-dash/mpd)
22

3-
[![godoc](https://godoc.org/github.com/zencoder/go-dash/mpd?status.svg)](http://godoc.org/github.com/zencoder/go-dash/mpd)
4-
5-
A Go library for generating MPEG-DASH manifests.
3+
A [Go](https://golang.org) library for generating [MPEG-DASH](https://en.wikipedia.org/wiki/Dynamic_Adaptive_Streaming_over_HTTP) manifests.
64

75
## Install
86

9-
This library uses [Glide](https://github.com/Masterminds/glide) to manage it's dependencies. Please refer to the Glide documentation to see how to install glide.
10-
11-
```bash
12-
mkdir -p $GOPATH/src/github.com/zencoder
13-
cd $GOPATH/src/github.com/zencoder
14-
git clone https://github.com/zencoder/go-dash
15-
cd go-dash
16-
glide install
17-
go install ./...
7+
```
8+
go get -u github.com/zencoder/go-dash
189
```
1910

2011
## Supported Features
@@ -38,31 +29,17 @@ go install ./...
3829

3930
## Example Usage
4031

41-
See [examples/](https://github.com/zencoder/go-dash/tree/master/examples)
32+
See the [examples/](https://github.com/zencoder/go-dash/tree/master/examples) directory.
4233

43-
To run (Live Profile example):
44-
```
45-
make examples-live
46-
```
34+
## Development
4735

48-
To run (OnDemand Profile example):
4936
```
50-
make examples-ondemand
37+
make test
5138
```
5239

53-
## Development
54-
55-
### Dependencies
56-
57-
Tested on go 1.9.2.
58-
59-
### Build and run unit tests
60-
61-
make test
62-
6340
### CI
6441

65-
[This library builds on Circle CI, here.](https://circleci.com/gh/zencoder/go-dash/)
42+
[This project builds in Circle CI](https://circleci.com/gh/zencoder/go-dash/)
6643

6744
## License
6845

examples/live.go

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,34 +6,29 @@ import (
66
"github.com/zencoder/go-dash/mpd"
77
)
88

9-
func main() {
10-
9+
func exampleLive() {
1110
m := mpd.NewMPD(mpd.DASH_PROFILE_LIVE, "PT6M16S", "PT1.97S")
1211

1312
audioAS, _ := m.AddNewAdaptationSetAudio(mpd.DASH_MIME_TYPE_AUDIO_MP4, true, 1, "und")
14-
15-
audioAS.AddNewContentProtectionRoot("08e367028f33436ca5dd60ffe5571e60")
16-
audioAS.AddNewContentProtectionSchemeWidevineWithPSSH()
17-
audioAS.AddNewContentProtectionSchemePlayready("mgIAAAEAAQCQAjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AQQBtAGYAagBDAFQATwBQAGIARQBPAGwAMwBXAEQALwA1AG0AYwBlAGMAQQA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBCAEcAdwAxAGEAWQBaADEAWQBYAE0APQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALgBkAGkAcgBlAGMAdAB0AGEAcABzAC4AbgBlAHQALwBwAHIALwBzAHYAYwAvAHIAaQBnAGgAdABzAG0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A")
18-
19-
audioAS.SetNewSegmentTemplate(1968, "$RepresentationID$/audio/en/init.mp4", "$RepresentationID$/audio/en/seg-$Number$.m4f", 0, 1000)
20-
audioAS.AddNewRepresentationAudio(44100, 67095, "mp4a.40.2", "800")
13+
_, _ = audioAS.AddNewContentProtectionRoot("08e367028f33436ca5dd60ffe5571e60")
14+
_, _ = audioAS.AddNewContentProtectionSchemeWidevineWithPSSH([]byte{})
15+
_, _ = audioAS.AddNewContentProtectionSchemePlayready("mgIAAAEAAQCQAjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AQQBtAGYAagBDAFQATwBQAGIARQBPAGwAMwBXAEQALwA1AG0AYwBlAGMAQQA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBCAEcAdwAxAGEAWQBaADEAWQBYAE0APQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALgBkAGkAcgBlAGMAdAB0AGEAcABzAC4AbgBlAHQALwBwAHIALwBzAHYAYwAvAHIAaQBnAGgAdABzAG0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A")
16+
_, _ = audioAS.SetNewSegmentTemplate(1968, "$RepresentationID$/audio/en/init.mp4", "$RepresentationID$/audio/en/seg-$Number$.m4f", 0, 1000)
17+
_, _ = audioAS.AddNewRepresentationAudio(44100, 67095, "mp4a.40.2", "800")
2118

2219
videoAS, _ := m.AddNewAdaptationSetVideo(mpd.DASH_MIME_TYPE_VIDEO_MP4, "progressive", true, 1)
23-
24-
videoAS.AddNewContentProtectionRoot("08e367028f33436ca5dd60ffe5571e60")
25-
videoAS.AddNewContentProtectionSchemeWidevineWithPSSH()
26-
videoAS.AddNewContentProtectionSchemePlayready("mgIAAAEAAQCQAjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AQQBtAGYAagBDAFQATwBQAGIARQBPAGwAMwBXAEQALwA1AG0AYwBlAGMAQQA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBCAEcAdwAxAGEAWQBaADEAWQBYAE0APQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALgBkAGkAcgBlAGMAdAB0AGEAcABzAC4AbgBlAHQALwBwAHIALwBzAHYAYwAvAHIAaQBnAGgAdABzAG0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A")
27-
28-
videoAS.SetNewSegmentTemplate(1968, "$RepresentationID$/video/1/init.mp4", "$RepresentationID$/video/1/seg-$Number$.m4f", 0, 1000)
29-
videoAS.AddNewRepresentationVideo(1518664, "avc1.4d401f", "800", "30000/1001", 960, 540)
30-
videoAS.AddNewRepresentationVideo(1911775, "avc1.4d401f", "1000", "30000/1001", 1024, 576)
31-
videoAS.AddNewRepresentationVideo(2295158, "avc1.4d401f", "1200", "30000/1001", 1024, 576)
32-
videoAS.AddNewRepresentationVideo(2780732, "avc1.4d401f", "1500", "30000/1001", 1280, 720)
20+
_, _ = videoAS.AddNewContentProtectionRoot("08e367028f33436ca5dd60ffe5571e60")
21+
_, _ = videoAS.AddNewContentProtectionSchemeWidevineWithPSSH([]byte{})
22+
_, _ = videoAS.AddNewContentProtectionSchemePlayready("mgIAAAEAAQCQAjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AQQBtAGYAagBDAFQATwBQAGIARQBPAGwAMwBXAEQALwA1AG0AYwBlAGMAQQA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBCAEcAdwAxAGEAWQBaADEAWQBYAE0APQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALgBkAGkAcgBlAGMAdAB0AGEAcABzAC4AbgBlAHQALwBwAHIALwBzAHYAYwAvAHIAaQBnAGgAdABzAG0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A")
23+
_, _ = videoAS.SetNewSegmentTemplate(1968, "$RepresentationID$/video/1/init.mp4", "$RepresentationID$/video/1/seg-$Number$.m4f", 0, 1000)
24+
_, _ = videoAS.AddNewRepresentationVideo(1518664, "avc1.4d401f", "800", "30000/1001", 960, 540)
25+
_, _ = videoAS.AddNewRepresentationVideo(1911775, "avc1.4d401f", "1000", "30000/1001", 1024, 576)
26+
_, _ = videoAS.AddNewRepresentationVideo(2295158, "avc1.4d401f", "1200", "30000/1001", 1024, 576)
27+
_, _ = videoAS.AddNewRepresentationVideo(2780732, "avc1.4d401f", "1500", "30000/1001", 1280, 720)
3328

3429
subtitleAS, _ := m.AddNewAdaptationSetSubtitle(mpd.DASH_MIME_TYPE_SUBTITLE_VTT, "en")
3530
subtitleRep, _ := subtitleAS.AddNewRepresentationSubtitle(256, "subtitle_en")
36-
subtitleRep.SetNewBaseURL("http://example.com/content/sintel/subtitles/subtitles_en.vtt")
31+
_ = subtitleRep.SetNewBaseURL("http://example.com/content/sintel/subtitles/subtitles_en.vtt")
3732

3833
mpdStr, _ := m.WriteToString()
3934
fmt.Println(mpdStr)

examples/live.mpd

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,4 +29,3 @@
2929
</AdaptationSet>
3030
</Period>
3131
</MPD>
32-

examples/ondemand.go

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,36 +6,34 @@ import (
66
"github.com/zencoder/go-dash/mpd"
77
)
88

9-
func main() {
9+
func exampleOndemand() {
1010
m := mpd.NewMPD(mpd.DASH_PROFILE_ONDEMAND, "PT30S", "PT1.97S")
1111

1212
audioAS, _ := m.AddNewAdaptationSetAudio(mpd.DASH_MIME_TYPE_AUDIO_MP4, true, 1, "und")
13-
14-
audioAS.AddNewContentProtectionRoot("08e367028f33436ca5dd60ffe5571e60")
15-
audioAS.AddNewContentProtectionSchemeWidevineWithPSSH()
16-
audioAS.AddNewContentProtectionSchemePlayready("mgIAAAEAAQCQAjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AQQBtAGYAagBDAFQATwBQAGIARQBPAGwAMwBXAEQALwA1AG0AYwBlAGMAQQA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBCAEcAdwAxAGEAWQBaADEAWQBYAE0APQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALgBkAGkAcgBlAGMAdAB0AGEAcABzAC4AbgBlAHQALwBwAHIALwBzAHYAYwAvAHIAaQBnAGgAdABzAG0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A")
13+
_, _ = audioAS.AddNewContentProtectionRoot("08e367028f33436ca5dd60ffe5571e60")
14+
_, _ = audioAS.AddNewContentProtectionSchemeWidevineWithPSSH([]byte{})
15+
_, _ = audioAS.AddNewContentProtectionSchemePlayready("mgIAAAEAAQCQAjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AQQBtAGYAagBDAFQATwBQAGIARQBPAGwAMwBXAEQALwA1AG0AYwBlAGMAQQA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBCAEcAdwAxAGEAWQBaADEAWQBYAE0APQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALgBkAGkAcgBlAGMAdAB0AGEAcABzAC4AbgBlAHQALwBwAHIALwBzAHYAYwAvAHIAaQBnAGgAdABzAG0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A")
1716

1817
audioRep, _ := audioAS.AddNewRepresentationAudio(44100, 128558, "mp4a.40.5", "800k/audio-und")
19-
audioRep.SetNewBaseURL("800k/output-audio-und.mp4")
20-
audioRep.AddNewSegmentBase("629-756", "0-628")
18+
_ = audioRep.SetNewBaseURL("800k/output-audio-und.mp4")
19+
_, _ = audioRep.AddNewSegmentBase("629-756", "0-628")
2120

2221
videoAS, _ := m.AddNewAdaptationSetVideo(mpd.DASH_MIME_TYPE_VIDEO_MP4, "progressive", true, 1)
23-
24-
videoAS.AddNewContentProtectionRoot("08e367028f33436ca5dd60ffe5571e60")
25-
videoAS.AddNewContentProtectionSchemeWidevineWithPSSH()
26-
videoAS.AddNewContentProtectionSchemePlayready("mgIAAAEAAQCQAjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AQQBtAGYAagBDAFQATwBQAGIARQBPAGwAMwBXAEQALwA1AG0AYwBlAGMAQQA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBCAEcAdwAxAGEAWQBaADEAWQBYAE0APQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALgBkAGkAcgBlAGMAdAB0AGEAcABzAC4AbgBlAHQALwBwAHIALwBzAHYAYwAvAHIAaQBnAGgAdABzAG0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A")
22+
_, _ = videoAS.AddNewContentProtectionRoot("08e367028f33436ca5dd60ffe5571e60")
23+
_, _ = videoAS.AddNewContentProtectionSchemeWidevineWithPSSH([]byte{})
24+
_, _ = videoAS.AddNewContentProtectionSchemePlayready("mgIAAAEAAQCQAjwAVwBSAE0ASABFAEEARABFAFIAIAB4AG0AbABuAHMAPQAiAGgAdAB0AHAAOgAvAC8AcwBjAGgAZQBtAGEAcwAuAG0AaQBjAHIAbwBzAG8AZgB0AC4AYwBvAG0ALwBEAFIATQAvADIAMAAwADcALwAwADMALwBQAGwAYQB5AFIAZQBhAGQAeQBIAGUAYQBkAGUAcgAiACAAdgBlAHIAcwBpAG8AbgA9ACIANAAuADAALgAwAC4AMAAiAD4APABEAEEAVABBAD4APABQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsARQBZAEwARQBOAD4AMQA2ADwALwBLAEUAWQBMAEUATgA+ADwAQQBMAEcASQBEAD4AQQBFAFMAQwBUAFIAPAAvAEEATABHAEkARAA+ADwALwBQAFIATwBUAEUAQwBUAEkATgBGAE8APgA8AEsASQBEAD4AQQBtAGYAagBDAFQATwBQAGIARQBPAGwAMwBXAEQALwA1AG0AYwBlAGMAQQA9AD0APAAvAEsASQBEAD4APABDAEgARQBDAEsAUwBVAE0APgBCAEcAdwAxAGEAWQBaADEAWQBYAE0APQA8AC8AQwBIAEUAQwBLAFMAVQBNAD4APABMAEEAXwBVAFIATAA+AGgAdAB0AHAAOgAvAC8AcABsAGEAeQByAGUAYQBkAHkALgBkAGkAcgBlAGMAdAB0AGEAcABzAC4AbgBlAHQALwBwAHIALwBzAHYAYwAvAHIAaQBnAGgAdABzAG0AYQBuAGEAZwBlAHIALgBhAHMAbQB4ADwALwBMAEEAXwBVAFIATAA+ADwALwBEAEEAVABBAD4APAAvAFcAUgBNAEgARQBBAEQARQBSAD4A")
2725

2826
videoRep1, _ := videoAS.AddNewRepresentationVideo(1100690, "avc1.4d401e", "800k/video-1", "30000/1001", 640, 360)
29-
videoRep1.SetNewBaseURL("800k/output-video-1.mp4")
30-
videoRep1.AddNewSegmentBase("686-813", "0-685")
27+
_ = videoRep1.SetNewBaseURL("800k/output-video-1.mp4")
28+
_, _ = videoRep1.AddNewSegmentBase("686-813", "0-685")
3129

3230
videoRep2, _ := videoAS.AddNewRepresentationVideo(1633516, "avc1.4d401f", "1200k/video-1", "30000/1001", 960, 540)
33-
videoRep2.SetNewBaseURL("1200k/output-video-1.mp4")
34-
videoRep2.AddNewSegmentBase("686-813", "0-685")
31+
_ = videoRep2.SetNewBaseURL("1200k/output-video-1.mp4")
32+
_, _ = videoRep2.AddNewSegmentBase("686-813", "0-685")
3533

3634
subtitleAS, _ := m.AddNewAdaptationSetSubtitle(mpd.DASH_MIME_TYPE_SUBTITLE_VTT, "en")
3735
subtitleRep, _ := subtitleAS.AddNewRepresentationSubtitle(256, "captions_en")
38-
subtitleRep.SetNewBaseURL("http://example.com/content/sintel/subtitles/subtitles_en.vtt")
36+
_ = subtitleRep.SetNewBaseURL("http://example.com/content/sintel/subtitles/subtitles_en.vtt")
3937

4038
mpdStr, _ := m.WriteToString()
4139
fmt.Println(mpdStr)

examples/ondemand.mpd

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
go run examples/ondemand.go
21
<?xml version="1.0" encoding="UTF-8"?>
32
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" type="static" mediaPresentationDuration="PT30S" minBufferTime="PT1.97S">
43
<Period>
@@ -41,4 +40,3 @@ go run examples/ondemand.go
4140
</AdaptationSet>
4241
</Period>
4342
</MPD>
44-

glide.lock

Lines changed: 10 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

glide.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
package: github.com/zencoder/go-dash
22
import:
3-
- package: github.com/stretchr/testify
4-
version: 890a5c3458b43e6104ff5da8dfa139d013d77544
3+
- package: github.com/stretchr/testify
4+
version: ^1.3.0
5+
subpackages:
6+
- require

helpers/testfixtures/testfixtures.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ func LoadFixture(path string) (js string) {
2121
func CompareFixture(t *testing.T, fixturePath string, actualContent string) {
2222
expectedContent := LoadFixture(fixturePath)
2323
if os.Getenv("GENERATE_FIXTURES") != "" {
24-
ioutil.WriteFile(fixturePath, []byte(actualContent), os.ModePerm)
24+
_ = ioutil.WriteFile(fixturePath, []byte(actualContent), os.ModePerm)
2525
fmt.Println("Wrote fixture: " + fixturePath)
26-
} else {
27-
require.Equal(t, expectedContent, actualContent)
26+
return
2827
}
28+
require.Equal(t, expectedContent, actualContent)
2929
}

0 commit comments

Comments
 (0)