This does not support key-rotation and will give an error. This is
because WebM does not have a way to indicate a change in key ID using
media segments.
b/22463551
Change-Id: I9b3dac818dc370302a5afc0d25d8a060b64d30cd
- Check if 'output_dir=' is already defined in GYP_GENERATOR_FLAGS
before appending the one generated in the script.
- Reusing out/ with different GYP_DEFINES causes everything to rebuild.
- This change allows the user to use different directories for different
GYP_DEFINES; it can make sanity checking faster for different
GYP_DEFINES.
Change-Id: Iffa6880381dabdd80a3aa7777a1d20cc3900f3e3
- From DASH spec 2014, MPD@publishTime and Period@id are required for
'dynamic' MPD.
- Period@id is always set to "0".
- MPD@publishTime is set to the time when the MPD is output.
Issue #55
Change-Id: I5e50aa11067176e69a2343fbc82ca42129703e1b
Added packager tests for WebM audio. Also now only outputs the
language if it's not empty. Fixed the packager tests for that.
b/26540606
Change-Id: Ica804bd710055bcaa2113f948d723dedd78ef909
- @width, @height, @frameRate for Representation element will not be
set if the attributes are set at AdaptationSet level.
Issue #55
Change-Id: Ib4e669142874f9e8f0ca773df9f87a3fef01b729
- Box definitions for box type DAC3.
- Parser/muxer changes to support AC3 audio codecs.
- EC3 audio sample entry will come in Part 2.
- MPD signaling will come in Part 3.
Issue #64
Change-Id: I790b46ae8179b933bb8f7da9cdd38591fe8da43d
ThreadedIoFile spawns a new thread for every new file. Thread
information is stored for tracking purpose by base::tracked_objects.
The tracking object remains even if the thread itself is destroyed.
This results in memory usage increased by a couple of bytes for every
new segment created in live mode (new segments spawns new threads).
Use WorkerPool instead to avoid spawning new threads.
Fixes Issue #61.
Change-Id: Id93283903c3ba8ebf172a0d58e19b082a72c6cf0
For mp4 outputs, a metadata box with version information is added to
moov box.
For mpd outputs, a text comment with version information is added in
the beginning of mpd file.
Issue #60
Change-Id: I783ba370781c0a8f77c910ff1172bad2e7edff75
- Another minor change in segmenter_test_base: scoped_refptr can
be passed by value, remove ".Pass".
Change-Id: I31f0cf74c5ad0aba8890d3b1845155d63d7326a0
* Changed Segmenters to accept StreamInfo rather than MediaStream
to help in testing.
* Changed MemoryFile behavior to mirror local file:
* Read non-existent file is an error.
* Write deletes any existing file.
* Fixed a bug in SingleSegmentSegmenter.
Change-Id: I339e35597ca4661b7a26c6fdbbfa2f9f511c7da0
Javascript/JSON does not support int64_t or unsigned numbers. asset_id,
if greater than 0x80000000 will be converted to negative number. Use
double to represent asset_id instead as 32-bit integer can be lossless
represented using double.
Bug: 26309000
Change-Id: I3e800c396a1231375776295154fb0d96156e980b
- Replaced urn:mpeg:DASH:schema:MPD:2011 with
urn:mpeg:dash:schema:mpd:2011. The former is from the old spec.
- Replaced the MPD schema with the latest one.
- Fixed subSegmentAlignment typo with subsegmentAlignment.
Issue #55
Change-Id: Icffa9872ffc462627b81900a48f59e7b76687c11
This can be used for unit tests to reduce the need for temporary
files. A MemoryFile acts the same as any other File object, but
stores the contents in memory. The memory pointer can be accessed
directly. A file with the 'memory://' prefix will be a memory file.
Change-Id: I10ae3ed5391c8fd838e6dfb33106dec959bdc224
- Parse vp9 bitstream to get vpx codec configuration
- Add subsample encryption for vp9
- Also fixed a bug in VP9 parser if segmentation update_map is enabled
Change-Id: I69dc97088aa38c94c6d37fdbcf3d9cfc942a3df6
Profiling can be enabled by setting profiling=1 in gyp, e.g.
GYP_DEFINES="profiling=1" gclient runhooks
To turn on heap profiling, use the HEAPPROFILE environment variable
to specify a filename for the heap profile dump, e.g.
HEAPPROFILE=/tmp/heapprofile out/Release/packager ...
To turn on cpu profiling, use the CPUPROFILE environment variable
to specify a filename for the cpu profile dump, e.g.
CPUPROFILE=/tmp/cpuprofile out/Release/packager ...
Note that profiling may not work for debug builds, so use release
build if possible.
See docs/linux_profiling.md for details.
This change will help identify and resolve problem behind Issue #61.
Change-Id: I6f85a04ed82dd0cb3588e6b38e8ceb68dac6c436
- Add Box::WriteHeader and Box::HeaderSize methods. The concrete
box implementations should not need care about whether it is a
Box or FullBox normally.
- Rename Box::ReadWrite to Box::ReadWriteInternal to make it clear
that it is an internal methods. Make it private so it cannot be
incorrectly called in box implementions.
- Make an internal implementation of ComputeSizeInternal to compute
box size. |atom_size| is updated in ComputeSize, which wraps
ComputeSizeInternal.
Change-Id: I3fbcf8c527581b676d9d13f1ac1dd798da7c4d5f
Added two stream descriptors that are both used to tell the output
format. If it is not given, the packager will use the output file
extension to determine the output format.
Change-Id: Ib8d5dcf52956c2d451e77ea6a90d9502d4a77064
* Added WebM muxer that supports both single and multi-segment modes.
* WebM muxer supports MPD generation.
* Enabled WebM muxer and demuxer in packager.
b/22463220
b/25089245
b/25089714
Change-Id: I9f6e8fc51e08fbb1d685229c5cb54ea60f7bed8f
- Also set --clear_lead to 1 if encryption is enabled to make sure some
of the segments are encrypted.
- Also fixed glint errors.
Change-Id: Ie92ad3ea1a3fd95d059e424a114b863ac393e6bf
- Check whether if it can be parsed by libxml2 and check if the root
element is a 'tt' element.
- Added unit tests for determining TTML and WebVTT.
Change-Id: I4fea1881f0ab70970700601d8d7cea32cc04752c