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
This CL also includes two related changes:
1. Support serialization of raw PSSH box;
2. Refactor segmenter interface a bit.
Change-Id: I668aa01a5a5ff524ad6fe74976339a3fd499120a
Remove Initialize() and Add AddKey().
Also remove fixed_encryptor_source.* and move the functionality to
encryptor_source.*.
Change-Id: I4fb61013177874a8b81854f10b2deda83accc683
The main thread may run ahead of the closure thread. In this case,
Stop() could have been called before the first Push() call.
Change-Id: Ib6d94d451a8215fff572ea13f9567ba786d77fa5
Added filters gyp file.
Some tweaks to get the h.264 related filters library and unit tests building
in the packager source tree.
Change-Id: Ib79ffe307d3357b4b38f13ee87cbd93f0f93b1cc
The crash happens if the thread is created but never started. An
improper Join triggered the crash. We should not call Join if the thread
is not started.
Change-Id: Icace740889089d3b2e15cf6c76c2b0887eb84535
ClosureThread runs a Closure in a platform thread. Chromium Thread class
involves message loop, so we choose to implement our own based on the
lower level SimpleThread which wraps PlatformThread.
Change-Id: Ibb759f7debcc027c0764195ca93506f9a202110b