This edits the third party SCTP library, but upstream has already applied this change to master
MozReview-Commit-ID: ERpMc8EvYZ7
--HG--
extra : rebase_source : cea0d3758275b73a395ad2738edd8eb57c833e1a
We've been recording the commit id from the last vendor in
README_MOZILLA inside the various media directories. Since
we now support a --repo switch to pull from forks, record
this info as well, to make it easier to find contiguous
upstream source.
MozReview-Commit-ID: 1RanpkWfAeC
--HG--
extra : rebase_source : b6bd16b56626a871802822385be6f3a24db6cd50
Recent changes made this a public header, so it needs to be
available to callers like AOMDecoder.
MozReview-Commit-ID: KKXcv8bdVYj
--HG--
extra : rebase_source : 87d509a40f3b305e414067af5ed433eef8489fbc
Vendor upstream commit id f5bdeac22930ff4c6b219be49c843db35970b918
to pick up changes since the last import.
--HG--
extra : rebase_source : 6c03c7fcbffbdcf07b2b2819aee6dade2f0e2a0f
As far as I can tell, nothing uses the DISABLE_AVX define
when generating the rtcd headers.
MozReview-Commit-ID: Cc5tufOKP63
--HG--
extra : rebase_source : 6e74569759844e2682e3d16c59bfdefc095f8531
aom_dsp_rtcd_defs.pl checks only whether this key is present
in the config, not whether it is set to true or not. Our script
sets CONFIG_FOO=no for disabled options, while the upstream
build system omits them, resulting in extra symbol declarations
the build will never define.
Work around this by stripping the offending disabled config key
if it is disabled.
MozReview-Commit-ID: IyVDO2G3s3L
--HG--
extra : rebase_source : a1bb8b285f798464b8d8026c0dd4cd85595ae93d
Upstream is using a different syntax, which isn't as nice,
but using the same format makes comparison easier.
Also expect yasm for mingw.
MozReview-Commit-ID: 8PvmyB45AOu
--HG--
extra : rebase_source : a330006adc2093c17ab54fd5f6c1bd88ffe41084
This resolves some issues with building on mingw.
Thanks to Tom Ritter for help developing this patch.
MozReview-Commit-ID: BmJ5TbQAq17
--HG--
extra : rebase_source : 98791b8aab139601f3df4c457a42590a31eeeaea
This removes calls to FATAL() and replaces them with LOG() statements. The
unimplemented functions already returned error codes.
MozReview-Commit-ID: KgXVCIKWoLp
--HG--
extra : rebase_source : 993d3700e734fd6042fc5708261dc58d9987e64b
Some streams do not include any IDR frames. However, they do include SEI recovery point markers. We use those to mark keyframes.
MozReview-Commit-ID: IHfUx7fEgEJ
--HG--
extra : rebase_source : 807b83c2685d8eadd3066cb0cad916e24315e07f
In the case of e10s, the ctx flags for default route only (and less
importantly in this case, proxy only) were not set on the ice ctx
when SetStunAddrs was called in PeerConnectionMedia.
MozReview-Commit-ID: CldUpJfaaH3
--HG--
extra : rebase_source : 6223722275d4741519890d4d2b8436b05ca43155
The main difference between Linux and other platforms is that mozglue is
a static library and doesn't include the allocator, while it is a
dynamic library and includes the allocator on other platforms.
As such, linking against mozglue alone doesn't guarantee everything that
should be linked is linked, which GeckoProgram() does. But since
webrtc-gtest doesn't want to link libxul, we use linkage=None.
--HG--
extra : rebase_source : 552b123cb4ef6a861a49bc5eea0f03b9b5427e8b
Currently we apply the scaleResolutionDownBy factor to the resolution
requested by the quality scaler. This can lead to a cycle where the quality
scaler requests a slightly larger resolution and we scale it down even
smaller than the current resolution.
This changes things so that we only apply scaleResolutionDownBy to the
incoming resolution and then take the minimum of the scaled resolution and
the resolution requested by the quality scaler.
--HG--
extra : rebase_source : 1d16ed60b575c48d43e2e1928c518bc197339cbc
This permits using these functions with non-param types such as AutoTArray.
MozReview-Commit-ID: 3J1bLjgwB9M
--HG--
extra : rebase_source : 897e64b6f1c8d1c8c939a18d2b0813b33bcd8083
The webrtc.org code assumes we will always get a valid decoder for a known payload
type, but this is not true for our builds. This adds a check that we have a valid
decoder before calling IncomingPacket.
MozReview-Commit-ID: GUJR7Qn28vh
--HG--
extra : rebase_source : 6bd5872b59d964c3246708f0e6f549bb74dcc0b3
During my backport of RtpStreamId from webrtc.org, I missed a few
places where RepairedRtpStreamId was used or was not completely
implemented. Also, the webrtc.org code used repairedStreamId,
which is not really correct per the spec (draft-ietf-avtext-rid)
so I fixed all occurances to use the correct repairedRtpStreamId
to avoid confusion later.
The RTP header extensions default IDs for RtpStreamId and
RepairedRtpStreamId were also adjusted to not collide with
PlayoutDelay's default ID.
MozReview-Commit-ID: HSlS8nsKQ29
--HG--
extra : rebase_source : f1bf7fc9ceec22de1c56ef3b7be22fccea01ecdb
This allows sending and receiving arbitrarily (we limit to 1 GiB atm) sized
messages while not relying on the deprecated PPID fragmentation/reassembly
mode. The code already supports the ndata extension but it's not activated,
yet. Without the SCTP ndata extension, a large data channel message will
monopolise the SCTP association. While this is a problem, it is a temporary
solution until the extension is being activated. Keep in mind that every
application that uses data channels currently does fragmentation/reassembly on
application-level and it's unlikely that this will change until the popular
implementations (libwebrtc) implement EOR as well. Moreover, until the WebRTC
API specifies an API that hands over partial messages, doing application-level
fragmentation/reassembly is still useful for very large messages (sadly).
We fall back to PPID-based fragmentation/reassembly mode IFF a=max-message-size
is not set in the SDP and the negotiated amount of SCTP inbound streams is
exactly 256. Other implementations should avoid using this combination (to be
precise, other implementations should send a=max-message-size).
It also changes behaviour of RTCDataChannel.send which now raises TypeError in
case the message is too large for the other peer to receive. This is a
necessity to ensure that implementations that do not look at the EOR flag when
receiving are always able to receive our messages. Even if these
implementations do not set a=max-message-size, we use a safe default value (64
KiB, dictated by the spec) that every implementation should be able to receive,
with or without EOR support.
* Due to the use of explicit EOR, this required some major refactoring of all
send-related and deferred sending functions (which is now a lot less
complex). There's now only one place where `usrsctp_sendv` is being used.
* All data channel messages and DCEP messages will be sent without copying them
first. Only in case this fails (e.g. usrsctp's buffer is full), the message
will be copied and added to a buffer queue.
* Queued data channel messages will now be re-sent fairly (round-robin).
* Maximum message size and the PPID-based fragmentation are configurable using
about:config (media.peerconnection.sctp.force_ppid_fragmentation and
media.peerconnection.sctp.force_maximum_message_size).
* Enable interleaving of incoming messages for different streams (preparation
for SCTP ndata, has no effect until it is enabled).
* Enable interleaving of outgoing messages (disabled if SCTP ndata has not been
negotiated).
* Add pending messages flag to reduce performance impact from frequent calls to
SendDeferredMessages.
* Handle partial delivery events (for cases where a partially delivered message
is being aborted).
* Close a data channel/the connection in case the message is too large to be
handled (this is only applied in cases where the remote peer ignores our
announced local maximum message size).
* Various size_t to uint32_t conversions (message length) and back should be
safe now.
* Remove aUsingDtls/mUsingDtls from DataChannelConnection.
* Set maximum message size in SDP and in the data channel stack.
* Replace implicit NS_ENSURE_*'s with explicit NS_WARN_IF's.
* Add SetMaxMessageSize method for late-applying those signalling parameters
when a data channel has been created before the remote SDP was available.
* Limit remote maximum message size and add a GetMaxMessageSize method for a
future implementation of RTCSctpTransport.maxMessageSize.
MozReview-Commit-ID: FlmZrpC5zVI
--HG--
extra : rebase_source : 54e1b838c788a3abbded4fb32fe7c2788f8a9bc0