The test is rewritten to use mock implementations which are subclassed from real
implementations rather than using conditional compilation and separate classes.
MozReview-Commit-ID: 3jBEtEdNQOB
--HG--
rename : media/webrtc/signaling/test/mediapipeline_unittest.cpp => media/webrtc/signaling/gtest/mediapipeline_unittest.cpp
extra : rebase_source : dcf514c30793b67cc4114acd3f7fa1d01094df26
They can change from one SPS to the next, causing unecessary reconstruction of the decoder.
MozReview-Commit-ID: IhCnLuzGc2i
--HG--
extra : rebase_source : ff6020c10fe9d2eaee7ee8244c92d0c1535239be
We now compare the decoded data rather than the raw data, otherwise as seen in video from bug 1372766, we keep draining the decoder. For some reasons the SPS NALs only differ by 1 byte at a time.
MozReview-Commit-ID: LdXinUZHjD4
--HG--
extra : rebase_source : 0aa768cbcbe5b6df0a2a01df1db61c93537899a2
All decoders appear capable of handling content change when just new PPS appears.
So we restrict the test to SPS changes.
MozReview-Commit-ID: LPSfMaTIj6C
--HG--
extra : rebase_source : f2a757e71dfab7938da4f064d073fc21f99edf53
We will use them to simplify the parsing of the extradata.
MozReview-Commit-ID: 5M5uGXAkkFb
--HG--
extra : rebase_source : bbd641203eb8bdcccb667d1a4e259c1a0462b11e
With some H264 streams, we find that the SPS/PPS NALs are duplicated on the stream. This caused us to treat it as if the content changed due to the discrepency between the extradata found in the MP4 metadata and what found inband.
When scanning for SPS NALs, we now attempt to detect duplicates, and if so ignore them.
MozReview-Commit-ID: D8OVOXSwEkY
--HG--
extra : rebase_source : cbaccee3d2b3d73fc5bf68acb425cb7f34d11fcf
It was only used in one spot, and incorrectly at that.
MozReview-Commit-ID: EWkkrAlYT7W
--HG--
extra : rebase_source : a19afe8f49e1e0fd430ddbff81978eb3511c5fb5
HasSPS, ExtractExtraData and CompareExtraData have nothing to do with the handling of annex B format. They are raw H264 related methods.
It will also prevent in the following change to have cycling references between two headers.
MozReview-Commit-ID: FCs5aU4GcTU
--HG--
extra : rebase_source : a96fe0c70416d38690b0c2f1dee567b0b025e947
Rust expect() is bad in C callbacks. Replace TryFrom() with
from_bits_truncate() to drop any unknown PulseAudio flags.
MozReview-Commit-ID: 4RWFB5iGW6Z
--HG--
extra : rebase_source : 3b05d52ae1295825b4857c41135ff08029ad280c
They can change from one SPS to the next, causing unecessary reconstruction of the decoder.
MozReview-Commit-ID: IhCnLuzGc2i
--HG--
extra : rebase_source : b292c658098c378b0a6774f0f559a7b55e4903f6
We now compare the decoded data rather than the raw data, otherwise as seen in video from bug 1372766, we keep draining the decoder. For some reasons the SPS NALs only differ by 1 byte at a time.
MozReview-Commit-ID: LdXinUZHjD4
--HG--
extra : rebase_source : 022e7a011e3929846f00d1be6590f3ea1c697e7c
All decoders appear capable of handling content change when just new PPS appears.
So we restrict the test to SPS changes.
MozReview-Commit-ID: LPSfMaTIj6C
--HG--
extra : rebase_source : 524316ba61ffff1549a0828685ac657abe687426
We will use them to simplify the parsing of the extradata.
MozReview-Commit-ID: 5M5uGXAkkFb
--HG--
extra : rebase_source : e83c8995ebbc60359029f15334e91baaeb098bbd
With some H264 streams, we find that the SPS/PPS NALs are duplicated on the stream. This caused us to treat it as if the content changed due to the discrepency between the extradata found in the MP4 metadata and what found inband.
When scanning for SPS NALs, we now attempt to detect duplicates, and if so ignore them.
MozReview-Commit-ID: D8OVOXSwEkY
--HG--
extra : rebase_source : e28a8230fce4c0f361c4747fce342667d84bff45
It was only used in one spot, and incorrectly at that.
MozReview-Commit-ID: EWkkrAlYT7W
--HG--
extra : rebase_source : 9c719bbf668eafaac0415580ffdfa0cea0942673
HasSPS, ExtractExtraData and CompareExtraData have nothing to do with the handling of annex B format. They are raw H264 related methods.
It will also prevent in the following change to have cycling references between two headers.
MozReview-Commit-ID: FCs5aU4GcTU
--HG--
extra : rebase_source : b204723cdbb599d4f0a227871ed28f5da39e9cff
The configuration object is spelled with capitals. We didn't
try to build this code on Windows previously, so short-circuit
evaluation saved us from hitting the mistake.
MozReview-Commit-ID: FCGtHW8Dzlw
--HG--
extra : rebase_source : 70676bd436211aa65c7ea447b4aab4bbab61c27a
All the instances are converted as follows.
- nsSubstring --> nsAString
- nsCSubstring --> nsACString
--HG--
extra : rebase_source : cfd2238c52e3cb4d13e3bd5ddb80ba6584ab6d91
Also moving RID (StreamID) storage to the stack to clear up the TODO item
and simplify the code.
When unset the StreamID is stored as an empty string.
Added missing GUARDED_BY on rid_
Added a check to shortcut checking strlen on the StreamId when it is an empty string (which is most of the time).
MozReview-Commit-ID: EPUlPNBXYsQ
--HG--
extra : rebase_source : 08e1b9ea796c991d141164424014d2311ff9341c
New upstream release with only minor cleanup after 1.2-rc1.
- Speech quality improvements especially in the 12-24 kbit/s range
- Improved VBR encoding for hybrid mode
- More aggressive use of wider speech bandwidth, including fullband speech
starting at 14 kbit/s
- Music quality improvements in the 32-48 kb/s range
- More optimizations for x86 (SSEx) and ARM Neon
- Support for directly encoding packets up to 120 ms
- DTX support for CELT mode
- SILK CBR improvements
- Support for all of the fixes in draft-ietf-codec-opus-update-04 (the mono
downmix and the folding fixes need --enable-update-draft)
- Many bug fixes, including integer overflows discovered through fuzzing
(no security implications)
MozReview-Commit-ID: CDVdiu3R4qT
--HG--
extra : rebase_source : df73c8f7b86043237af16947d0fde12d81c122f4
media/mtransport/test/ice_unittest.cpp:353:12 [-Wunused-member-function] unused member function 'Stream'
media/mtransport/test/ice_unittest.cpp:1394:7 [-Wunused-member-function] unused member function 'trickled'
media/mtransport/test/ice_unittest.cpp:1867:8 [-Wunused-member-function] unused member function 'SetExpectedTypes'
media/mtransport/test/transport_unittests.cpp:917:8 [-Wunused-member-function] unused member function 'InitIce'
MozReview-Commit-ID: 70PNtdc92mg
--HG--
extra : source : 5dc220c3efd5bd2f8f844eb85887a4bcfabb3990
extra : intermediate-source : 0751fb1b9b19a8451c5aba7e021bcb386962ce5d
media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp:181:3 [-Wunused-member-function] unused member function 'operator (anonymous namespace)::JSErrorResult &'
And suppress -Wcomma warnings in upstream webrtc code:
media/webrtc/trunk/webrtc/modules/audio_coding/neteq/background_noise.h:98:22: warning: possible misuse of comma operator here [-Wcomma]
media/webrtc/trunk/webrtc/modules/desktop_capture/differ_unittest.cc:187:22: warning: possible misuse of comma operator here [-Wcomma]
MozReview-Commit-ID: FVecnczsWk7
--HG--
extra : source : a651d94c9adcd64690a6acba4629cf7e1b299e3c
extra : intermediate-source : d5cdb25590475e306cdb8b9766a237e22940f7fa
Remove left-over panic! from this function and return default values
of F32NE, just as cubeb_pulse.c does.
MozReview-Commit-ID: 5MgIOSaexF2
--HG--
extra : rebase_source : b1159b09c97df8a41811a85cb0f1674062d5cd92
Update to the latest upstream master of libvorbis (v1.3.5-48-ge5b1378)
to pick up various fixes.
MozReview-Commit-ID: KTXAtrbtWW6
--HG--
extra : rebase_source : e36f22ce74cad13851979722c40f3742dba45f8c
Opus now has SSE, SSE2 and SSE 4.1 optimizations. Enable these
in our build by adding the extra source files and defines.
MozReview-Commit-ID: BKMATikknBU
--HG--
extra : rebase_source : 4eea2529150fe5f4f374127968843e6aa29fecaf
Apply patch from upstream fixing duplicate symbol issue
with the unified build.
MozReview-Commit-ID: 54yOXWanTkm
--HG--
extra : rebase_source : e03f024409bb7e225b456dc747f692ef9e755103
Update our in-tree implementation of the opus audio codec
to the 1.2 release candidiate. This gives us some wider
testing before making the first stable release of the
new series.
This release improves the quality and compactness of encoded
audio, and optimizes performance on ARM NEON platforms.
MozReview-Commit-ID: 30bM6iVBamd
--HG--
extra : rebase_source : 7a679a4ea419dbfb242aeebf220518e2f9397977
Update patch listing files which need to be built separately.
MozReview-Commit-ID: DTTQFGI8LyJ
--HG--
extra : rebase_source : 0eeaba1de3792f1d80d6dfddb4efe2f3ae59f0ae
Handle numbers for SIMD extension versions and variant
spacing in the source file listings.
MozReview-Commit-ID: pbYwDyk2cL
--HG--
extra : rebase_source : e0ab07fc7e80de4a16ec2f93b8e97d25d2a0af53
We were including opus_sources_float even in fixed_point builds
so webrtc could call the audio classifier. Now that that's been
removed in bug 1372622, we can drop the extra sources.
This applies only to Android arm builds.
MozReview-Commit-ID: FiOxRrCGBYm
--HG--
extra : rebase_source : 248f8ba6773dcb03369dc2f47b50fbe31dec8567
Propagate the libvpx AVX flag changes from bug 1279593.
This flag tells the compiler to generate AVX code
in these modules intead of using normal SSE instructions
which can trigger expensive state-switching.
NB: This should only be set for AVX-specific implementation
files; setting this flag for general code will invalidate
our runtime simd support checks.
MozReview-Commit-ID: 5BVeCTsNlup
--HG--
extra : rebase_source : 219b5912a220e960e45ec43a532f407fe18eb41b
Our minimum-supported version of gcc is not 4.9, so we can
remove the work-around patch for the Internal Compiler Error
we encountered with the opus library and 4.8.
MozReview-Commit-ID: IS5zhU2z7fT
--HG--
extra : rebase_source : c9e183a3503ebd672a7b3e82c016147f61662cdc
This is no longer called from anywhere, and because it calls
into private libopus APIs it needs regular changes. Remove
to reduce the maintenance effort.
It was removed upstream per
https://bugs.chromium.org/p/webrtc/issues/detail?id=5676
MozReview-Commit-ID: 3N5wL7iAwkH
--HG--
extra : rebase_source : e04c4272019bf09cae6ebedde77f8d75fe082d31
Propagate the libvpx AVX flag changes from bug 1279593.
This flag tells the compiler to generate AVX code
in these modules intead of using normal SSE instructions
which can trigger expensive state-switching.
NB: This should only be set for AVX-specific implementation
files; setting this flag for general code will invalidate
our runtime simd support checks.
MozReview-Commit-ID: 5BVeCTsNlup
--HG--
extra : rebase_source : 219b5912a220e960e45ec43a532f407fe18eb41b
To avoid a double freeing of pa_context and pa_threaded_mainloop on
error, null out pointers once the object is freed.
Added assertions that pointer are null after destroy()'ing.
MozReview-Commit-ID: 1Ycmkrc2kWe
--HG--
extra : rebase_source : 1074ba307a45f9714b07c66d112a1b4b190c4540
Prefer the vs14 targets since we build for Windows
with cl instead of cygwin's gcc. This corresponds
to Visual Studio 2015.
In practice there is little difference, other the
upstream build system assuming a Visual Studio style
output directory, but this should help pick up any
compiler-specific work-arounds.
MozReview-Commit-ID: 4etKKIEJWws
--HG--
extra : rebase_source : 5d03abdda718ed7811dc5d22cc56586d84d207d9
Update our in-tree copy of the aom reference implementation
of the av1 video codec to upstream git commit id
aadbb0251996c8ebb8310567bea330ab7ae9abe4.
This picks up recent changes and addresses a build issue on win64.
MozReview-Commit-ID: 34LXXzFtEFN
--HG--
extra : rebase_source : 0face926928de6bd1c6a1726df912bd20e363e60
Two things here:
- The default stack size of the thread pool is not very big, it's better to
stick the buffer we need on the object.
- There was a unit mismatch between bytes and samples. This changes the name to
make the unit more obvious, and fixes its usage by dividing by the sample size.
MozReview-Commit-ID: 19bbS6iGvTw
--HG--
extra : rebase_source : bb5c2c074b8c1c3d69e002c8d82f4f72cc57582d
The MoofParser's used by the MP4Demuxer, can grow very large as it keeps adding new tables and is never reset.
Once we have demuxed all data present in the MP4 media segment, we no longer require the samples table for that media segment and we can drop it from the index.
Unfortunately. some websites (in particular some using live video) use media segments containing a single sample in order to (incorrectly) reduce latency. While this is a very bad approach from a performance perspective it does happen in the wild.
MozReview-Commit-ID: I66jxcScmKM
--HG--
extra : rebase_source : d0029b74df94b92dc0a115c77f6e560b30e5ed5c
Access the MediaResource through a MediaResourceIndex, which brings caching
reads (and therefore can avoid some of the repeated locking and IOs from
consecutive read operations).
MozReview-Commit-ID: Crk6ZgLWdw8
--HG--
extra : rebase_source : 9cc8c3577747829e8bd5931e9f48c782d6423fe6
Instead of asking for permission in VideoCaptureDeviceInfoAndroid.java,
we now merely check for permission there. The actual permission prompt
now happens in WebrtcUI.js, using the new
"getUserMedia:ask-device-permission" and
"getUserMedia:got-device-permission" notifications.
MozReview-Commit-ID: DSVPjjW2JNR
Currently, if permission is first denied, the list of cameras is empty.
However, if permission is later granted, the list stays empty because we
never try to refresh the list. This patch causes us to refresh the list
when necessary.
MozReview-Commit-ID: 5eodPCWVyaP
The encrypted data is nonsensical as far as the parsing of NALs is concerned.
MozReview-Commit-ID: Hm1fJf6h2S7
--HG--
extra : rebase_source : b32f56d748ad33afbd227379c1639a5aa449fb84
mfbt's Vector is actually infallible by default, so it would crash in case of
OOM. I'm switching to nsTArray, and using fallible AppendElements in
ByteWriter.
MozReview-Commit-ID: F7TBpCyIlg
--HG--
extra : rebase_source : 54f21d3c6ddb99cb8f83f86a08e2aecf7ce36a31
Includes re-importing gyp files removed from upstream in v56, and then
updating them to match the BUILD.gn file changes.
--HG--
rename : media/webrtc/trunk/webrtc/call/audio_send_stream.cc => media/webrtc/trunk/webrtc/call/audio_send_stream_call.cc
This applies the fix from Bug 1354207 to the libyuv moz.build.
--HG--
extra : rebase_source : 006b869166a0c361fb006226a3769fb975b3dcb7
extra : amend_source : a3f9336cd38d07e37c31ec4f3f0614dee89cb1ed
Still left TODO:
* add an aboutWebrtc.js section
* write tests
MozReview-Commit-ID: DwFxq19KWeu
--HG--
extra : rebase_source : fad3018d851316af83df48c62db16028a1a84b5c
ViERenderer is not used anywhere but has a couple calls to the obsolete
GeckoAppShell orientation listener. The entire ViERenderer.java file is
getting removed in the upcoming WebRTC update, so we should just go
ahead and remove those lines.
MozReview-Commit-ID: AwG7dBg5MV8
This fixes a quality issue with the surround-sound encoder
handling loud signals.
MozReview-Commit-ID: EkzEqs9io6N
--HG--
extra : rebase_source : 15e31af6865f0726beae0a988cb986bd182bac8e
This refactor is for exposing necessary symbols of libpng for freetype2 in a
general way. Currently the necessary symbols of libpng for freetype2 are
exposed only on Android. And whether these symbols are exposed solely depends
on the target platform checking. A better way to decide whether or not to
expose these symbols would be checking the dependency of freetype2 directly.
When I added this check during the modifications for Bug 1345511 (Move
nICEr stun local address discovery to an IPC call to enable future
sandbox restrictions on content process) I originally thought this was
more of an error condition, but it really isn't. It can happen each
time the following method(s) is called:
PeerConnectionMedia::EnsureTransports() ->
GatherIfReady() ->
EnsureIceGathering_s()
MozReview-Commit-ID: Ct3teqXBxWd
--HG--
extra : rebase_source : a116a8423fd999c4746e9375b8f42a6d908a1ea7
- Avoid any potential for this going away from underneath the dispatch
to STS thread.
- Added notes in PeerConnectionImpl on the test-only nature of the
AddRIDExtension, AddRIDFilter, and GetMediaPipelineForTrack methods.
PeerConnectionImpl::GetMediaPipelineForTrack by returning a reference
to the RefPtr instead of a copy.
MozReview-Commit-ID: EwMr9ulKtm8
--HG--
extra : rebase_source : 55c8b14f63020feda57accd2b4b331de708866c4
Now that Chrome release is bundle-aware, let's reapply the patch to
properly emit port 0 for m-lines in sections with the bundle-only
attribute.
MozReview-Commit-ID: 8RftSXIzIpD
--HG--
extra : rebase_source : 6f9c4cb6b322aec7c00060827e1f5e7852f8acfc
Otherwise AnnexB::IsAVCC will return false on those converted samples.
MozReview-Commit-ID: 6OBV6L49InL
--HG--
extra : rebase_source : b4c315583392cfe455d0932f4345a8a02e367f2f
This function is arguably nicer than calling NS_ProcessNextEvent
manually, is slightly more efficient, and will enable better auditing
for NS_ProcessNextEvent when we do Quantum DOM scheduling changes.
I had removed the USE_YASM define in porting the libvpx
moz.build to libaom, to avoid depending on VPX_USE_ASM.
Turns out USE_YASM is a magic context define, without which
the build won't compile libaom's yasm-format .asm files,
so we need to define it for the two intel architecture
source sets.
Restore the define unconditionally for intel targets.
We require yasm in the default build for those targets,
and want to fail if it isn't available to block performance
regressions.
MozReview-Commit-ID: CqGtY8RNLNf
--HG--
extra : rebase_source : ccc7f9dfc467642d9e4c623c55e54e769fb38f2f
We no longer support 32-bit x86 macOS, and
these flags point to configurations we
don't generate.
MozReview-Commit-ID: 3mIfHCf6aUj
--HG--
extra : rebase_source : 35b5089ade7f9d5d03e5f4d3f0760cc969b4b8c7
Now that RID filtering (Bug 1358224) has fixed the intermittant oranges
from Bug 1351531 and 1351590, remove the functionality from MediaPipeline.
MozReview-Commit-ID: 1rED3iaHRCK
--HG--
extra : rebase_source : 5539f9badc99a8abfcf5419b436718233e9ab567
We now have code that unconditionally requires the rust
compiler and are committed to adding more. Remove this
last vestige of conditional support.
MozReview-Commit-ID: EK6FBnAbR
--HG--
extra : rebase_source : 6efda10a74f9ca0482304c2b1ffe6941e42138f8
Result of running generate_sources_mozbuild.sh.
MozReview-Commit-ID: DFmYUs5LRlG
--HG--
extra : rebase_source : 5360198dfe600017d4c5f624cdefe569cdfccc9e
This is a port of the libvpx scripts, themselves a port of
Chromium's scripts to generate an external build description
using hooks in the upstream configure and make scripts.
The libaom library is a fork of libvpx so we can use a similar
approach.
I've put the upstream source in $(topsrc_dir)/third_party/aom
but the build description and any patches are under the media
directory with the other codecs, similar to how zlib works.
Config files and headers generated by the upstream build system
are also under $(topsrc_dir)/media/libaom/.
MozReview-Commit-ID: ATLgOTPD2i1
--HG--
extra : rebase_source : c0fdcdb41a5bac5fdf64f773458cb62937fc9dd8
Turns out since Firefox doesn't receive simulcast streams, we never
noticed this leak. Convert RTPHeaderExtension.rid from a char* to
rtc::scoped_ptr<char[]> so it gets deleted properly. This also
requires a new copy constructor and assignment operator.
MozReview-Commit-ID: Jh4Gp4dAl9g
--HG--
extra : rebase_source : 8c1081fecd6e56a8f932af54fbd294adb85866f5
The simulcast mochitests setup the receiving PeerConnection to receive
simulcast video streams which Firefox doesn't really support. Without
a test media server, this is about the best we can do and still test
simulcast.
Unfortunately the two simulcast streams arriving with different ssrcs
(as expect) exercises code we have to deal with some services switching
ssrcs midstream. In the tests, this causes intermittent failures
because the test is waiting to receive a certain ssrc, and the receiving
VideoConduit has switched to the other ssrc.
This change adds the ability to filter on RID at the MediaPipeline level,
which we can setup prior to media flowing. This avoids the ssrc switching
issue since the VideoConduit only receives one ssrc until we change the
RID filter to the second RID. At that point, the VideoConduit sees a new
ssrc and the switching code works as intended.
The modified mochitests setup the RTP stream id header extension, and then
filter on each of the RTP stream ids in turn.
MozReview-Commit-ID: KApfaxMX8rl
--HG--
extra : rebase_source : d7ae88d9675acd7b3700f342ca6a68d0bbb0ced5
The simulcast mochitests exhibit an intermittent failure due to ssrc-based
filtering that can be solved by filtering by RID. The RTP header parser
used in MediaPipeline also needs to have the RID RTP header extension
specified in order for it to properly parse the RTP header and allow
filtering on RID.
MozReview-Commit-ID: E54HCGLVYDk
--HG--
extra : rebase_source : b53085f23cb6558611aa7622f55637e19439c9c3
Pull recent changes from the upstream nestegg webm parser
repo. This include a definition of NESTEGG_CODEC_AV1 for
supporting the Alliance for Open Media's AV1 video codec,
and a fix for an unitialized variable warning.
MozReview-Commit-ID: EC1WsaFYlqo
--HG--
extra : rebase_source : 22139c35e505b9cf3c165ff76cdfaaea953baf4d