Commit Graph

278 Commits

Author SHA1 Message Date
Jean-Yves Avenard
3f6934ace6 Bug 1174577: P1. Have Init segment range only include the first moov. r=kentuckyfriedtakahe 2015-06-19 16:45:15 +10:00
Ralph Giles
074f872aa1 Bug 1175322 - Add gtests for rust mp4 metadata parser. r=k17e
Add a null buffer test.
Add a street.mp4 test.

We have trouble parsing gizmo.mp4, and the dom/media/gtest
already exposes the file, which is confusing since we apparently
can't have duplicates in TEST_HARNESS_FILES.

The street.mp4 test always fails because we don't catch
the eof in the rust code.
2015-06-16 15:52:00 -07:00
Ralph Giles
dbec6e99b1 Bug 1175322 - Import byteorder crate. r=k17e
This is the source of Andrew Gallant's byteorder crate,
used end the MIT license.

It has been slightly modified to re-export the new sub-module
so it can be built as a mod inside our MP4Metadata crate since
we don't currently support crate dependencies.
2015-06-16 15:51:00 -07:00
Ralph Giles
35b5a70f29 Bug 1175322 - Import mp4parse v0.0.8 source. r=k17e
Source from https://notabug.org/rillian/mp4parse-rust
2015-06-16 15:50:00 -07:00
Ralph Giles
83d61e2787 Bug 1174356 - Add missing MediaData include. r=jya
Needed for separate compilation of MP4Metadata.h in unit tests.

--HG--
extra : rebase_source : 13d6298ff6a5e6706ab42a8d6fe2cadb15dba631
2015-06-15 08:53:00 -07:00
Birunthan Mohanathas
2d96c72f58 Bug 1174220 - Part 2: Use MediaByteBuffer instead of MediaLargeByteBuffer. r=jya
All MediaLargeByteBuffer calls already include the `mozilla::fallible`
parameter so we can safely replace MediaLargeByteBuffer with MediaByteBuffer.
2015-06-14 21:37:13 -07:00
Jean-Yves Avenard
bc7bec465a Bug 1171330: P14. Add ContainerParser::FirstCompleteMediaHeader() method. r=kentuckyfriedtakahe
--HG--
extra : rebase_source : 6adaf84ce44a6024b5eb40672f3d8d9bb107432d
2015-06-11 16:27:15 +10:00
Jean-Yves Avenard
584ec04c52 Bug 1171330: P1. Add ContainerParser::MediaSegmentRange() method. r=kentuckyfriedtakahe
And add abilities to MoofParser to indicate if a media segment is complete.
In MP4 a media segment is made of a moof atom followed by one (or more) mdat
atoms.

--HG--
extra : rebase_source : 0b0db48d55462025d9d45bf9b3bbdbc806b0e7a8
2015-06-11 15:49:49 +10:00
Birunthan Mohanathas
94f1cfa658 Bug 968520 - Add mozilla::fallible to more FallibleTArray calls. r=froydnj
This calls were already fallible due to their type (FallibleTArray). This
commit merely makes that fact visible at the call site.
2015-06-10 14:30:41 -07:00
Jean-Yves Avenard
8b436991f9 Bug 1171067: Part2. Properly hande box size marked as 0. r=kentuckyfriedtakahe
This indicates that the box goes to the end of the file.
2015-06-10 19:38:13 +10:00
Jean-Yves Avenard
884ee68615 Bug 1171067: Properly read 64bits header's size. r=kentuckyfriedtakahe 2015-06-10 19:38:13 +10:00
Jean-Yves Avenard
cb1a613e49 Bug 1168040: P3. MP4 dts must use the same timeline as pts. r=kentuckyfriedtakahe 2015-06-10 19:38:13 +10:00
Jean-Yves Avenard
9a7876feb4 Bug 1168040: Part2. Properly handle MP4 time offset in MoofParser. r=kentuckyfriedtakahe 2015-06-10 19:38:13 +10:00
Jean-Yves Avenard
34ab4962db Bug 1168040: Part1. Properly handle MP4 starting offset. r=kentuckyfriedtakahe 2015-06-10 19:38:13 +10:00
Jean-Yves Avenard
c2533f75f1 Bug 1171629: Use fallible array to store MP4 samples index. r=kentuckyfriedtakahe 2015-06-10 19:38:13 +10:00
Eugen Sawin
e03391c07e Bug 1166779 - Rebase MP3 demuxer on MediaDataDemuxer interface. r=kinetik
--HG--
rename : media/libstagefright/binding/MP3TrackDemuxer.cpp => dom/media/MP3Demuxer.cpp
rename : media/libstagefright/binding/include/mp4_demuxer/MP3TrackDemuxer.h => dom/media/MP3Demuxer.h
extra : rebase_source : 1cbc9b841cdba57e9d72c00f6c6ec95eebb3b371
2015-06-05 14:34:19 +02:00
Eric Rahm
75c4bebb79 Bug 1165515 - Part 13-2: Replace usage of PRLogModuleLevel and PR_LOG_*. rs=froydnj
This is straightforward mapping of PR_LOG levels to their LogLevel
counterparts:
  PR_LOG_ERROR   -> LogLevel::Error
  PR_LOG_WARNING -> LogLevel::Warning
  PR_LOG_WARN    -> LogLevel::Warning
  PR_LOG_INFO    -> LogLevel::Info
  PR_LOG_DEBUG   -> LogLevel::Debug
  PR_LOG_NOTICE  -> LogLevel::Debug
  PR_LOG_VERBOSE -> LogLevel::Verbose

