Commit Graph

76 Commits

Author SHA1 Message Date
Kongqun Yang a725f3fd02 Fix mp4 parsing failure if CTTS table is empty.
The original code assumes CompositionOffset is always valid and
has the same number of samples as other table, which is not true
if CTTS table is empty for non-fragmented mp4.

Change-Id: If4ecc1159de33202db4ab36df8e32c2a6900daf8
2014-01-10 16:36:22 -08:00
Kongqun Yang c73bfadd0e Move test utilities in media/base to media/test.
Also clean up test_data_util.cc.

Change-Id: Ic6038e072939d55fad7cc739b53ab9888b4251c1
2014-01-10 15:38:40 -08:00
Rintaro Kuroiwa faab1435ba Merge "A muxer listener implementation for VOD" 2014-01-10 23:35:12 +00:00
Kongqun Yang e4ebc9763c Rename AAC to AACAudioSpecificConfig.
Change-Id: Idda2db1f2cdde6c2c220830c2681bef209ad4ce2
2014-01-10 23:34:50 +00:00
Rintaro Kuroiwa 1a28e0c475 A muxer listener implementation for VOD
Change-Id: I48890799deb7cda66d477392a671bbd8c01a9dbe
2014-01-10 15:32:13 -08:00
Kongqun Yang ffc4a82460 Implement RsaPrivateKey and RsaPublicKey.
Used for message signing, signature verification, encryption and
decryption using RSA algorithm.

Change-Id: Icacd5a994c532a7bd4179c44e98c3ee9db744e83
2014-01-10 22:28:20 +00:00
Kongqun Yang 1e7080dda6 Implement Widevine encryptor source.
Use AES CBC signing for now. Rsa signing is not implemented yet.

Change-Id: Ife52ac098e9a82d4e40bbe0c0156f435a67c1aac
2014-01-10 14:24:15 -08:00
Kongqun Yang 577f899794 Implement AES CBC encryption/decrytion.
Change-Id: I017b02b5e8fc64c280a8245b72be89e1cf047f26
2014-01-10 21:33:09 +00:00
Rintaro Kuroiwa 0f3056b551 Use scoped_ptr for box ownership transfer
MP4Muxer passes ownership of ftyp and moov box to MP4Segmenter.

Change-Id: Iae7c7161560c744d8d3e7e5382450e7d056112ec
2014-01-08 12:06:04 -08:00
Kongqun Yang 1b5c3b5316 MP4 Muxer implementation.
Change-Id: I2aeb506e5bf7e2301e855456688273fe5f3988a2
2014-01-07 17:40:37 -08:00
Kongqun Yang 01646837e1 Implement write function for cenc and es_descriptor.
And MP4 code clean ups due to mp4 box changes.

Change-Id: I712b2dceb5038bfefa14097fe2fb2ab1fb913cb5
2014-01-07 16:59:52 -08:00
Kongqun Yang dccb069ffc A simple HTTPFetcher implementation using happyhttp.
Change-Id: I4f64d46ca4873711300ae175c5f5646ca1a7c366
2014-01-06 22:02:36 +00:00
Kongqun Yang 636baf9b21 MP4 Box unittest.
Change-Id: I1ed9b0108f5da4c52a3e33514ac4fd952f6616d0
2014-01-02 17:14:53 -08:00
Kongqun Yang 57474b31d6 Implement mp4 box read/write.
The box may be optimized if necessary during writing.

Change-Id: I7a46e72a0bcbeacb23085a87e1f0df3a826e4da7
2014-01-02 17:12:51 -08:00
Kongqun Yang 0f3bc4b6b4 Implement base mp4 box objects: Box and FullBox.
Change-Id: Ic1acc0f7ec3999d5270609a8836dbbde7f0d1c0f
2014-01-03 00:58:09 +00:00
Rintaro Kuroiwa b6e127416b MuxerListener interface
Muxer event handler interface.

Change-Id: Iee4b43c49ae9a105bbadb61b6ae9ed2e66bfaba2
2014-01-02 10:44:51 -08:00
Kongqun Yang 3318ad715d Define BoxBuffer which wraps mp4 box read/write.
BoxBuffer wraps either BoxReader for reading or BufferWriter for writing.
Thus it is capable of doing either reading or writing, but not both.

Change-Id: Id57370755a586bfdef1291a23af29f5b1feec903
2013-12-12 23:49:17 +00:00
Kongqun Yang e9b77add23 Implemented FixedEncryptorSource.
FixedEncryptorSource takes hardcoded key id and content key.
Implemented an AES Encryptor using OpenSSL.

Change-Id: I59ba9a41fc0f40925d697045dd1b147b7351c2f9
2013-12-10 19:29:48 -08:00
Kongqun Yang 4f1aab5e51 A simple BufferWriter implementation.
The BufferWriter is capable of appending various data types to buffer.
No optimization is done yet. We may consider optimize it for
appending (adding data to the tail) later.

Change-Id: I3b8e749e410c7ea4d4f2fb855e27744131c63cb0
2013-12-03 17:27:19 -08:00
Kongqun Yang 3c2abdafb7 Move BufferReader to media/base.
Added new functions ReadNBytesInto8(s) and several other minor
changes.

Change-Id: I175fd3be388fcfd04fc205e25ab7dec4c8b004ff
2013-12-02 17:11:03 -08:00
Kongqun Yang dc88702315 Removed EditList, added NAL and several other cleanup.
Change-Id: I2658eae0789f1c4e8d0534a6ff70267058bee2fc
2013-11-25 17:21:19 -08:00
Kongqun Yang edf74fc89f Demuxer, MediaStream, File and Status implementations.
Also includes a dummy packager_test with TestingMuxer.

Change-Id: I6a6e6dd77e343ef742adc1846ede203993628943
2013-11-11 18:13:51 -08:00
Kongqun Yang 3f3d9a6b76 Add duration, language, codec data to stream info.
Change-Id: I83d221fd36adb53ccf5629c80b137ba0ec730d55
2013-11-12 02:04:32 +00:00
Kongqun Yang db7602f42e Implemented non-fragmented mp4 parsing support.
Change-Id: I956704d1bf7d2d018ad65343b462c62b5042aba6
2013-10-10 18:04:32 -07:00
Kongqun Yang 338e3342b0 Create MP4MediaParser and its dependents.
Create new classes: StreamInfo, AudioStreamInfo, VideoStreamInfo,
MediaParser, MediaSample, MP4MediaParser.

Change-Id: I19c2fc73964d9f8fc90acaddd1783f4e6ff87d07
2013-10-03 16:00:54 -07:00
Kongqun Yang 0f24c7f9ac Start with media/mp4, media/webm and base codes from Chromium. 2013-09-23 18:37:14 -07:00