This lets us separate tracks by ownership like so:
* Input - Owned by the producer of the DOMMediaStream (gUM etc.)
* Owned - Contains Input tracks (per above) or tracks cloned tracks
if this DOMMediaStream is a clone.
* Playback - Contains Owned tracks plus tracks addTrack()ed to this
DOMMediaStream minus tracks removeTrack()ed from this
DOMMediaStream.
This allows for tracking the input track of an added track (for
ProcessedMediaStream tracks; SourceMediaStream tracks don't have input
tracks) directly in the NotifyQueuedTrackChanges handler, which will be
necessary for locking MediaInputPorts to specific tracks.
gfxIntSize is just a typedef of gfx::IntSize, so this is very mechanical. The
only tricky part is deciding for each occurrence whether to replace it with
IntSize, gfx::IntSize or mozilla::gfx::IntSize; in all cases I went with the
shortest one that worked given the existing "using namespace" declarations.
MetaData.h uses multi-char literals. This is kind of gross but probably safe
and hard to change, so this patch allows it while disallowing all other
compiler warnings. (This approach is already used in dom/media/moz.build.)
(An aside: I originally tried using |#pragma GCC ignoring -Wmultichar| to
temporarily disable the warnings in MetaData.h. But that works in gcc but not
in g++ because of https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53431!)
Improve use of TCPSocket to track in-flight writes and suppress extra runnables
Adds lots of logging to nr_socket_buffered_stun.c
Rework mtransport code to use new TCPSocketChild interface
This is less error-prone and somewhat easier to read.
Based on a patch from Joshua J. Drake and suggestions
from Andrea Marchesini.
NB CheckedInt<T>::value() returns a T, so the comparison with
SIZE_MAX should always succeed. Doesn't warn on clang though.
The VP8 encoder was re-initialized completely when the frame size changed
instead of calling the vpx_enc_config_set() method. The work around is not
longer needed.
Previously we asserted if we tried to read past the end
of a buffer in parsing H.264 SPS headers. This only affected
debug builds, but the failures were reported as crashes in
automated testing.
Therefore, commute the assert to a warning and silently accept
bad data of this type. The read is safe with the first assert
removed because of the subsequent check, and a similar one in
the parent class.
Even though we compile C code as C99, we used to need
-Wdeclaration-after-statement because MSVC didn't allow declarations after
statements.
However, Visual Studio 2013 added support, so we can now merrily mix
declarations and statements everywhere. Hooray.