Instances of PRLogModuleLevel were mapped to a fully qualified
mozilla::LogLevel, instances of PR_LOG levels in #defines were mapped to a
fully qualified mozilla::LogLevel::* level, and all other instances were
mapped to us a shorter format of LogLevel::*.

Bustage for usage of the non-fully qualified LogLevel were fixed by adding
|using mozilla::LogLevel;| where appropriate.
2015-06-03 15:25:57 -07:00
Carsten "Tomcat" Book
5471309381 Backed out 14 changesets (bug 1165515) for linux x64 e10s m2 test failures
Backed out changeset d68dcf2ef372 (bug 1165515)
Backed out changeset 7c3b45a47811 (bug 1165515)
Backed out changeset b668b617bef2 (bug 1165515)
Backed out changeset d0916e1283a2 (bug 1165515)
Backed out changeset ac4dc7489942 (bug 1165515)
Backed out changeset e9632ce8bc65 (bug 1165515)
Backed out changeset c16d215cc7e4 (bug 1165515)
Backed out changeset e4d474f3c51a (bug 1165515)
Backed out changeset d87680bf9f7c (bug 1165515)
Backed out changeset b3c0a45ba99e (bug 1165515)
Backed out changeset 9370fa197674 (bug 1165515)
Backed out changeset 50970d668ca1 (bug 1165515)
Backed out changeset ffa4eb6d24b9 (bug 1165515)
Backed out changeset 5fcf1203cc1d (bug 1165515)

--HG--
extra : rebase_source : 6fb850d063cbabe738f97f0380302153e3eae97a
2015-06-02 13:05:56 +02:00
Eric Rahm
a9afd68cef Bug 1165515 - Part 13-2: Replace usage of PRLogModuleLevel and PR_LOG_*. rs=froydnj
This is straightforward mapping of PR_LOG levels to their LogLevel
counterparts:
  PR_LOG_ERROR   -> LogLevel::Error
  PR_LOG_WARNING -> LogLevel::Warning
  PR_LOG_WARN    -> LogLevel::Warning
  PR_LOG_INFO    -> LogLevel::Info
  PR_LOG_DEBUG   -> LogLevel::Debug
  PR_LOG_NOTICE  -> LogLevel::Debug
  PR_LOG_VERBOSE -> LogLevel::Verbose

Instances of PRLogModuleLevel were mapped to a fully qualified
mozilla::LogLevel, instances of PR_LOG levels in #defines were mapped to a
fully qualified mozilla::LogLevel::* level, and all other instances were
mapped to us a shorter format of LogLevel::*.

