For live streams, we cannot assume that the input decoding timestamp
starts from zero.
Also don't overwrite |normalize_presentation_timestamp| if the user
does not want to enable it for on-demand profile.
Change-Id: I1abe7926e0b25eb11dee021be964d126484d4036
This change also updates the WidevineEncryptionKeySource to be able to support
KeyRotation enabled and disabled requests simultaneously.
Change-Id: I5178cafc0dbabbb64ac9af9969d3bf7d8117a4dd
VodMediaInfoDumpMuxerListener is also changed to manage the file
internally rather than take an opened file pointer. This change
simplifies the caller as the caller does not need to manage the media
info dump files any more.
Change-Id: Id9dcaf367c96ed13603b13b1e3705c687c948b07
When running mpd unit tests, add --logging -v=2 to see verbose logs and -v=3
for more verbose logs
Change-Id: I5484f3fd9be4c9e7527d86fa71205e8f025d102a
"{} {}" formatting in python is introduced in version 2.7. Replaced
with "{0} {1}" to support python 2.6 and below.
Change-Id: Ic20fdc5fce554a5a5cb57383d5587581f70de598
There are two different problems:
1. int64/uint64 formatting: %lu formats unsigned long. However, the
definition of long is different on 32-bit machine and 64-bit machine.
We need to use a macro to format int64/uint64 correctly.
2. The packager target is dependent on openssl.
Change-Id: I5d51a500c3cb8bcd4b4049ab7ec5a985ac486a76
- Only Segments with end time in range [NOW - timeShiftBufferDepth, NOW] get
listed as S elements under TemplateTimeline element. Any old segments
do not get listed.
- Also adding tests
Change-Id: I52df9acaec107610757d809ac6c9cb13592d6f37
With libcurl, HttpFetcher now supports timeout and https.
Two additional changes:
1. Remove happyhttp which is no longer needed;
2. Add README.packager for curl
Bug: 13658515
Bug: 14301830
Change-Id: I13c2835e7feca9abf36e5bb8f7bc35a7db9ec94c
Add BandwidthEstimator to estimate the required bandwidth for the
segments.
Also includes unit test for the change.
Change-Id: I28262424e2ed6ceebdf81e2b11dcd67feba1d68c
Also add support for format tags.
Also change default fragment_duration to 10s, i.e. to have the same
value as --segment_duration. So by default, only one fragment per
(sub)segment is generated.
Change-Id: I21123723c3998b656037a397eb7b58b3d91721bb
The key production thread was started in constructor. The default http
fetcher might have already been used to fetch keys before it is modified
by set_http_fetcher. This could lead to flaky unittest.
Change-Id: I977b6450862d87ffeb5cb219bcd46b33d877e550
Issued warning rather than exiting with an error so that playback
may (hopefully) continue. We see this type of situation with the
Envivio encoders, which effect trivial changes in encoding midstream.
Change-Id: Ifa552066f602157adbfa0b882cb75e479b067645
MuxerOptions is a struct but was forward declared as class.
This fixes the build when using clang.
Change-Id: I3b99252bc86a71ced27cd12aa2ab828e10a025e5
XML compare function for comparing a subset of MPD or the whole MPD.
The children must appear in the same order but the order of attributes
do not matter.
Change existing tests to use XmlEqual() instead of string comparison.
Change-Id: Ib7f80f52b5bed5b5f7c2517620c8955261a4b6a2
This is to workaround a Chrome limitation that CDM must be initialized
before starting the playback. CDM can only be initialized with a valid
'pssh'.
Change-Id: Ia34e90dac42abbcdf0193fe4e3c971c87debdd42
Extract encryption related handlings from Fragmenter and move into new
class EncrpytingFragmenter.
Change-Id: Id42493cd321fd7e306f8ce522c7ff04990965256