In addition to the returned MediaResult, a special number-of-tracks value
(not just 0) indicates an unrecoverable error.
For Rust-vs-Stagefright comparison purposes, an error is considered the same
as 0 (because Stagefright never returns errors, but Rust may, so complaining
about that would be too noisy, and useless to us.)
MozReview-Commit-ID: IwadWSOIWr4
--HG--
extra : rebase_source : 29f53ee6a02a0431adb0b615a122a4e7b480108c
The returned MediaResult is used as error or warning in MP4Demuxer::Init().
MozReview-Commit-ID: Bnv4xG8bCJ4
--HG--
extra : rebase_source : c1952ed61396834b0cd7da58c9b64481a5c46ab1
This was meant to be temporary, and we can remove it now.
MozReview-Commit-ID: 2A9RKIabYIZ
--HG--
extra : source : e6cd7e39bfdd77772ffd3a36448b7763db7ec6d1
extra : histedit_source : dcb1bd9d144aaa9abeef38107a6ee6d85cdf7b2f
The webrtc gyp files have a 'build_for_tool' flag that controls among other
things what defines are provided at build time. This meant that during a
firefox valgrind build webrtc would still specify NVALGRIND, thus disabling
some valgrind macros. Similarly there are flags for asan and tsan that we
should probably have been specifying as well. This patch sets the
'build_for_tool' flag to the appropriate value when building under valgrind,
asan, and tsan.
This updates mtransport logging to explicitly include prlog.h and defines
MOZ_MTLOG in terms of PR_LOG rather than MOZ_LOG when building outside of XUL.
We used to get the symbols we need using `LoadLibrary`, but now (since
661c653c86),
we can statically link to avrt.lib, because we only support Windows OSes that
have this library. For now, this works because avrt.lib is linked in
webrtc-land somewhere with a #pragma, but:
- We're going to stop using this bit of webrtc in the near future (around
Firefox 54)
- Not linking this explicitely where it's used breaks --disable-webrtc, that is
a popular option
MozReview-Commit-ID: 7b16Kdl3VUu
--HG--
extra : rebase_source : b4159872427b4e9d912e1228e75563ca9a8e828d
The WMF decoder gives us video frames in buffers with the planes 16 row-aligned
for some reason. If we allocate our video frames the same size we waste memory.
So let's have the ClearKey CDM not allocate its video frames with the extra
padding rows.
Excluding the padding in our copy of the decoded data also makes my work in bug
1351953 easier.
MozReview-Commit-ID: 9dD40P6ST68
--HG--
extra : rebase_source : a6c4fea01e8bf2deef8edc78d0a041e8fed0c0b8
extra : source : 433028f9a2055869cd98710f0871d040605c0535
The support to namespace prefixing in moz-cheddar means we
can simplify exported enum names on the rust side. However
this makes for some spelling changes on the C side.
MozReview-Commit-ID: 4t6NDusx0uI
--HG--
extra : rebase_source : 1c1221507ce42965486d79e6809d1541f6410f55
This adds a stub implementation for nsTraceRefcnt::WalkTheStack which we're
pulling in from <mozilla/Assertions.h> in some debug builds.
MozReview-Commit-ID: 6wVghIfKWWZ
--HG--
extra : rebase_source : 1e8472935c7f8ac486794fab764e08b30eea79ed
This adds a moz.build file for the tests. The alternative would be to hack up
the gyp files. Since gyp support has already been removed from upstream, this
does not really buy us anything as far as maintainabily goes. Once gn support
is available in our build system, we can remove this moz.build file and use
the gn files instead.
The include paths for the gtest and gmock headers in the webrtc.org tests are
not compatible with where we export the headers. We could patch each unittest,
but the include location has already changed upstream making this painful
to maintain. Instead, we duplicate the relevant headers to the expected path.
MozReview-Commit-ID: 1ADUAMxTCFq
--HG--
extra : rebase_source : 2cc10faa7018ee8af8e8f3d7805265ed2dd89507
This adds gflags to the list of ignored directories for clang static
analysis and adds "explicit" where required in mutex.h.
We also stop building a duplicate copy of snprintf for windows as our builds
already include a definition for it.
MozReview-Commit-ID: 4uMhTMvAKL0
--HG--
extra : rebase_source : d63d3797053c7720c725b3994cb3b2ca11bb191f
These were written for the signaling tests but are no longer needed there
because those tests link against libxul. They are still useful for the
webrtc.org unit tests, so we should move them there.
MozReview-Commit-ID: GVskiZebq19
--HG--
rename : media/webrtc/signaling/test/FakeIPC.cpp => media/webrtc/trunk/gtest/FakeIPC.cpp
rename : media/webrtc/signaling/test/FakeIPC.h => media/webrtc/trunk/gtest/FakeIPC.h
extra : rebase_source : 57b70f5dd3a55e73de0b066f228ddf957f477c26
Building these as part of the webkit lib adds unnecessary dependencies on Mozilla code for things that only case about the webrtc static lib.
MozReview-Commit-ID: 7ThU7hAwRX0
--HG--
extra : rebase_source : eef256711e205d023a647e6196dcc61e657f6e28
Two new calls are added to NrIceCtx.
1) A static call to allow StunAddrsRequestParent to get stun addrs from the main
process.
2) A call to allow StunAddrsRequestChild to pass the new stun addrs back to
PeerConnectionMedia on the content process.
PeerConnectionMedia, when running in e10s mode, sets up the StunAddrsRequestChild
and makes the async request to get the stun addrs. When they are returned, it
sets the stun addrs in NrIceCtx avoid the network calls that would otherwise
cause a further restricted sandbox to fail.
MozReview-Commit-ID: C2hYBzm6WNv
--HG--
extra : rebase_source : 4c71056850c418efdc0f709f4d838a3e0bf4bee2
PStunAddrsRequest.ipdl defines the new IPC protocol to get stun
addrs on the main process.
StunAddrsRequestChild requests the stun addrs from the parent.
StunAddrsRequestParent uses a static method on NrIceCtx to get the
stun addrs from the STS thead and sends the addrs back to the
child process.
NrIceStunAddr (nricestunaddr.{cpp|h}) wraps nr_local_addr and makes
it easier to serialize/deserialize over IPC.
NrIceStunAddrMessageUtils follows the pattern used by other Necko
IPC classes to define top-level serialization/deserialization
calls used by the IPC framework.
Modifications under netwerk/ipc are to connect the new IPC
protocol to get stun addrs to PNecko since it is a network
related IPC protocol.
MozReview-Commit-ID: GyEapBe5krl
--HG--
extra : rebase_source : c650d6aa4f7928bcae6032424303869074a755d4
Expose a tweaked version of nr_ice_get_local_addresses to allow callers to
provide pre-fetched stun addrs if they are available. By default, the normal
call to nr_ice_gather calls this with no pre-fetched stun addrs (read
non-e10s). In e10s, the stun addrs are discovered on the main process and
provided to nr_ice_get_local_addreses. When nr_ice_gather is called from
the content process the local addresses have already been gathered.
In the past, nr_ice_get_local_addresses also applied policy (by removing
duplicate addrs, and, based on stun prefs, removing loopback and/or
link_local addrs. This functionality has been moved to
nr_ice_set_local_addresses where other policy is being applied (like
default route only, forcing specific interfaces, and prioritization).
Because we're now serializing nr_local_addr (wrapped by NrIceStunAddr), we
can't assume that certain pointer references in the source nr_local_addr
are correct when calling nr_local_addr_copy. New non-pointer-arithmetic
version of setting up the pointer on the copied nr_local_addr is used. Also
easier to understand when walking up to it the first time.
MozReview-Commit-ID: KVRFl4dfr7J
--HG--
extra : rebase_source : c0437700ad77ee3b7f98947d3505551ca9ed43e9
Omitting the RTT when it is not available breaks a lot of tests (as jesup warned).
I am going to fix the RTT behavior and the tests in bug 1344970, for now RTT will
be zero when unavailable.
MozReview-Commit-ID: 9x3eQfbM3ZT
--HG--
extra : rebase_source : f8d46d7232455a3038fd99ffb6cc14111c44a794
There's an antipattern where nsLiteralString is used as an unnecessary intermediary in converting from CharT* to CharT*,
e.g. CallAFunctionThatTakesACharPointer(NS_LITERAL_CSTRING("foo").get());
or
NS_NAMED_LITERAL_STRING(foo, "abc");
CallAFunctionThatTakesACharPointer(foo.get());
This patch rewrites the callsites that can be trivially changed to use char*/char16_t*.
I'd somewhat like to remove nsTLiteralString::get() altogether, but in code that's less straightforward than these examples, get() is useful enough to keep.
MozReview-Commit-ID: Kh1rUziVllo
--HG--
extra : rebase_source : c21a65694d6e1c42fd88f73632f7ac8f38d005ae
There's an antipattern where nsLiteralString is used as an unnecessary intermediary in converting from CharT* to CharT*,
e.g. CallAFunctionThatTakesACharPointer(NS_LITERAL_CSTRING("foo").get());
or
NS_NAMED_LITERAL_STRING(foo, "abc");
CallAFunctionThatTakesACharPointer(foo.get());
This patch rewrites the callsites that can be trivially changed to use char*/char16_t*.
I'd somewhat like to remove nsTLiteralString::get() altogether, but in code that's less straightforward than these examples, get() is useful enough to keep.
MozReview-Commit-ID: Kh1rUziVllo
--HG--
extra : rebase_source : c21a65694d6e1c42fd88f73632f7ac8f38d005ae