Ramji Chandramouli
e4e2dafa52
WVM parser and demuxer.
...
Change-Id: Id54f285afd617b00b7bdd077dc37898b0562a8f4
2014-09-11 16:26:30 -07:00
Thomas Inskip
7b1640a8f7
Added Widevine and fixed key decryption.
...
Change-Id: Ia29ce678c0e64e886cdd92bbfda727768356fd21
2014-09-05 10:38:21 -07:00
Thomas Inskip
65e558b19c
KeySource changes to support media decryption.
...
Renamed EncryptionKeySource and WidevineEncryptionKeySource to KeySource and
WidevineKeySource respectively.
Replaced Initialize method with FetchKeys.
Added unit tests.
content_id parameter is now binary. Specified in command line with hex string.
Change-Id: I8010ca62d036cefb3a7c105e0eefee25bbf06d61
2014-09-03 12:06:58 -07:00
KongQun Yang
f4d0ef432e
Remove "testing" from gtest/gmock include header
...
This is to remove dependency on Chromium directory layouts, to make it
easier for integration.
Change-Id: If23512c9e4a70462d70ff965e59339a33541746c
2014-08-21 18:04:44 -07:00
KongQun Yang
05db9e02b9
Generate sidx box only if there are more than one entries
...
Change-Id: If7d7440f18e8b50a3261e18138b1a40bd754aba7
2014-08-01 01:06:33 +00:00
KongQun Yang
3e6190ec2b
Deprecate normalize_presentation_timestamp
...
Force earliest_presentation_timestamp to start from 0 by default for
single segment segmenter.
Change-Id: Icfc14e27051c6edfb7a86559045c50a0ce51a62e
2014-07-23 22:55:54 +00:00
KongQun Yang
66f155502d
Fix packager failure if there is only one sample in a fragment
...
That is a very corner corner case.
Change-Id: I45bc6c2d41db2a666a4ad997e4bf2eb17843e3ea
2014-07-23 22:55:54 +00:00
Thomas Inskip
72b6988516
Change to allow receiving PPS before SPS.
...
Change-Id: I9c5a62a9b8948420cd45be39805a60db128964ac
2014-07-23 22:55:54 +00:00
KongQun Yang
301f8c134d
Enable more compilation checks in clang
...
These checks were disabled in Chromium due to historical reason.
Also fix compilation errors as a result of the above mentioned change.
Change-Id: I5d240f2f11aa5920598f954d696a15bdcbf78fd8
2014-07-09 21:39:57 +00:00
Ramji Chandramouli
cb12a2bad2
Removed 'explicit' keyword from empty constructor.
...
Change-Id: If508d44bdd60530292340e9731014e24e8ef0980
2014-07-02 18:56:01 +00:00
Thomas Inskip
efe52e62dc
Implemented name/value pair stream descriptors.
...
Implemented user-specified bandwidth.
Change-Id: If01f26867d4285bcbc899310d3f1b98b928bed89
2014-06-30 18:34:18 -07:00
KongQun Yang
50aea3e6f6
Set fragment decoding time from input sample dts
...
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
2014-06-30 18:01:59 -07:00
Thomas Inskip
fc85154bca
Changed es_parser_h264 to wait for initial I-frame to start emitting samples.
...
Change-Id: I7b9ca4a73a8765501a1c29e467e877e1eee5f9d9
2014-06-28 11:28:05 +00:00
KongQun Yang
2af92f67d2
More fix for issues on 32-bit OS
...
Somehow it worked fine on 32-bit Ubuntu but not on 32-bit Redhat.
Change-Id: Icfa4ec651dedd74edadf5a65f997f649c2693115
2014-06-26 23:45:22 +00:00
KongQun Yang
0f49af6cc1
Fix problems on 32-bit fresh linux box
...
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
2014-06-23 13:48:41 -07:00
KongQun Yang
b0c880e03f
Check InitializeFragments status in segmenter
...
Change-Id: I203c9befcaba389958d789fa3c716349636d5b8c
2014-06-17 21:10:01 +00:00
KongQun Yang
5b1980651f
Support segment template identifier $Time$
...
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
2014-06-09 18:09:12 -07:00
KongQun Yang
1d920a1a4e
Media code change to support live mpd
...
Change-Id: I24ca877ec62e69df5dbf3c9ede54da4df189dbc4
2014-06-06 10:38:48 +08:00
KongQun Yang
6837ac45b7
Implement MpdNotifyMuxerListener
...
Change-Id: I08742839c2be5e5da104914ec841b8c5dd57f0b7
2014-06-05 18:51:52 +08:00
Thomas Inskip
fe744f4724
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
2014-06-04 17:43:33 -07:00
Thomas Inskip
7fe5b5171a
Renamed packager_main to single_packager.
...
Did some re-factoring to share code with upcoming (multi stream) packager.
Change-Id: I2b3845e48ba6aa63a95ecc276abcb52c8355d8d5
2014-05-27 15:42:10 -07:00
KongQun Yang
e7fe62763d
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
2014-05-15 10:59:46 -07:00
KongQun Yang
b25834a910
Implement EncryptingFragmenter from Fragmenter
...
Extract encryption related handlings from Fragmenter and move into new
class EncrpytingFragmenter.
Change-Id: Id42493cd321fd7e306f8ce522c7ff04990965256
2014-05-15 16:55:01 +00:00
KongQun Yang
49dd6e49bb
Always generate version 1 SampleGroupDescription box
...
Version 0 is obsoleted. Also fixes unittest typos.
Change-Id: I0e536ba316ac07ce939dae71752e00db19e3db58
2014-05-08 22:34:22 +00:00
KongQun Yang
80a60b7ef2
Support 64 bit mdat box size
...
Change-Id: I38be77d2d13eceaeeda6f3ff270c8d7cd1d2a300
2014-05-08 21:55:55 +00:00
Kongqun Yang
1773d08b8d
Add new flag max_sd_pixels to determine SD or HD track
...
Change-Id: If841af98345177cf1832b9e5b91148168b000f44
2014-05-05 11:35:44 -07:00
Kongqun Yang
53287e5fe7
Add m2ts and audio tests in packager_test
...
Change-Id: I11cc65a2baa69bc5e3bc022027bca6712f810f1a
2014-05-02 22:16:21 +00:00
Kongqun Yang
30cb6948e5
Add MediaParser::Flush to flush the parser
...
Change-Id: Ic12a045dda47ccd270c8c3e9e83768e04a53ad58
2014-04-29 20:33:04 +00:00
Thomas Inskip
77e9302aa9
Cleaned up TODOs from MPEG-2 code.
2014-04-29 11:51:28 -07:00
Thomas Inskip
67bdd89ba2
Implemented H.264 byte stream to unit stream conversion and other components
...
needed for MPEG-2 TS h.264 video demux and transmux.
Change-Id: I878cdd141140cfd6833d75c7133301b1d65f1da0
2014-04-24 18:27:47 +00:00
Thomas Inskip
4a39a0fc98
Renamed mp2t::MediaParser to mp2t::Mp2tMediaParser, removed filters namespace.
...
Change-Id: Ib4de2863d5e746b32703d49e721473a2ff6c8de7
2014-04-24 10:17:23 -07:00
Thomas Inskip
faa12bd191
Merge "Added ADTS header parsing, removal, and conversion to AudioSpecificConfig. Hooked up mp2t media parser, audio transmux now working."
2014-04-23 20:39:05 +00:00
Kongqun Yang
50ed026751
Support key rotation when generating MP4 fragments
...
Change-Id: I472e03a2d41ee450c12c0fe3012904628d6893e7
2014-04-23 12:54:40 -07:00
Kongqun Yang
9076411044
Rename EncryptorSource to EncryptionKeySource
...
Change-Id: I0a3d0e205922bbb4015955e04d51b7a9a4fa86e1
2014-04-23 12:45:18 -07:00
Kongqun Yang
f059d926d7
Update client of EncryptorSource due to refactoring
...
This CL also includes two related changes:
1. Support serialization of raw PSSH box;
2. Refactor segmenter interface a bit.
Change-Id: I668aa01a5a5ff524ad6fe74976339a3fd499120a
2014-04-23 12:35:52 -07:00
Thomas Inskip
71a425799d
Added ADTS header parsing, removal, and conversion to AudioSpecificConfig.
...
Hooked up mp2t media parser, audio transmux now working.
Change-Id: Idc92a51d25fa6ed2f74627131d53919e52394119
2014-04-22 18:34:36 -07:00
Thomas Inskip
c5f1e5eb7a
Modified mp2t::MediaParser to work with the packaging SDK.
...
Added transport stream test data.
Change-Id: I2f20d0a67eb5a1157ceed08af67368895016170c
2014-04-22 13:32:36 -07:00
Thomas Inskip
20e66b2109
Renamed mp2t_stream_parser* to mp2t_media_parser* .
...
Change-Id: I4e72dadadeadcb890056fb8540e498a9bb0d06ab
2014-04-22 19:51:58 +00:00
Thomas Inskip
cbf4978ffa
Modified H.264 elementary stream parsing code to work with remux framework.
...
Change-Id: I81dfe0952073c4a5cd6f5fcaf14fe21050d26cb6
2014-04-22 12:49:41 -07:00
Thomas Inskip
a7c91ca7dd
Modified audio elementary stream parsing to work with packager remux.
...
Change-Id: Ice95102640e5cbb0382dc4c604c0af013103da99
2014-04-21 19:16:32 +00:00
Thomas Inskip
30b51506c4
Check-in of unmodified audio elementary stream parsing code.
...
Source of media/base/*:
http://src.chromium.org/chrome/trunk/src/media/base@262934
Source of media/formats/mpeg/*:
http://src.chromium.org/chrome/trunk/src/media/formats/mpeg@257932
Change-Id: Icd56b6f496befcd0c9f4eec2460fb2e998ae8bd2
2014-04-21 19:16:09 +00:00
Thomas Inskip
0ad332896e
Check-in of unmodified MPEG-2 and H.264 parsers.
...
Source of media/formats/mp2t:
http://src.chromium.org/chrome/trunk/src/media/formats/mp2t@260741
Source of media/filters:
http://src.chromium.org/chrome/trunk/src/media/filters@260719
Change-Id: Ib4c72553f0213cb6dd25fa3dcc0367d96cdd094a
2014-04-21 12:05:58 -07:00
Thomas Inskip
5f99651223
Moved mp4 code to new "formats" directory to match Chromium source tree.
...
(second attempt due to conflicts).
Change-Id: I2143921bcacdbaa6cfcaf59602713294b4b1f6ee
2014-04-21 12:05:32 -07:00