Ralph Giles
a3ea7052ff
Bug 1229615 - Catch panics in mp4parse_get_track_info. r=kinetik
...
Wrap calls in a thread the way we do for read_mp4().
Patch from upstream.
2015-12-02 17:22:01 -08:00
Ralph Giles
3c67e8b631
Bug 1229615 - Conditionalize mp4parse.h export. r=kinetik
2015-12-02 17:21:54 -08:00
Matthew Gregan
dee904221c
Bug 1229615 - Compare track counts between rust and stagefright. r=rillian
...
Use the new capi calls in rust mp4parse v0.1.5 to query
audio and video track counts and compare with what we
get from stagefright.
2015-12-02 17:21:49 -08:00
Ralph Giles
be8ee9898b
Bug 1229615 - Don't reject files without edit lists. r=kinetik
...
Patch from upstream.
2015-12-02 17:21:41 -08:00
Wes Kocher
ef60ffb91e
Backed out 3 changesets (bug 1229615) for crashtest crashes in 0-timescale.html CLOSED TREE
...
Backed out changeset aa313047a6de (bug 1229615)
Backed out changeset 80aa7ecf9456 (bug 1229615)
Backed out changeset d7bf9994e1b0 (bug 1229615)
--HG--
extra : commitid : 782ajuO9h9t
2015-12-02 15:00:42 -08:00
Ralph Giles
fef6163774
Bug 1229615 - Conditionalize mp4parse.h export. r=kinetik
2015-12-02 12:22:09 -08:00
Matthew Gregan
6b03728600
Bug 1229615 - Compare track counts between rust and stagefright. r=rillian
...
Use the new capi calls in rust mp4parse v0.1.5 to query
audio and video track counts and compare with what we
get from stagefright.
2015-12-02 12:19:29 -08:00
Ralph Giles
8c0e42e151
Bug 1229615 - Don't reject files without edit lists. r=kinetik
...
Patch from upstream.
2015-12-02 12:25:00 -08:00
Ralph Giles
a0a2e12a73
Bug 1229612 - Update rust mp4parse to v0.1.5. r=kinetik
...
Adds query functions for track metadata.
2015-12-01 17:33:00 -08:00
Jean-Yves Avenard
87d0bbae43
Bug 1226842: Error rather than asserting when encountering error in sample table. r=gerald
2015-12-02 10:39:50 +11:00
Jean-Yves Avenard
9191c537d3
Bug 1229134: Check that memory allocation actually succeeded. r=gerald
2015-12-02 10:39:49 +11:00
Gerald Squelart
a9a0ca3af0
Bug 1210319 - p3. Lowered useless log level - r=jya
...
--HG--
extra : commitid : 3l4NCSLhsWC
2015-12-01 13:46:07 -08:00
Gerald Squelart
23f5557d82
Bug 1210319 - p2. Minor intf clean-up, RIP trex - r=rillian
...
Made some class interfaces a bit more "C++11"-ish, to protect against some
possible issues.
Also removed 'trex', which was only used by code removed in previous patch.
--HG--
extra : commitid : FkTiMJ5sZLf
2015-12-01 13:45:55 -08:00
Gerald Squelart
f8723d92f6
Bug 1210319 - p1. Removed unused code - r=rillian
...
--HG--
extra : commitid : 6LU02OBJDFK
2015-12-01 13:45:42 -08:00
Jean-Yves Avenard
7ae8605a51
Bug 1229339: Partial revert of commit c15c9f37f. r=cpearce
...
Replacement of nsTArray<MediaByteRange> by MediaByteRangeSet in the MoofParser was incorrect.
2015-12-02 08:35:57 +11:00
Jean-Yves Avenard
5b14282671
Bug 1227396: P14. Reduce memory usage of sample index for audio tracks. r=cpearce
...
All samples in an audio track are keyframes. As such, use block on 128 samples instead.
2015-11-30 11:36:39 +11:00
Jean-Yves Avenard
bb0aacbf79
Bug 1227396: P13. Refactor how MP4 buffered range is calculated. r=cpearce
...
We now use an index of samples made of block of samples delimited by keyframes. The search is performed using a binary search. This allows to quickly find which blocks are found within the media cache.
On a 8 core mac pro, this leads to a 67% improvement on CPU time spent playing a long MP4 video (from 112s CPU to 45s CPU)
The optimisation is only possible if all mp4 data chunks are continuous (which they almost always are)
2015-11-30 11:29:37 +11:00
Jean-Yves Avenard
219b4520a6
Bug 1227396: P10: Remove stray function definition. r=cpearce
2015-11-30 11:29:35 +11:00
Jean-Yves Avenard
fdf27ff498
Bug 1227396: P9. Remove unnecessary monitor. r=cpearce
...
The Index and MoofParser are now only used via the MP4Demuxer which is guaranteed to always be called on the same taskqueue.
2015-11-30 11:29:35 +11:00
Jean-Yves Avenard
a7975b198f
Bug 1227396: P8. Replace MediaByteRange with Interval<int64_t> typedef. r=cpearce
...
It's now okay to simplify.
2015-11-30 11:29:34 +11:00
Jean-Yves Avenard
c8c275cee2
Bug 1227396: P7. Replace nsTArray<MediaByteRange> with dedicated MediaByteRangeSet object. r=cpearce
2015-11-30 11:29:34 +11:00
Jean-Yves Avenard
70f2124283
Bug 1227396: P2. Rename some MediaByteRange methods. r=cpearce
...
Will facilitate the replacement of MediaByteRange by Interval<int64_t>
2015-11-30 11:29:30 +11:00
Gerald Squelart
ed2eee2066
Bug 1227052 - Use delete[] for sinf->IPMPData. r=jya
...
--HG--
extra : rebase_source : d8197fdc08c009dedd25f83ef2a7fc68356043a7
2015-11-24 08:46:54 +01:00
sajitk
582e1a55fa
Bug 1219480 - Replace PRLogModuleInfo with LazyLogModule in the media directory. r=rillian
2015-11-15 14:49:01 +01:00
Gerald Squelart
33342972f0
Bug 1224019 - Disable Stagefright subset gtests - r=jya, rs=botond
...
These tests are exploratory, they don't particularly match whatever the
original issues were discovered, so it is safe to disable them for now.
A future bug will look at re-enabling them, but without all the output
that they generate.
--HG--
extra : rebase_source : c31b049d696d09094a8fb94f09525756840cf33f
2015-11-11 19:24:48 -05:00
Wes Kocher
f3a9eb2a26
Backed out changeset 1e5f3d1151d6 (bug 1219480) for cpp unittest bustage CLOSED TREE
...
--HG--
extra : commitid : BMVKq6cPeho
2015-11-11 09:36:56 -08:00
sajitk
3cbe348cdd
Bug 1219480 - Replace PRLogModuleInfo with LazyLogModule in the media directory. r=rillian
...
--HG--
extra : rebase_source : c73098485fa005d914304fb6e7f8eba3c15e66dc
2015-11-11 06:52:00 +01:00
Gerald Squelart
a407a004d9
Bug 1216845 - Check fallible allocations - r=rillian
...
- Made externally-sized 'new' allocations fallible.
- Check return value of every new(fallible)/malloc/realloc.
- Consistently return -ENOMEM when allocations fail.
- MPEG4Extractor::getTrack() and getMetaData() can return null (because of
failed parse or failed alloc); added missing checks in callers.
Note: Some allocs in the 2nd half of MPEG4Extractor have not been touched, as
they are in unused code to be removed in bug 1210319.
2015-11-11 12:37:53 +01:00
Gerald Squelart
305f63eb74
Bug 1216748 - p4. Check other Metadata::setData uses - r=rillian
...
Found only one other use that needed better checks: the size of the pssh
data was only checked after all items were added up; so it would be
possible to create a set of big items such that they create an overflow,
but the final sum looks reasonable.
Instead each item size should be checked, and the sum should also be
checked at each step.
2015-11-11 12:36:26 +01:00
Gerald Squelart
11139b4935
Bug 1216748 - p3. Ensure 'covr' data size cannot create underflow - r=rillian
2015-11-11 12:36:05 +01:00
Gerald Squelart
e8a831bae2
Bug 1216748 - p2. Handle failed malloc in Metadata storage - r=rillian
2015-11-11 12:35:52 +01:00
Gerald Squelart
fe2b536abd
Bug 1216748 - p1. Added test case with different 'covr' sizes - r=rillian
2015-11-11 12:35:38 +01:00
Ralph Giles
fb945d27e7
Bug 1220885 - Add telemetry probe for rust mp4parse success. r=kinetik p=ally
...
This is a boolean to record the overall success rate of the new
demuxer path.
2015-11-09 12:42:00 -08:00
Gerald Squelart
2505b44960
Bug 1185230 - p1: Added mp4 test case to libstagefright gtest - r=rillian
2015-11-05 23:20:00 +01:00
Gerald Squelart
a7ce313646
Bug 1185230 - p2: Store MPEG4Source::mTimescale as uint32_t - r=rillian
...
The timescale is read as an unsigned integer, but was stored signed in MPEG4Source,
causing it to overflow into a negative number if too big, causing later issues when
exporting indices with negative timestamps.
2015-11-05 20:10:00 +01:00
Gerald Squelart
439afcf535
Bug 1181213 - Added Added mp4 test case to libstagefright gtest - r=rillian
...
Note: This bug is effectively fixed by bug 1181215, so only this test case is
provided to prove the successful resolution of this bug.
2015-11-05 19:12:00 +01:00
Gerald Squelart
468dab6c37
Bug 1181215 - p1: Added mp4 test case to libstagefright gtest - r=rillian
2015-11-05 19:11:00 +01:00
Gerald Squelart
15f513a32e
Bug 1181215 - p2: Better track verification - r=rillian
...
Copied some tests from MPEG4Source constructor to MPEG4Extractor::verifyTrack
so that we don't get late surprises, in particular a missing track ID.
2015-11-05 03:11:00 +01:00
Gerald Squelart
1a225cc661
Bug 1181220 - p2: Check if MIME types are valid - r=rillian
2015-11-05 19:10:00 +01:00
Gerald Squelart
d26da5bb6a
Bug 1181220 - p1: Added mp4 test case to libstagefright gtest - r=rillian
2015-11-05 19:08:00 +01:00
Gerald Squelart
007ffc84ce
Bug 1181223
- p2: Handle wrong saio/saiz size instead of assuming it is correct - r=rillian
2015-11-05 19:06:00 +01:00
Gerald Squelart
35a07e897c
Bug 1181223
- p1: Added mp4 test case to libstagefright gtest - r=rillian
2015-11-05 19:05:00 +01:00
Gerald Squelart
0cd18ff32b
Bug 1181719 - p1: Added mp4 test case to libstagefright gtest - r=rillian
...
Remove mdat, which is big and not useful in this test that only looks at
metadata.
2015-11-05 19:01:00 +01:00
Gerald Squelart
1f8be14a2b
Bug 1181719 - p2: Check numBitsLeft before each getBits - r=rillian
2015-11-04 23:42:00 +01:00
Ralph Giles
11afc76455
Bug 1189531 - Check for nullptr in convertTimeToDate. r=gerald
...
In current code it's not possible to pass nullptr, but there's
no harm in checking.
See also bug 1156891.
2015-11-04 14:43:00 -08:00
Ralph Giles
75e08b8620
Bug 1221656 - Update rust mp4parse to v0.1.4. r=kinetik
...
New upstream release.
- turn off debug trace messages by default.
- better rejection of bad ftyp boxes.
2015-11-04 10:15:00 -08:00
Ralph Giles
7c6d20d965
Bug 1221656 - Copy mp4parse.h in update-rust.sh. r=kinetik
...
We had added this header manually at some point, but the script
wasn't updating it.
Also bump the default mp4parse version to the latest.
2015-11-04 10:14:00 -08:00
Ralph Giles
62347f7023
Bug 1220882 - Use LazyLogModule in MP4Metadata. r=kinetik
...
Use the new LazyLogModule to instantiate a log for the rust
mp4parse test code instead of using indiscriminate printf()s.
Access results with NSPR_LOG_MODULES=MP4Metadata:5.
2015-11-02 16:19:00 -08:00
Ralph Giles
0f8b14b1fe
Bug 1219047 - Call rust mp4parser with logging. r=kinetik
...
Add a helper for passing the initialization segments
of mp4 streams to the rust parser and log the result.
This runs real data through the new parser for testing
but doesn't use the results.
Code is conditional on MOZ_RUST_MP4PARSE to be defined
in confvars.sh. See bug 1219530.
2015-11-02 11:39:00 -08:00
Ralph Giles
38b78f20c9
Bug 1220754 - Update rust mp4parse to v0.1.3. r=kinetik
...
New upstream release.
- We now require rust 1.4 for Box::into_raw().
- New mp4parse::Error types.
- Fix memory exhaustion bug with bad ftyp boxes.
2015-11-02 10:15:00 -08:00