Commit Graph

476 Commits

Author SHA1 Message Date
Jonathan Watt
b15368cfcb Bug 1279451 - Remove a lot of unnecessary includes of nsAutoPtr.h. rs=sparky 2016-06-07 21:10:18 +01:00
Jean-Yves Avenard
950b3b9268 Bug 1278005: Fix rounding problems. r=cpearce, a=tomcat
We had two potentials rounding issue occurring. The one causing the problem is that adding an int64 with a float is a float, and would be limited to 24bits mantissa.
The other, could be that rounding would occur if the segment duration was over 16s long, as that too would exceed the representation range as we using microseconds representation internally.

MozReview-Commit-ID: FyBTGvfg25I

--HG--
extra : transplant_source : %D0%14u%E3%1E%C6%D2%FC4%A4%2B%C0%20k%05%E8%90qz%2B
2016-06-04 12:22:39 +10:00
Kilik Kuo
002f32571d Bug 1228601 - [Part1] Store only supported video rotation informatin into VideoInfo.; r=mattwoodrow
MozReview-Commit-ID: GF1PpJGkGyA

--HG--
extra : transplant_source : %A9%B2%94%EEb%B3%8B%B9P%AAj%25%9B%18t%22NV%0C%1C
2016-05-13 02:17:39 +08:00
Jean-Yves Avenard
0425d28998 Bug 1275853: [mp4] Don't reject boxes that contains padding but can be easily skipped. r=kentuckyfriedtakahe
My guess is that the application generating those files, does a very rough estimate on what the sample table size is going to be, which allows to perform the conversion in a single pass. This allows to place the moov box at the beginning.

MozReview-Commit-ID: IGzxTho4Akk

--HG--
extra : rebase_source : b6ca711a00f8b2d7d8708acdd17f52f59b469685
2016-05-28 10:42:01 +10:00
Chris Peterson
11ef78ae89 Bug 1275016 - Rename Endian.h to EndianUtils.h to avoid #include confusion with Android's endian.h stdlib header. r=froydnj
--HG--
rename : mfbt/Endian.h => mfbt/EndianUtils.h
2016-05-22 13:31:11 -07:00
Ryan VanderMeulen
244a5c7598 Backed out changeset de91db2be204 (bug 1275812) on a CLOSED TREE, again. 2016-05-26 16:36:00 -04:00
Ralph Giles
a038a5c348 Bug 1275812 - Experiment with exporting track mime-type. r=kinetik, a=RyanVM to land on a CLOSED TREE
MozReview-Commit-ID: 9CynVkwtUn2

--HG--
extra : source : aa1d245e0af392ca48e991661c0c38a84ba2e360
extra : amend_source : 5fc877fcf2e91a5c29b4a57ce00d90f6d354cf09
2016-04-04 11:28:05 -07:00
Ryan VanderMeulen
ac870fd3ee Backed out changeset aa1d245e0af3 (bug 1275812) for mass win32 debug crashes.
CLOSED TREE
2016-05-26 13:53:26 -04:00
Ralph Giles
21456960e1 Bug 1275812 - Experiment with exporting track mime-type. r=kinetik
MozReview-Commit-ID: 9CynVkwtUn2

--HG--
extra : rebase_source : 7995c6af6dc0a58b7369d25824c8446487ce49aa
2016-04-04 11:28:05 -07:00
Ralph Giles
8959d6a9ce Bug 1266309 - Use fallible rust thread::Builder. r=kinetik
We think thread::spawn() may be panicking in low memory
conditions. Test this by using the fallible thread::Builder
API and converting spawn Results into an error return.

MozReview-Commit-ID: 36pDaWsR2p8

--HG--
extra : rebase_source : 058273473564fa4c3b3da4cbd231efd9003a7d05
2016-05-25 13:57:29 -07:00
Ralph Giles
dad637eb4a Bug 1275189 - Remove thread::JoinHandle panic guard. r=kinetik
We've audited this code, so the calls inside the closure should
be panic-free. Meanwhile the thread join() itself seems to be
panicing on windows. This will at least get us a more obvious
crash.

MozReview-Commit-ID: JXoDOOu2x0K

--HG--
extra : rebase_source : 661da4e8e8dc98e25b318a51c49a406ee86beb46
2016-05-24 14:42:42 -07:00
Jeff Muizelaar
3d15a7f63b Bug 1273640. Make some mp4 demuxer classes final. r=cpearce
This fixes some clang warnings about virtual destructors.
2016-05-24 15:38:48 -04:00
Sebastian Hengst
e013fac160 Backed out changeset 998ed936f745 (bug 1228601) for reftest failure in 1frame_rotation_90.mp4. r=backout on a CLOSED TREE 2016-05-23 14:24:00 +02:00
Kilik Kuo
b0d32a9fb5 Bug 1228601 - [Part1] Store only supported video rotation informatin into VideoInfo.; r=mattwoodrow
MozReview-Commit-ID: GF1PpJGkGyA