Bustage for usage of the non-fully qualified LogLevel were fixed by adding
|using mozilla::LogLevel;| where appropriate.
2015-06-01 22:17:33 -07:00
Wes Kocher
4e9f80ed2e Backed out 14 changesets (bug 1165515) for b2g mochitest-6 permafail CLOSED TREE
Backed out changeset 9b97e2aa2ed9 (bug 1165515)
Backed out changeset 150606c022a2 (bug 1165515)
Backed out changeset 4e875a488349 (bug 1165515)
Backed out changeset 467e7feeb546 (bug 1165515)
Backed out changeset d6b6cc373197 (bug 1165515)
Backed out changeset 0615265b593c (bug 1165515)
Backed out changeset fafd1dce9f08 (bug 1165515)
Backed out changeset d1df869245f9 (bug 1165515)
Backed out changeset 6876a7c63611 (bug 1165515)
Backed out changeset b7841c94a9a3 (bug 1165515)
Backed out changeset e5e3617f7c73 (bug 1165515)
Backed out changeset 39be3db95978 (bug 1165515)
Backed out changeset 0ec74176f8de (bug 1165515)
Backed out changeset 5b928dd10d71 (bug 1165515)
2015-06-01 17:57:58 -07:00
Eric Rahm
f82c0e7caf Bug 1165515 - Part 13-2: Replace usage of PRLogModuleLevel and PR_LOG_*. rs=froydnj
This is straightforward mapping of PR_LOG levels to their LogLevel
counterparts:
  PR_LOG_ERROR   -> LogLevel::Error
  PR_LOG_WARNING -> LogLevel::Warning
  PR_LOG_WARN    -> LogLevel::Warning
  PR_LOG_INFO    -> LogLevel::Info
  PR_LOG_DEBUG   -> LogLevel::Debug
  PR_LOG_NOTICE  -> LogLevel::Debug
  PR_LOG_VERBOSE -> LogLevel::Verbose

Instances of PRLogModuleLevel were mapped to a fully qualified
mozilla::LogLevel, instances of PR_LOG levels in #defines were mapped to a
fully qualified mozilla::LogLevel::* level, and all other instances were
mapped to us a shorter format of LogLevel::*.

Bustage for usage of the non-fully qualified LogLevel were fixed by adding
|using mozilla::LogLevel;| where appropriate.
2015-06-01 14:31:01 -07:00
Birunthan Mohanathas
470bd9148f Bug 968520 - Add mozilla::fallible to FallibleTArray::AppendElements calls. r=froydnj 2015-05-28 11:07:43 -07:00
Jean-Yves Avenard
53af195bf0 Bug 1163227: Part7. Never do blocking read if we don't have data. r=kentuckyfriedtakahe 2015-05-25 15:09:16 +10:00
Eric Rahm
3925a960aa Bug 1165515 - Part 1: Convert PR_LOG to MOZ_LOG. r=froydnj 2015-05-21 13:22:04 -07:00
Eric Rahm
4879ae86f4 Bug 1165518 - Part 2: Replace prlog.h with Logging.h. rs=froydnj 2015-05-19 11:15:34 -07:00
David Major
dc759e14b2 Bug 1119072: Backed out ce3638e6a659 since it's no longer needed with VS2015RC. rs=cpearce
--HG--
extra : rebase_source : e9569023f28c44293c5dc68da7cceb88aea8b49f
2015-05-18 16:25:21 -04:00
Birunthan Mohanathas
735ccdd101 Bug 968520 - Add mozilla::fallible to Fallible{Auto,}TArray::SetLength calls. r=froydnj 2015-05-18 13:50:35 -07:00
Eric Rahm
4d6eca8317 Bug 1164622 - Part 1: Remove instances of #ifdef PR_LOGGING in media. r=froydnj
PR_LOGGING is now always defined, we can remove #ifdefs checking for it.
2015-05-14 10:13:24 -07:00
Eugen Sawin
04d593a1be Bug 1093815 - Remove ambiguous typedefs. r=kinetik
---
 media/libstagefright/binding/include/demuxer/TrackDemuxer.h    | 4 ++--
 media/libstagefright/binding/include/mp4_demuxer/DecoderData.h | 1 -
 2 files changed, 2 insertions(+), 3 deletions(-)
2015-05-13 15:15:43 +02:00
Eugen Sawin
8597d299a4 Bug 1093815 - Add MP3 track demuxer. r=kinetik
---
 media/libstagefright/binding/MP3TrackDemuxer.cpp   | 755 +++++++++++++++++++++
 .../binding/include/mp4_demuxer/MP3TrackDemuxer.h  | 380 +++++++++++
 media/libstagefright/moz.build                     |   2 +
 3 files changed, 1137 insertions(+)
 create mode 100644 media/libstagefright/binding/MP3TrackDemuxer.cpp
 create mode 100644 media/libstagefright/binding/include/mp4_demuxer/MP3TrackDemuxer.h
