Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit c91430c

Browse files
authoredJan 9, 2019
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
}

‎mpd/mpd.go

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -156,11 +156,11 @@ func (as *AdaptationSet) UnmarshalXML(d *xml.Decoder, start xml.StartElement) er
156156

157157
var (
158158
contentProtectionTags []ContentProtectioner
159-
roles []*Role
160-
segmentBase *SegmentBase
161-
segmentList *SegmentList
162-
segmentTemplate *SegmentTemplate
163-
representations []*Representation
159+
roles []*Role
160+
segmentBase *SegmentBase
161+
segmentList *SegmentList
162+
segmentTemplate *SegmentTemplate
163+
representations []*Representation
164164
)
165165

166166
// decode inner elements
@@ -176,7 +176,7 @@ func (as *AdaptationSet) UnmarshalXML(d *xml.Decoder, start xml.StartElement) er
176176
case "ContentProtection":
177177
var (
178178
schemeUri string
179-
cp ContentProtectioner
179+
cp ContentProtectioner
180180
)
181181

182182
for _, attr := range tt.Attr {
@@ -240,7 +240,7 @@ func (as *AdaptationSet) UnmarshalXML(d *xml.Decoder, start xml.StartElement) er
240240
}
241241
case xml.EndElement:
242242
if tt == start.End() {
243-
d.DecodeElement(&adaptationSet, &start)
243+
_ = d.DecodeElement(&adaptationSet, &start)
244244
*as = adaptationSet
245245
as.ContentProtection = contentProtectionTags
246246
as.Roles = roles
@@ -277,7 +277,8 @@ type ContentProtection struct {
277277
AdaptationSet *AdaptationSet `xml:"-"`
278278
XMLName xml.Name `xml:"ContentProtection"`
279279
SchemeIDURI *string `xml:"schemeIdUri,attr"` // Default: urn:mpeg:dash:mp4protection:2011
280-
XMLNS *string `xml:"cenc,attr"` // Default: urn:mpeg:cenc:2013
280+
XMLNS *string `xml:"cenc,attr"` // Default: urn:mpeg:cenc:2013
281+
Attrs []*xml.Attr `xml:",any,attr"`
281282
}
282283

283284
type CENCContentProtection struct {
@@ -303,6 +304,7 @@ type ContentProtectionMarshal struct {
303304
XMLName xml.Name `xml:"ContentProtection"`
304305
SchemeIDURI *string `xml:"schemeIdUri,attr"` // Default: urn:mpeg:dash:mp4protection:2011
305306
XMLNS *string `xml:"xmlns:cenc,attr"` // Default: urn:mpeg:cenc:2013
307+
Attrs []*xml.Attr `xml:",any,attr"`
306308
}
307309

308310
type CENCContentProtectionMarshal struct {
@@ -331,6 +333,7 @@ func (s ContentProtection) MarshalXML(e *xml.Encoder, start xml.StartElement) er
331333
s.XMLName,
332334
s.SchemeIDURI,
333335
s.XMLNS,
336+
s.Attrs,
334337
})
335338
if err != nil {
336339
return err
@@ -345,6 +348,7 @@ func (s CENCContentProtection) MarshalXML(e *xml.Encoder, start xml.StartElement
345348
s.XMLName,
346349
s.SchemeIDURI,
347350
s.XMLNS,
351+
s.Attrs,
348352
},
349353
s.DefaultKID,
350354
s.Value,
@@ -362,6 +366,7 @@ func (s PlayreadyContentProtection) MarshalXML(e *xml.Encoder, start xml.StartEl
362366
s.XMLName,
363367
s.SchemeIDURI,
364368
s.XMLNS,
369+
s.Attrs,
365370
},
366371
s.PlayreadyXMLNS,
367372
s.PRO,
@@ -380,6 +385,7 @@ func (s WidevineContentProtection) MarshalXML(e *xml.Encoder, start xml.StartEle
380385
s.XMLName,
381386
s.SchemeIDURI,
382387
s.XMLNS,
388+
s.Attrs,
383389
},
384390
s.PSSH,
385391
})
@@ -438,9 +444,9 @@ type AudioChannelConfiguration struct {
438444
func NewMPD(profile DashProfile, mediaPresentationDuration, minBufferTime string, attributes ...AttrMPD) *MPD {
439445
period := &Period{}
440446
mpd := &MPD{
441-
XMLNs: Strptr("urn:mpeg:dash:schema:mpd:2011"),
442-
Profiles: Strptr((string)(profile)),
443-
Type: Strptr("static"),
447+
XMLNs: Strptr("urn:mpeg:dash:schema:mpd:2011"),
448+
Profiles: Strptr((string)(profile)),
449+
Type: Strptr("static"),
444450
MediaPresentationDuration: Strptr(mediaPresentationDuration),
445451
MinBufferTime: Strptr(minBufferTime),
446452
period: period,
@@ -465,9 +471,9 @@ func NewMPD(profile DashProfile, mediaPresentationDuration, minBufferTime string
465471
func NewDynamicMPD(profile DashProfile, availabilityStartTime, minBufferTime string, attributes ...AttrMPD) *MPD {
466472
period := &Period{}
467473
mpd := &MPD{
468-
XMLNs: Strptr("urn:mpeg:dash:schema:mpd:2011"),
469-
Profiles: Strptr((string)(profile)),
470-
Type: Strptr("dynamic"),
474+
XMLNs: Strptr("urn:mpeg:dash:schema:mpd:2011"),
475+
Profiles: Strptr((string)(profile)),
476+
Type: Strptr("dynamic"),
471477
AvailabilityStartTime: Strptr(availabilityStartTime),
472478
MinBufferTime: Strptr(minBufferTime),
473479
period: period,

‎mpd/mpd_read_write.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@ func (m *MPD) Write(w io.Writer) error {
8080
return err
8181
}
8282

83-
w.Write([]byte(xml.Header))
84-
w.Write(b)
85-
w.Write([]byte("\n"))
83+
_, _ = w.Write([]byte(xml.Header))
84+
_, _ = w.Write(b)
85+
_, _ = w.Write([]byte("\n"))
8686
return nil
8787
}

‎mpd/mpd_read_write_test.go

Lines changed: 68 additions & 68 deletions
Large diffs are not rendered by default.

‎mpd/mpd_test.go

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,9 @@ func TestNewMPDLive(t *testing.T) {
5555
AttrAvailabilityStartTime(VALID_AVAILABILITY_START_TIME))
5656
require.NotNil(t, m)
5757
expectedMPD := &MPD{
58-
XMLNs: Strptr("urn:mpeg:dash:schema:mpd:2011"),
59-
Profiles: Strptr((string)(DASH_PROFILE_LIVE)),
60-
Type: Strptr("static"),
58+
XMLNs: Strptr("urn:mpeg:dash:schema:mpd:2011"),
59+
Profiles: Strptr((string)(DASH_PROFILE_LIVE)),
60+
Type: Strptr("static"),
6161
MediaPresentationDuration: Strptr(VALID_MEDIA_PRESENTATION_DURATION),
6262
MinBufferTime: Strptr(VALID_MIN_BUFFER_TIME),
6363
AvailabilityStartTime: Strptr(VALID_AVAILABILITY_START_TIME),
@@ -73,9 +73,9 @@ func TestNewDynamicMPDLive(t *testing.T) {
7373
AttrMinimumUpdatePeriod(VALID_MINIMUM_UPDATE_PERIOD))
7474
require.NotNil(t, m)
7575
expectedMPD := &MPD{
76-
XMLNs: Strptr("urn:mpeg:dash:schema:mpd:2011"),
77-
Profiles: Strptr((string)(DASH_PROFILE_LIVE)),
78-
Type: Strptr("dynamic"),
76+
XMLNs: Strptr("urn:mpeg:dash:schema:mpd:2011"),
77+
Profiles: Strptr((string)(DASH_PROFILE_LIVE)),
78+
Type: Strptr("dynamic"),
7979
MediaPresentationDuration: Strptr(VALID_MEDIA_PRESENTATION_DURATION),
8080
MinBufferTime: Strptr(VALID_MIN_BUFFER_TIME),
8181
AvailabilityStartTime: Strptr(VALID_AVAILABILITY_START_TIME),
@@ -115,9 +115,9 @@ func TestNewMPDLiveWithBaseURLInMPD(t *testing.T) {
115115
m.BaseURL = VALID_BASE_URL_VIDEO
116116
require.NotNil(t, m)
117117
expectedMPD := &MPD{
118-
XMLNs: Strptr("urn:mpeg:dash:schema:mpd:2011"),
119-
Profiles: Strptr((string)(DASH_PROFILE_LIVE)),
120-
Type: Strptr("static"),
118+
XMLNs: Strptr("urn:mpeg:dash:schema:mpd:2011"),
119+
Profiles: Strptr((string)(DASH_PROFILE_LIVE)),
120+
Type: Strptr("static"),
121121
MediaPresentationDuration: Strptr(VALID_MEDIA_PRESENTATION_DURATION),
122122
MinBufferTime: Strptr(VALID_MIN_BUFFER_TIME),
123123
period: &Period{},
@@ -135,9 +135,9 @@ func TestNewMPDLiveWithBaseURLInPeriod(t *testing.T) {
135135
BaseURL: VALID_BASE_URL_VIDEO,
136136
}
137137
expectedMPD := &MPD{
138-
XMLNs: Strptr("urn:mpeg:dash:schema:mpd:2011"),
139-
Profiles: Strptr((string)(DASH_PROFILE_LIVE)),
140-
Type: Strptr("static"),
138+
XMLNs: Strptr("urn:mpeg:dash:schema:mpd:2011"),
139+
Profiles: Strptr((string)(DASH_PROFILE_LIVE)),
140+
Type: Strptr("static"),
141141
MediaPresentationDuration: Strptr(VALID_MEDIA_PRESENTATION_DURATION),
142142
MinBufferTime: Strptr(VALID_MIN_BUFFER_TIME),
143143
period: period,
@@ -150,9 +150,9 @@ func TestNewMPDHbbTV(t *testing.T) {
150150
m := NewMPD(DASH_PROFILE_HBBTV_1_5_LIVE, VALID_MEDIA_PRESENTATION_DURATION, VALID_MIN_BUFFER_TIME)
151151
require.NotNil(t, m)
152152
expectedMPD := &MPD{
153-
XMLNs: Strptr("urn:mpeg:dash:schema:mpd:2011"),
154-
Profiles: Strptr((string)(DASH_PROFILE_HBBTV_1_5_LIVE)),
155-
Type: Strptr("static"),
153+
XMLNs: Strptr("urn:mpeg:dash:schema:mpd:2011"),
154+
Profiles: Strptr((string)(DASH_PROFILE_HBBTV_1_5_LIVE)),
155+
Type: Strptr("static"),
156156
MediaPresentationDuration: Strptr(VALID_MEDIA_PRESENTATION_DURATION),
157157
MinBufferTime: Strptr(VALID_MIN_BUFFER_TIME),
158158
period: &Period{},
@@ -165,9 +165,9 @@ func TestNewMPDOnDemand(t *testing.T) {
165165
m := NewMPD(DASH_PROFILE_ONDEMAND, VALID_MEDIA_PRESENTATION_DURATION, VALID_MIN_BUFFER_TIME)
166166
require.NotNil(t, m)
167167
expectedMPD := &MPD{
168-
XMLNs: Strptr("urn:mpeg:dash:schema:mpd:2011"),
169-
Profiles: Strptr((string)(DASH_PROFILE_ONDEMAND)),
170-
Type: Strptr("static"),
168+
XMLNs: Strptr("urn:mpeg:dash:schema:mpd:2011"),
169+
Profiles: Strptr((string)(DASH_PROFILE_ONDEMAND)),
170+
Type: Strptr("static"),
171171
MediaPresentationDuration: Strptr(VALID_MEDIA_PRESENTATION_DURATION),
172172
MinBufferTime: Strptr(VALID_MIN_BUFFER_TIME),
173173
period: &Period{},
@@ -404,7 +404,7 @@ func TestAddNewContentProtection_Proprietary(t *testing.T) {
404404
pcp := &TestProprietaryContentProtection{*cp, "foo", "bar"}
405405
x, _ := xml.Marshal(pcp)
406406
require.Equal(t, `<ContentProtection schemeIdUri="urn:mpeg:dash:mp4protection:2011" a="foo" b="bar"></ContentProtection>`, string(x))
407-
as.AddContentProtection(pcp)
407+
_ = as.AddContentProtection(pcp)
408408
require.Equal(t, as.ContentProtection, []ContentProtectioner{pcp})
409409
}
410410

@@ -553,15 +553,15 @@ func TestSetNewSegmentTemplate(t *testing.T) {
553553

554554
func TestSetNewSegmentTemplateErrorNoDASHProfile(t *testing.T) {
555555
m := &MPD{
556-
XMLNs: Strptr("urn:mpeg:dash:schema:mpd:2011"),
557-
Profiles: nil,
558-
Type: Strptr("static"),
556+
XMLNs: Strptr("urn:mpeg:dash:schema:mpd:2011"),
557+
Profiles: nil,
558+
Type: Strptr("static"),
559559
MediaPresentationDuration: Strptr(VALID_MEDIA_PRESENTATION_DURATION),
560560
MinBufferTime: Strptr(VALID_MIN_BUFFER_TIME),
561561
period: &Period{},
562562
}
563563
audioAS, _ := m.AddNewAdaptationSetAudioWithID("7357", DASH_MIME_TYPE_AUDIO_MP4, VALID_SEGMENT_ALIGNMENT, VALID_START_WITH_SAP, VALID_LANG)
564-
audioAS.SetNewSegmentTemplate(VALID_DURATION, VALID_INIT_PATH_AUDIO, VALID_MEDIA_PATH_AUDIO, VALID_START_NUMBER, VALID_TIMESCALE)
564+
_, _ = audioAS.SetNewSegmentTemplate(VALID_DURATION, VALID_INIT_PATH_AUDIO, VALID_MEDIA_PATH_AUDIO, VALID_START_NUMBER, VALID_TIMESCALE)
565565
err := m.Validate()
566566
require.Equal(t, ErrNoDASHProfileSet, err)
567567
}
@@ -660,9 +660,9 @@ func TestSetNewBaseURLSubtitle(t *testing.T) {
660660

661661
func TestSetNewBaseURLErrorNoDASHProfile(t *testing.T) {
662662
m := &MPD{
663-
XMLNs: Strptr("urn:mpeg:dash:schema:mpd:2011"),
664-
Profiles: nil,
665-
Type: Strptr("static"),
663+
XMLNs: Strptr("urn:mpeg:dash:schema:mpd:2011"),
664+
Profiles: nil,
665+
Type: Strptr("static"),
666666
MediaPresentationDuration: Strptr(VALID_MEDIA_PRESENTATION_DURATION),
667667
MinBufferTime: Strptr(VALID_MIN_BUFFER_TIME),
668668
period: &Period{},
@@ -671,7 +671,7 @@ func TestSetNewBaseURLErrorNoDASHProfile(t *testing.T) {
671671

672672
r, _ := videoAS.AddNewRepresentationVideo(VALID_VIDEO_BITRATE, VALID_VIDEO_CODEC, VALID_VIDEO_ID, VALID_VIDEO_FRAMERATE, VALID_VIDEO_WIDTH, VALID_VIDEO_HEIGHT)
673673

674-
r.SetNewBaseURL(VALID_BASE_URL_VIDEO)
674+
_ = r.SetNewBaseURL(VALID_BASE_URL_VIDEO)
675675
err := m.Validate()
676676

677677
require.NotNil(t, err)
@@ -703,9 +703,9 @@ func TestSetNewSegmentBase(t *testing.T) {
703703

704704
func TestSetNewSegmentBaseErrorNoDASHProfile(t *testing.T) {
705705
m := &MPD{
706-
XMLNs: Strptr("urn:mpeg:dash:schema:mpd:2011"),
707-
Profiles: nil,
708-
Type: Strptr("static"),
706+
XMLNs: Strptr("urn:mpeg:dash:schema:mpd:2011"),
707+
Profiles: nil,
708+
Type: Strptr("static"),
709709
MediaPresentationDuration: Strptr(VALID_MEDIA_PRESENTATION_DURATION),
710710
MinBufferTime: Strptr(VALID_MIN_BUFFER_TIME),
711711
period: &Period{},
@@ -714,7 +714,7 @@ func TestSetNewSegmentBaseErrorNoDASHProfile(t *testing.T) {
714714

715715
r, _ := videoAS.AddNewRepresentationVideo(VALID_VIDEO_BITRATE, VALID_VIDEO_CODEC, VALID_VIDEO_ID, VALID_VIDEO_FRAMERATE, VALID_VIDEO_WIDTH, VALID_VIDEO_HEIGHT)
716716

717-
r.AddNewSegmentBase(VALID_INDEX_RANGE, VALID_INIT_RANGE)
717+
_, _ = r.AddNewSegmentBase(VALID_INDEX_RANGE, VALID_INIT_RANGE)
718718

719719
err := m.Validate()
720720
require.Equal(t, ErrNoDASHProfileSet, err)

‎mpd/segment_timeline_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ func getMultiPeriodSegmentTimelineMPD() *MPD {
5959
p.ID = strconv.Itoa(i)
6060
p.Duration = Duration(30 * time.Second)
6161
aas, _ := p.AddNewAdaptationSetAudioWithID("1", "audio/mp4", true, 1, "en")
62-
aas.AddNewRepresentationAudio(48000, 92000, "mp4a.40.2", "audio_1")
62+
_, _ = aas.AddNewRepresentationAudio(48000, 92000, "mp4a.40.2", "audio_1")
6363
aas.SegmentTemplate = &SegmentTemplate{
6464
Timescale: ptrs.Int64ptr(48000),
6565
Initialization: ptrs.Strptr("audio/init.m4f"),
@@ -72,8 +72,8 @@ func getMultiPeriodSegmentTimelineMPD() *MPD {
7272
},
7373
}
7474
vas, _ := p.AddNewAdaptationSetVideoWithID("2", "video/mp4", "progressive", true, 1)
75-
vas.AddNewRepresentationVideo(3532000, "avc1.640028", "video_1", "2997/100", 2048, 854)
76-
vas.AddNewRepresentationVideo(453000, "avc1.420016", "video_2", "2997/100", 648, 270)
75+
_, _ = vas.AddNewRepresentationVideo(3532000, "avc1.640028", "video_1", "2997/100", 2048, 854)
76+
_, _ = vas.AddNewRepresentationVideo(453000, "avc1.420016", "video_2", "2997/100", 648, 270)
7777
vas.SegmentTemplate = &SegmentTemplate{
7878
Timescale: ptrs.Int64ptr(30000),
7979
Initialization: ptrs.Strptr("video/$RepresentationID$/init.m4f"),

0 commit comments

Comments
 (0)
Please sign in to comment.