Kongqun Yang
e2b29552e9
Fix flaky packager_test due to timestamp diff
...
Change muxer interface to allow injection of testing clock. Also added
more packager_tests.
Change-Id: Ie580cbd7e79607a2c2b9df5d5d52ee4be108ff8f
2014-03-20 00:52:53 +00:00
Kongqun Yang
cca3767c25
First draft doxygen documentation for media/mp4.
...
Change-Id: I13a28245168724a237a4653e298d6b835c24f17b
2014-03-19 17:39:42 -07:00
Kongqun Yang
b9f1996b68
Fix compilation errors after manifest update
...
Manifest was updated in CL 7debbbe19b158ea7377e229a17ec1d3d9d19d1b8
to point to Chromium LGKR CL 253526.
There are some API refactoring in base, which result in some code
changes in our packager source.
Change-Id: I52bf5a8a4f8fe0ebc566677efcd572332db8f618
2014-03-03 13:26:14 -08:00
Kongqun Yang
0a8dc6f606
Clean up *_iterator code in media/mp4.
...
Make functions const if needed and reformat the code using clang-format.
Change-Id: If2848ef6c3b61df5358286687d80213533125856
2014-02-21 10:52:01 -08:00
Kongqun Yang
b93f2020c8
Fix no ContentProtection element problem.
...
The original code used stream_info.is_encrypted() to check whether output
stream is encrypted; However, stream_info contains input stream
information and does not contain output stream infomation, which results
in incorrect status was passed to mpd generator. Fix the problem with
correct information from muxer.
Change on behalf of rkuroiwa after a discussion with him.
Bug: 12994813
Change-Id: I6e74b378a0fd7deedaaac166e913a66d312b8318
2014-02-20 01:22:09 +00:00
Kongqun Yang
58c4473d42
Add copyright information.
...
The information is generated by Edwin's copyright.py script with some
minor manual modifications.
Chromium's original copyright notice is not replaced.
Also add LICENSE file taken from
https://sites.google.com/a/google.com/ospo/releasing#TOC-BSD-License
Change-Id: I231f09af96a0a611b1ca81e95cab82e12d7f529b
2014-02-18 23:46:01 +00:00
Kongqun Yang
66e8f847e6
Clean up gyp.
...
Split packager.gyp into multiple smaller gyp definitions.
Change-Id: Icb38bd20f6e11ea41a975332c911d6bde7fc827d
2014-02-18 23:44:53 +00:00
Rintaro Kuroiwa
6d68f778ee
Add ContainerType to MuxerListener
...
Container type should be passed to MuxerListener
Change-Id: I4941f17d68fab1565c6105a73e50fa9885bbd304
2014-01-28 00:32:09 -08:00
Kongqun Yang
522048b0d9
Add a muxer option to normalize PTS to start from 0
...
Some players do not like non-zero starting PTS. We need to do PTS
normalization to make it work on those players.
Bug: 12686658
Change-Id: I0958c25395e4ea87d8208db9a5f6c5816827eb99
2014-01-24 22:34:27 +00:00
Kongqun Yang
a8fb39fb27
Clean up CHECK macros in mp4 muxer code.
...
Change-Id: I887344c8f79bb3b45a17abe23bc0b2614c0dcd48
2014-01-23 23:26:34 +00:00
Kongqun Yang
85c91568f2
Add a new packager test for separate av muxer output
...
Also fix a bug that when Muxer::Finalize is called, the fragmenter
isn't initialized yet.
Change-Id: I826d1ad2519e553de8581ac4a334373cf1eb8067
2014-01-22 02:27:52 +00:00
Kongqun Yang
8095e21c96
Clean up clang compilation errors.
...
Clang from Chromium enforces Chromium styles:
http://www.chromium.org/developers/coding-style ,
http://www.chromium.org/developers/coding-style/chromium-style-checker-errors .
Change-Id: I8070739489a8109380578d1797801e981d119793
2014-01-17 01:41:45 +00:00
Rintaro Kuroiwa
e4d94be0d3
Fire MuxerListener events from MP4Muxer
...
Implementation only for OnMediaStart and OnMediaEnd.
Change-Id: I58a94c29b7e8cecf29b6202c7018592e5ce620b2
2014-01-14 18:25:07 -08:00
Kongqun Yang
57ca7d2144
Remove EncryptorSource argument from Muxer constructor.
...
Add a new function Muxer::SetEncryptorSource. Also clean up
packager test.
Change-Id: I5fee46e3d15e0c7a0f138c1d90f980b724887768
2014-01-15 01:48:41 +00:00
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
Kongqun Yang
e4ebc9763c
Rename AAC to AACAudioSpecificConfig.
...
Change-Id: Idda2db1f2cdde6c2c220830c2681bef209ad4ce2
2014-01-10 23:34:50 +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
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
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
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