2015-05-13 15:15:36 +02:00
Jean-Yves Avenard
0afcf75167 Bug 1159027: Part4. Include ftyp box when parsing init segment. r=kentuckyfriedtakahe 2015-05-11 20:57:37 +10:00
Jean-Yves Avenard
5ad333f5a3 Bug 1159027: Part2. Extend BufferStream to work with external buffer array. r=kentuckyfriedtakahe
Also make BufferStream::AppendBytes fallible
2015-05-11 20:54:59 +10:00
Jean-Yves Avenard
9c019c30fe Bug 1159027: Part1. Add MP4Metadata method to retrieve init segment byte range. r=cpearce 2015-05-11 20:54:54 +10:00
Jean-Yves Avenard
556d935c52 Bug 1156689: Part9. Remove unused headers. r=kentuckfriedtakahe 2015-05-01 15:26:51 +10:00
Jean-Yves Avenard
06c5225d25 Bug 1156689: Part8. Use new MoofParser::HasMetadata in MP4Metadata. r=kentuckyfriedtakahe
This allows MP4Reader::ReadMetadata() to no be unecessarily blocking on partial
init segment.
2015-05-01 15:26:50 +10:00
Jean-Yves Avenard
208ad93cf7 Bug 1156689: Part7. Add MoofParser::HasMetadata method. r=kentuckyfriedtakahe
Allows to check if we have a full MP4 metadata's atom available in our stream.
2015-05-01 15:26:50 +10:00
Jean-Yves Avenard
a8026d01e4 Bug 1156689: Part6. Add ResourceStream class. r=kentuckyfriedtakahe
A Stream abstract over a MediaResource
2015-05-01 15:26:50 +10:00
Jean-Yves Avenard
0e53bf222b Bug 1156689: Part5. Add MP4Metadata class. r=kentuckyfriedtakahe
This allows to abstract the calls to libstagefright and allow future
replacement with our own code.
2015-05-01 15:26:50 +10:00
Jean-Yves Avenard
6049519f68 Bug 1156689: Part2. Remove MP4 Index's libstagefright dependency. r=kentuckyfriedtakahe 2015-05-01 15:26:50 +10:00
Jean-Yves Avenard
e146d4940f Bug 1156689: Part1. Remove mp4_demuxer::TrackType. r=cpearce 2015-05-01 15:26:50 +10:00
Jean-Yves Avenard
84c09b9f81 Bug 1156891: Disable use of stagefright::String8::clear. r=kentuckyfriedtakahe
Some parts of stagefright::String8 aren't threadsafe as they make use of
static shared objects.
2015-04-29 15:38:16 +10:00
Jean-Yves Avenard
71b238d9f4 Bug 1149605: Avoid potential integers overflow. r=kentuckyfriedtakahe 2015-04-26 14:42:37 +10:00
Jean-Yves Avenard
cedf773d19 Bug 1158568: Fix potential size overflow. r=kentuckyfriedtakahe 2015-04-26 16:05:10 +10:00
Carsten "Tomcat" Book
b3ac5654ea Backed out changeset 1b04bf621858 (bug 1158568) for bustage on a CLOSED TREE 2015-04-28 15:39:41 +02:00
Carsten "Tomcat" Book
a4ebdec9ac Backed out changeset 87277085561a (bug 1149605) for bustage on a CLOSED TREE 2015-04-28 15:37:01 +02:00
Jean-Yves Avenard
d51ead79d5 Bug 1149605: Avoid potential integers overflow. r=kentuckyfriedtakahe 2015-04-28 22:28:41 +10:00
Jean-Yves Avenard
aa8f8fc0d2 Bug 1158568: Fix potential size overflow. r=kentuckyfriedtakahe 2015-04-28 22:27:13 +10:00
Nathan Froyd
be6934841f Bug 1157290 - fix modeline in media/libstagefright/moz.build; r=me, DONTBUILD for comment-only fix 2015-04-22 11:24:10 -04:00
Blake Wu
eeb2174b40 Bug 1153876 - Support MPEG-4 Codec, mp4v-es. r=jya. r=cpearce.
--HG--
extra : rebase_source : 596b37eab0d6d77c020b752212063b42ad6f5f3f
2015-04-20 21:57:29 +08:00
Jean-Yves Avenard
0e46a78213 Bug 1154683: Fix potential size overflow. r=kentuckyfriedtakahe 2015-04-20 14:35:45 +10:00