Add new flag max_sd_pixels to determine SD or HD track

Change-Id: If841af98345177cf1832b9e5b91148168b000f44
Added implementation of UdpFile for UDP unicast/multicast capture.

Change-Id: Ie11b86821d34f6b93cd8d00c1709572d1a46e72b
Support key rotation in widevine encryption key source

Change-Id: I05ded15fa666119c86a1d3f1c99123b9cda60b49
Use OpenSSL RAND_bytes for random IV generation

base::RandBytes may not be cryptographically strong.

Bug: 13658504
Change-Id: Id5dcd4e512f05c2f06302654277f2fd11a53f2b7
Support 64 bit mdat box size

Change-Id: I38be77d2d13eceaeeda6f3ff270c8d7cd1d2a300
Always generate version 1 SampleGroupDescription box

Version 0 is obsoleted. Also fixes unittest typos.

Change-Id: I0e536ba316ac07ce939dae71752e00db19e3db58
Merge "Added implementation of UdpFile for UDP unicast/multicast capture."
Implement EncryptingFragmenter from Fragmenter

Extract encryption related handlings from Fragmenter and move into new
class EncrpytingFragmenter.

Change-Id: Id42493cd321fd7e306f8ce522c7ff04990965256
Add 'pssh' box for clear lead fragments as well

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
Rename VodMpdNotifyMuxerListener to MpdNotifyMuxerListener

Change-Id: Ia23e127cc840f8b332c76cbac8c610c255c78ce5
Implement SimpleMpdNotifier

SimpleMpdNotifier listens to muxer events and generates MPD file.

Change-Id: I19304cdb9eba65fd01328aa0fd5e6d280cc5714e
Add tests that check the 'id' attributes.

Change-Id: I487ec7c658fd5a3a8bae03800e23b37cc44066f4
Renamed packager_main to single_packager.
Did some re-factoring to share code with upcoming (multi stream) packager.

Change-Id: I2b3845e48ba6aa63a95ecc276abcb52c8355d8d5
XML compare function

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
Fix MuxerOptions forward declaration

MuxerOptions is a struct but was forward declared as class.
This fixes the build when using clang.

Change-Id: I3b99252bc86a71ced27cd12aa2ab828e10a025e5
Implemented multi-stream packager driver program.

Change-Id: I16e1f5f1e8863b09b642c94d4be565e309bdafb6
Made video decoder configuration changes into a non-fatal condition.
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
Support configurable policy in Widevine encryption

Bug: 13658473
Change-Id: I90bbaa2e34687e7456c9a247d51c64cd91782891
Add back Initialize which starts key fetching thread

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
Implement MpdNotifyMuxerListener

Change-Id: I08742839c2be5e5da104914ec841b8c5dd57f0b7