Граф коммитов

283 Коммитов

Автор SHA1 Сообщение Дата
Ralph Giles 2a3fb1bc74 Bug 1262637 - Remove rust mp4parse sse2 check. r=ajones
This reverts bug 1255869 which added a runtime check for sse2
support to work around sse2 instructions in the rust standard
library targeting i686-pc-windows-msvc.

We now make official builds against i586-pc-windows-msvc which
should omit the sse2 instructions which aren't supported for
all our current users.
2016-04-06 15:30:00 -07:00
Jean-Yves Avenard aa950b3d46 Bug 1232313: [mp4] Use cumulative decode time if tfdt box is not present. r=kentuckyfriedtakahe
Per ISO 14496-12, the Track fragment decode time (tfdt) is optional.

MozReview-Commit-ID: LNrMPYlkDvt

--HG--
extra : rebase_source : fbacde893352db9248a3ebe6a62b2042eb3106b6
2016-03-16 18:58:48 +11:00
Ralph Giles 2c98c3b096 Bug 1255869 - Don't call into mp4parse-rust on machines without sse2. r=kinetik
Work around sse2 instructions in the rust standard library
built for the i686-pc-windows-msvc target. We disable
sse2 code generation for our own code.

MozReview-Commit-ID: F6n0CmBd8dQ
2016-03-11 11:48:00 +13:00
Gerald Squelart 2d4fdb1b57 Bug 1253471 - Remove Metadata hard-coded limit - r=jya
Instead of relying on some arbitrary limit for ftyp+moov box sizes, we check
for overflow and possible type truncations, and then let memory allocation
routines (e.g. MediaByteBuffer::SetLength) deal with actual memory limitations.

MozReview-Commit-ID: AXXxvdDYnnr
2016-03-08 17:25:33 +11:00
Louis Christie e7c36cac63 Bug 1231793: Part 1 - Added read functions for Little Endian integers to ByteReader.h. r=jya 2016-02-17 00:28:48 +11:00
Rudolfs Bundulis 6d6414c23e Bug 1235427: [mp4] Properly parse tfhd box. r=jya 2016-02-05 16:09:37 +11:00
Birunthan Mohanathas d7371d07d0 Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-02-02 17:36:30 +02:00
Phil Ringnalda d381b4bca6 Back out 7 changesets (bug 1235261) for cpptest failures in TestTArray
CLOSED TREE

Backed out changeset d66c3f19a210 (bug 1235261)
Backed out changeset 467d945426bb (bug 1235261)
Backed out changeset 32b61df13142 (bug 1235261)
Backed out changeset c50bb8ed4196 (bug 1235261)
Backed out changeset 0ff0fa6fe81f (bug 1235261)
Backed out changeset df70e89669da (bug 1235261)
Backed out changeset 064969357fc9 (bug 1235261)
2016-01-31 10:10:57 -08:00
Birunthan Mohanathas 373593275e Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-01-31 17:12:12 +02:00
Matthew Gregan 320852f1dd Bug 1243234 - Move mp4parse-rust initialization into constructor and clean up try_rust. r=giles
Initializing in the constructor better matches libstagefright's behaviour
(and avoids reading and copying the stream contents every time
GetNumberTracks() is called).

Also restricts the size of the buffer to 1MB.  This will be handled in the
future by passing the parser a DataSource-like interface for reading from
the stream.
2016-01-28 14:25:18 +13:00
Matthew Gregan d5fa024fbd Bug 1243234 - Remove now-unnecessary StagefrightPrivate wrapper. r=giles 2016-01-28 14:25:18 +13:00
Matthew Gregan 6e493e6d61 Bug 1243234 - Move mp4parse-rust code into MP4MetadataRust impl. r=giles
Most of the interface is stubbed with asserts and only GetNumberTracks() is
called on both libstagefright and mp4parse-rust variants.