--HG--
extra : transplant_source : %C5%FF%EB%29j%E2T_h%AC%22%8Ey%E0%91%C6%7Dh%1C%09
2016-05-13 02:17:39 +08:00
Chris Peterson
8a9e2d2bd4 Bug 1272513 - Part 2: Remove redundant -Wshadow CXXFLAGS from moz.build files. r=glandium 2016-05-14 00:54:55 -07:00
Jean-Yves Avenard
a137695351 Bug 1271847: Only adjust the samples once we have a complete moof. r=kentuckyfriedtakahe
MozReview-Commit-ID: 5TO0d20uUhZ

--HG--
extra : rebase_source : 0c0f0250d4fac6f3ffca736b6d79c7e4301e964e
2016-05-11 15:59:33 +10:00
Nathan Froyd
276488cf53 Bug 1220307 - part 2 - use something other than vector<T>::data() in TestMP4Rust.cpp; r=rillian
Our copy of STLport on Android is so old, it doesn't have support for
vector<T>::data().  The standard defines vector<T>::data() in terms of
vector<T>::front(), so this change should work everywhere.

--HG--
extra : rebase_source : 862d8745b49f48eadf026cbbddf20da7da2d0404
extra : source : 4e5db23bc712948e7371d69438033c03de29a00a
2016-05-06 15:09:36 -04:00
Wes Kocher
cfb9b30727 Backed out 3 changesets (bug 1220307) for failures in test_dialogArguments.html and test_iframe_sandbox_modal.html
Backed out changeset d74e9d5a64c3 (bug 1220307)
Backed out changeset 4e5db23bc712 (bug 1220307)
Backed out changeset b3397e0d5d8d (bug 1220307)
2016-05-06 12:38:36 -07:00
Nathan Froyd
29d2450973 Bug 1220307 - part 2 - use something other than vector<T>::data() in TestMP4Rust.cpp; r=rillian
Our copy of STLport on Android is so old, it doesn't have support for
vector<T>::data().  The standard defines vector<T>::data() in terms of
vector<T>::front(), so this change should work everywhere.
2016-05-06 15:09:36 -04:00
Jean-Yves Avenard
2faa2a9445 Bug 1269325: [mp4] Recalculate dts after adjusting cts. r=kentuckyfriedtakahe,r=gerald
CTS are adjusted so that all frames within a moof are contiguous and gapless. This means that the duration of each sample are updated accordingly. In MP4, the definition of a sample's duration is the delta between two decoding timestamp. As such, when changing the duration, the decode timestamp should be updated accordingly.

MozReview-Commit-ID: 8D8DeNeyzy
2016-05-04 15:21:03 +10:00
Carsten "Tomcat" Book
44c8e23809 Backed out changeset b1a5d5739f66 (bug 1220307)
--HG--
extra : rebase_source : e611cc0a2b400a4b8623c407536c9d17eddf8212
2016-05-03 12:01:23 +02:00
Nathan Froyd
6b2e7cc04f Bug 1220307 - part 2 - use something other than vector<T>::data() in TestMP4Rust.cpp; r=rillian
Our copy of STLport on Android is so old, it doesn't have support for
vector<T>::data().  The standard defines vector<T>::data() in terms of
vector<T>::front(), so this change should work everywhere.
2016-05-02 12:10:07 -04:00
Jean-Yves Avenard
c2567cb4bd Bug 1264622: [MP4] Resync stagefright's updateAudioTrackInfoFromESDS_MPEG4Audio with upstream. r=kentuckyfriedtakahe
This adds support for parsing AOT audio specific config (which contains extended channels layout).

MozReview-Commit-ID: 7yNGBEAI7sv

--HG--
extra : rebase_source : 6f29c04f1f29785ba097d64df13794f80672fb50
2016-04-14 23:32:40 +10:00
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
Ralph Giles
484761817e Bug 1255866 - stagefright: Fix unused variable warnings. r=ajones
MozReview-Commit-ID: 7UwVTewfYde
2016-03-21 14:20:43 -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
Jean-Yves Avenard
c2467e583e Bug 1254721: Ensure consistency between Cenc offsets and sizes table. r=gerald
MozReview-Commit-ID: E1KbKIIBR87
2016-03-16 16:59:05 +11:00
Jean-Yves Avenard
e9909fb19d Bug 1254731: [mp4] P2. Remove unused parsing of creation date. r=gerald
We just don't care about it in our use.
Additionally, gmtime and strftime are not thread safe at all (they use global static internally)

MozReview-Commit-ID: HfRpCyx4MpK
2016-03-16 16:56:27 +11:00
Jean-Yves Avenard
4ca801910c Bug 1254731: P1. Check for overflow and that conversion succeeded. r=gerald
MozReview-Commit-ID: Cs33P9QyP2V
2016-03-16 16:56:27 +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
Jean-Yves Avenard
fbeebd3375 Bug 1244523: [mp4] P3. Skip four bytes when we hit a zero length box, r=kentuckyfriedtakahe
Similar to bug 1180101, but don't handle only the last box in the file.
2016-02-02 16:27:48 +11: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
66f8ae8fac Bug 1238420 - Update MP4Rust gtest for CAPI changes. r=kinetik.
mp4parse_read() returns a variety of error codes now.

Call mp4parse_get_track_count() to verify the number
of parsed tracks.
2016-01-11 11:26: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