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
sbgp: Sample to Group box
sgpd: Sample Group Descripton box
They are required for DASH Live support.
Change-Id: I2f3b55843c5148db60c7c3a6891ba825b59934ce
User should not need to care about how and when to call these APIs.
Internal code should call them automatically.
Change-Id: Ibc85a709d4e82ecc7b477986cabf09dcfc2e100c
Rename MP4GeneralSegmenter to MultiSegmentSegmenter and MP4VODSegmenter
to SingleSegmentSegmenter.
Also drop MP4 from MP4Fragmenter and MP4Segmenter.
Change-Id: I5cefb88164516ec3588e0e3333a16f05b6277e7b
1. Use size_t for MediaSample size;
2. Get rid of stringstream in media_sample.cc and media_stream.cc.
Change-Id: I11fe650305a732ae6a18546ac68692e03ecedae4
The warnings and warnings-as-errors are enabled by set chromium_code to
1. Chromium build disables warnings and warnings-as-errors by default
on external contents.
And fix the errors with them enabled. Mostly defined but not used,
sign-unsign comparison, unsigned string formatting, and return value not
used etc.
Change-Id: I305b63924955a84172e98e0ebfe5aba0f11bdb37
Latest rev of happyhttp fixes the bugs so patches are no longer needed.
Also removes http_fetcher_unittest from the build as it performs real
http requests to an external server.
Some TODOs remain but are replaced with word NOTE instead. Some TODOs
are turned into bugs.
The patch are prepared using script:
find . -regex ".*/\(app\|media\|mpd\)/.*\.\(cc\|h\|gyp\)" \
-exec sed -i "/TODO/d" {} \;
(remove the line containing TODO) with some post editing.
Change-Id: I6dd3539cce2bbeefee32d6307f78c13aacb94d1b
Remove --audio and --video command line options and replaced with
--stream. User can use --stream=video (default) to pull the first video
track from the source or --stream=audio to pull the first audio track.
The user may also use --stream={stream_id}, 0-based stream id to pull
the stream, e.g. --stream=0 for the first stream.
Change-Id: Ie1f93c2cc80a160a496b1d43ae3a658263d30cfc
The change is made using command:
find . -regex ".*/\(app\|media\|mpd\)/.*\.\(cc\|h\|gyp\)" -exec sed -i
's,TODO(\w\+),TODO,g' {} \;
Then scan through the files and reformat them properly.
Change-Id: I13836cde38b9e30daf1fd8a847e203337f883e1b
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
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
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
MuxerListener takes MuxerOptions, reference time scale, and container
type which should be passed to MediaInfo creation.
Change-Id: I54c23476120e9ef77fc1df7e781b3a9acf0ff520
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
A MuxerListener implementation.
MediaInfo protobuf is dumped out to a file as human readable string.
Change-Id: I1b1d52b4d11d969efc07b413ff25cb26fb1aa2b4
Info from muxer is delegated to a function in internal namespace to
create MediaInfo protobuf structure.
Change-Id: I7c00ce02c9ab23f022cf485e582d771ce61107cf
Defines an abstract request signer class and two implementations of the
signer class, AesRequestSigner for AES-CBC signing and RsaRequestSigner
for RSA-PSS signing.
WidevineEncryptorSource now uses Signer for signature generation.
Change-Id: I4528409a9be998535bccde40fdadb412e4bbdaf3
Use EncryptorSource::CreateEncryptor for encryptor creation.
EncryptorSource no longer owns the created encryptor.
Change-Id: I34d1f32262b7692bcb347d3b084fd06cbae7850f
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
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
FixedEncryptorSource takes hardcoded key id and content key.
Implemented an AES Encryptor using OpenSSL.
Change-Id: I59ba9a41fc0f40925d697045dd1b147b7351c2f9
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