This also moves the libstagefright vs mp4parse-rust comparisons up into
MP4Metadata.
2016-01-28 14:25:18 +13:00
Matthew Gregan 486dfd0798 Bug 1243234 - Hide MP4Metadata behind an impl pointer. r=giles
This is temporary (until libstagefright is removed) and intended to make
swapping between and comparing the results of the libstagefright and
mp4parse-rust versions simpler.
2016-01-28 14:25:18 +13:00
Ralph Giles 72a64368b4 Bug 1243234 - Update rust mp4parse telemetry reporting. r=kinetik
As of mp4parse 0.2.0 error codes are positive, as gecko telemetry
requires, so we no longer need to invert them. However, the return
code is still signed, so assert to catch future errors.

Also fix a bug in track comparison telemetry. We were only counting
tracks when parsing failed.
2016-01-28 14:25:18 +13:00
Ralph Giles f9d092e8c5 Bug 1243234 - Update rust mp4parse to v0.2.1. r=kinetik
- Invert return codes.
 - Preliminary VP9 and Opus sample entry support.
 - Fix a string parsing error which caused street.mp4 to fail.
2016-01-28 14:25:18 +13:00
Ralph Giles 7384fbc8ec Bug 1243234 - Update script for mp4parse v0.2.1. r=kinetik
Bump the default version.
2016-01-28 14:25:18 +13:00
Ralph Giles c95acf92c1 Bug 1243234 - Move mp4parse into a crate subdirectory. r=kinetik
If we can get this to work it will be less confusing, I think.

Byteorder has to be in a subdir while we're treating it as a mod.

We may have to add yet another directory when we have crate support
but until then all the rust code is at least self-contained..


--HG--
rename : media/libstagefright/binding/byteorder/mod.rs => media/libstagefright/binding/mp4parse/byteorder/mod.rs
rename : media/libstagefright/binding/byteorder/new.rs => media/libstagefright/binding/mp4parse/byteorder/new.rs
rename : media/libstagefright/binding/capi.rs => media/libstagefright/binding/mp4parse/capi.rs
rename : media/libstagefright/binding/MP4Metadata.rs => media/libstagefright/binding/mp4parse/lib.rs
2016-01-28 14:25:18 +13:00
Matthew Gregan 4691552993 Bug 1242807 - Fix mp4parse-rust's error reporting via telemetry. r=giles 2016-01-26 14:27:35 +13:00
Matthew Gregan 5b692e3491 Bug 1238420 - Report mp4parse-rust errors via Telemetry. r=rillian,vladan 2016-01-10 20:54:00 +13:00
Matthew Gregan ce8ce06139 Bug 1238420 - Update mp4parse-rust invocations in MP4Metadata to match CAPI changes. r=rillian 2016-01-10 20:54:00 +13:00
Ralph Giles 43e659e3cc Bug 1238420 - Update byteorder to v0.4.2. r=kinetik
Rebase patches against the new upstream release.
No changes on the client side are necessary.
2016-01-11 11:01:00 +13:00
Matthew Gregan 483076eb11 Bug 1238420 - Update mp4parse-rust to 0.1.6. r=kinetik
Bump default version in the update script and run it against
the tagged v0.1.6 upstream repo.
2016-01-11 11:02:00 +13:00
Gerald Squelart 91033abdfe Bug 1232069 - Check box sizes before alloc&copy. r=jya 2015-12-29 13:12:14 -05:00
Jean-Yves Avenard b919d97460 Bug 1234778: Mark all audio frames as keyframes. r=kentuckyfriedtakahe 2015-12-24 09:05:50 +11:00
Ralph Giles 51a6651735 Bug 1231169 - report rust mp4parse track status in telemetry. r=kinetik,vladan 2015-12-11 12:51:00 -08:00
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
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
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
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
sajitk 582e1a55fa Bug 1219480 - Replace PRLogModuleInfo with LazyLogModule in the media directory. r=rillian 2015-11-15 14:49:01 +01: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
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
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