It's not maintained and probably does not work anymore.
Differential Revision: https://phabricator.services.mozilla.com/D5438
--HG--
extra : rebase_source : ccd622e40844dda5d16266e49991462d4ea94224
For now, the H264 decoding support is rather sturdy. It handles change of resolution and content smoothly thanks to the H264Converter.
The VP8/VP9 one however, not so much.
So we make a preference to only enable H264 for now.
Depends on D7895
Differential Revision: https://phabricator.services.mozilla.com/D7908
--HG--
extra : moz-landing-system : lando
The only consumer of this code was Singleton, which we previously
removed, and everything that this code accomplished can be done more
simply and more foolproof-y by standard constructs these days.
When we remove singleton.h, some webrtc code will be unhappy, because of
cargo-culted definitions from singleton.h or included headers. Let's
fix those first
These are identical to the 32 bit versions and so are no longer necessary to correctly
generate moz.build files for windows.
Depends on D7101
Differential Revision: https://phabricator.services.mozilla.com/D7102
--HG--
extra : moz-landing-system : lando
This patch sets mDecoderStatus from the GMPThread so we can eventually report
an error back to the caller. Since this done during an asynchronous call, there
is no guarantee that the error will be associated with the correct frame, but
this workaround should eventually cause an error to be signalled, so that a
PLI can be requested and video will not freeze.
--HG--
extra : rebase_source : 2c32de4218b97ce1a47c5ec118cc864fff786060
webrtc.org is picky about resolutions for simulcasst layers.
As of current it will assert that all layers have identical aspect ratio.
We handle this by ignoring layers where the aspect ratio is not the same as
the highest layer's.
The new algorithm will, when simulcast is requested and at least one layer
is scaled to something other than 1.0, try to remedy this by:
- The highest resolution layer is cropped to 16-pixel alignment, to ensure
that scaling options exist.
- A separate VideoAdapter is used for simulcast layers, with the highest
layer's resolution as an aspect ratio requirement. This forces the
simulcast adapter to retain that aspect ratio in any scaling decisions.
This doesn't make scaling decisions spec-compliant (floor the width and
height respectively) but it does allow for control of scaling via
setParameters and keeps scaling decisions in upstream code to ensure
good compat with upstream's part of the pipe; encoders, etc.
Differential Revision: https://phabricator.services.mozilla.com/D4133
--HG--
extra : moz-landing-system : lando
A failure here typically indicates a test error, so it's useful for debugging.
Differential Revision: https://phabricator.services.mozilla.com/D4124
--HG--
extra : moz-landing-system : lando
Because all Rust crates in the tree are vendored, using the wildcard
"*" version dependency could have unintended reprecussions on
rsdparsa if another crate changes its log version dependency.
This patch, along with the others associated with this bug, upgrades
the log crate to 0.4.* throughout. This has the benefit that we
can get rid of the duplicate vendored log crates in third_party/rust.
This enables us to configure it for cropping to a certain resolution alignment in a future patch.
For instance with simulcast, so we don't have to skip a layer because it is impossible to scale
the highest layer any further without losing the aspect ratio.
--HG--
extra : rebase_source : 4560c60dfa95213b2f3357d0b279c07835402b33
extra : source : e80af22a3bf37ad8fa5762d9a16d677d2befd470
Summary:
The fix for Bug 1409018 accidentally removed saving the current desktop
configuration during Init() which causes it to not be set when a different
screen is selected, meaning that regardless of the choice made, only the
first screen is captured.
Reviewers: pehrsons
Tags: #secure-revision
Bug #: 1487419
Differential Revision: https://phabricator.services.mozilla.com/D5062
--HG--
extra : rebase_source : bb4f9a0f4e06dfbd9730b7af4a0748749d72c3da
This restores the separate mediapipeline and RtpLogger lazy log modules that
were unified with the Signaling log module in Bug 1402334.
Differential Revision: https://phabricator.services.mozilla.com/D4478
--HG--
extra : moz-landing-system : lando
This fixes two problems:
1) On Windows, isdigit() is locale-dependent.
2) On platforms where char is signed, sign-extending char to int and passing
the result to isdigit() was UB when the high bit was set, because
isdigit() is defined to take a (signed) int with the value space of
unsigned char or EOF.
MozReview-Commit-ID: D1lY88PEcpc
Differential Revision: https://phabricator.services.mozilla.com/D4316
--HG--
extra : moz-landing-system : lando
When building binaries for Linux/aarch64, ./mach configure cannot generate
Makefile by the following error. So we need Linux/aarch64's gn-configs.
1:07.80 mozbuild.frontend.reader.SandboxValidationError:
1:07.80 ==============================
1:07.80 FATAL ERROR PROCESSING MOZBUILD FILE
1:07.80 ==============================
1:07.80 The error occurred while processing the following file or one of the files it includes:
1:07.80 /hg/mozilla-central/media/webrtc/trunk/webrtc/common_audio/common_audio_c_gn/moz.build
1:07.80 The error occurred when validating the result of the execution. The reported error is:
1:07.80 Source file should only be added to UNIFIED_SOURCES once: /media/webrtc/trunk/webrtc/common_audio/signal_processing/complex_bit_reverse.c
Differential Revision: https://phabricator.services.mozilla.com/D3607
--HG--
extra : moz-landing-system : lando
Added additional fmtp comparison for the parsing resutl comparer by
implementing the C++ == operator for SdpFmtpAttributeList.
Differential Revision: https://phabricator.services.mozilla.com/D3228
--HG--
extra : moz-landing-system : lando
Removed the enum RustSdpAttributeType and replaced it with the SdpAttributeType enum.
MozReview-Commit-ID: IcJnbnWa4IB
--HG--
extra : rebase_source : befb118948740122dbbdd033e20176351bdd2884
Added a telemetry probe that records failed rsdparsa parsings and whether the sipcc result contains errors.
MozReview-Commit-ID: BHfDRy8MyfZ
--HG--
extra : rebase_source : 9b03f1a8d0655926af1e561cc27e5549490616b2
When a transceiver is stopped, its mid should not be reused by a new transceiver.
Differential Revision: https://phabricator.services.mozilla.com/D2518
--HG--
extra : moz-landing-system : lando
Renamed the pref media.webrtc.rsdparsa_enabled to media.peerconnection.sdp.rust.compare
Added the pref media.peerconnection.sdp.rust.enabled
Added both to all.js
media.peerconnection.sdp.rust.compare: Controls whether the parsing result comparer for sipcc and rsdparsa runs or not.
media.peerconnection.sdp.rust.enabled: Controls whether the rsdparsa runs in parallel to the sipcc parser.
MozReview-Commit-ID: Ac5P7T2NBYD
--HG--
extra : rebase_source : afd60243ccba27965bea193bbe29d91bf7bf2644
Removed the enum RustSdpAttributeType and replaced it with the SdpAttributeType enum.
MozReview-Commit-ID: IcJnbnWa4IB
--HG--
extra : rebase_source : 5a446b1624f763c6db02419c525a324ee18a2f69
Added comment stating that these are unused: label, ice-mismatch and connection
Handled rtcp-rsize attribute.
MozReview-Commit-ID: JdWfq0PR480
--HG--
extra : rebase_source : f92a1aec957672202fbd93a4ef5c6cbd1757a15a
Static analysis reveals that there are several places we could be using const references in PeerConnectionImp. This patch addresses all of those places.
Differential Revision: https://phabricator.services.mozilla.com/D2304
--HG--
extra : moz-landing-system : lando
Added SDP candidate serializaton in rust
Extended Rust unit test for candidates
Added C++/Rust glue code for candidates
Added free_boxed_string_vec
MozReview-Commit-ID: CeVM2p47fQ7
--HG--
extra : rebase_source : 5d49e3a39af3395cf16bedef387728d7de663271
Improved the error checking in the fingerprint parsing
Changed the way the fingeerprint stores the hash algorihtm to an enum.
Extended the rust unit test for fingerprint
Fixed C++ unit tests
MozReview-Commit-ID: AS2FroZxDNv
--HG--
extra : rebase_source : be0b6d5c390ffaa90c9371436ece717e5e4e002c
Added imageattr parsing in rust.
Expanded the imageattr test cases in rust.
MozReview-Commit-ID: IeMkbrbJAoe
--HG--
extra : rebase_source : 05e4105983e7d735bce21de3bd4e99da754589ed
RTCRtpStreamStats.ssrc used to be a DOMString but is now an unsigned long.
When gathering this stat it needs to be constructed accordingly.
MozReview-Commit-ID: IOq9IQQxFVh
--HG--
extra : rebase_source : 3c5fc6144f6fa0435fc1ccce1a3fa371b9ffc162
Added C++/glue code for the dtls-message attribute.
Enabled the C++ unit test CheckDtlsMessage.
Added a branch in the rust parsing that discardes dtls-messages on media level.
MozReview-Commit-ID: 9tcWOtH8GbV
--HG--
extra : rebase_source : 4853e51e1cc6734760c243da8e27dc714c89d219
Added dtls-message parsing in rust.
Added a rust testcase for the dtls-message parsing.
MozReview-Commit-ID: G8boBkxlJmX
--HG--
extra : rebase_source : 40ee205294adf099f51321ec7bde8cbff5db6297
Added the C++/Rust glue code for the rtcp-fb transport-cc type.
Extended the C++ unit test CheckRtcpFb
Extended the Rust unit tests for rtcp-fb.
MozReview-Commit-ID: 26hAexM0QeV
--HG--
extra : rebase_source : 1615700ac62ee5d61a26ad7234d42b82e4151109
Added support for whitespace in source-level attributes
Extended C++ unti test CheckSsrc
Extended Rust unti test for ssrc
MozReview-Commit-ID: 1xiYyZBYf5o
--HG--
extra : rebase_source : 26d8ee11592e40fa1c25021b86953c72b14636a7
Updated rsdparsa to 75d5c6df6728fbab502db06940062e0358536f9f from github
upstream
MozReview-Commit-ID: 9hr7DV6KTkK
--HG--
extra : rebase_source : c5b2c003e76489e267390402ebb5947cf3ec48b6
Added a bool field in RustSdpAttributeExtmap that tracks whether the direction was specified.
Added the correspodning C++/Rust glue code
MozReview-Commit-ID: yGL8yTDb49
--HG--
extra : rebase_source : d65f35051338673062d13b7bde591de880052558
Early bailout was preventing mDescription from getting set in MediaPipeline::SetTransport.
MozReview-Commit-ID: HIIva7R3fLe
--HG--
extra : rebase_source : 847b001372e6aedf59fc8f3f38b57a2a51b0f4e1
Summary:
I think the webrtc.org gtests are the only user of gflags in tree. We can switch
over to using gn to build this when we start building the tests using gn,
which is Bug 1430779.
Tags: #secure-revision
Bug #: 1371485
Differential Revision: https://phabricator.services.mozilla.com/D1802
--HG--
extra : rebase_source : ba496d6f262d3679031f0b933a80ce3e2a2236a5
Added the C++/Rust glue code for maxptime.
Added the C++ unit test CheckMaxPtime.
MozReview-Commit-ID: 58Qbrpktxwx
--HG--
extra : rebase_source : 1aed17367e230f0e397b196b759deaf18e4a3fd8
Changed parse_sdp to use StringView instad of raw pointers
Fixed all TODOs by using the existing StringView::into trait instead of doing a manual string conversion.
MozReview-Commit-ID: 5m7rLAu8vwS
--HG--
extra : rebase_source : f34cf389829772b4ca84d7ba895a8b71bd620f64
Fixed the signature of the sdp_get_groups function in the C++/Rust glue code.
MozReview-Commit-ID: PljpUKk829
--HG--
extra : rebase_source : 92e221ce5e437bf5a994740f3b34f7336668e431
Nothing to do for this bug. All TODOs were solved by previous tickets.
MozReview-Commit-ID: JFvWvGRlJvy
--HG--
extra : rebase_source : e402f5844508f5b9809b9ad40184f88aba3574be
Added sanity check to check if the send rid in simulcast is defined by any send rid.
MozReview-Commit-ID: GISzaQqdqBI
--HG--
extra : rebase_source : 32416045cdb8c96dff72ee74d1d84121323d358f
Summary:
TaskQueue no longer requires an explicit call to BeginShutdown() as such we no longer have a need for AutoTaskQueue.
Depends on D1621
Tags: #secure-revision
Bug #: 1409664
Differential Revision: https://phabricator.services.mozilla.com/D1622
Removed all occurances of GetSsrcGroup in the C++/Rust and C++/sipcc glue code
Removed C++ unit test CheckSsrcGroupInSessionLevel
MozReview-Commit-ID: DImctiH6mUo
--HG--
extra : rebase_source : afd243f5658114f017d94d8bc9527b734901c303
Removed the code setting the channels for an rtpmap attribute in the C++ glue code.
Added Rust code that accounts the data in SdpMedia accordingly for rtpmap.
MozReview-Commit-ID: 2D5MVLJxXoh
--HG--
extra : rebase_source : ae54885e3d2cccdd04f5f758bddcf2d134f3a843
Added C++ unit test CheckAddDataChannel
Added C++ unit test CheckAddDataChannel_Draft05
MozReview-Commit-ID: HsSdFb0nKUe
--HG--
extra : rebase_source : 18fc6f3bdc04ea0983ce5376177a41df68b93ac2
Added sanity check that ensure that there is either a connection on the session level or in each media secion.
Extended create_dummy_sdp_session
Alterted Rust unit tests:
parse_minimal_sdp_with_emtpy_lines
parse_minimal_sdp
MozReview-Commit-ID: yVEhUvns57
--HG--
extra : rebase_source : ea354701995bf62c4231e654d12ad038a6e29bb0
Unknown group semantics are no longer an error but a warning indicating that the lines was skipped.
Made rust unit test test_parse_attribute_group more explicit.
MozReview-Commit-ID: 7adMSzH195H
--HG--
extra : rebase_source : b5edcdd389d5435808cb4faed5b8bf816774d0e4
Added Rid attribute parsing
Added C++/Rust glue code for the rid attribute
Added SdpInternalError for ParseFloatError
Added Rust unit test for parse_rid in Rust
Added U16Vec in C++/Rust glue code.
The C++ glue code no longer parses rid attributes on his own if the rust parser is used.
Reworked Simulcast parsing in rust
Added C++/rust glue code for Simulcast
Enabled CheckSimulcast c++ unit test
Added sanity check, that checks for simulcast rids that have nt been defined
Enabled ParseInvalidSimulcastNoSuchRecvRid C++ unit test
Added comments with bug number to remove redundant parsing functions.
Removed C++ unit test ParseInvalidSimulcastNoSuchPt
Added C++ unit test ParseInvalidRidNoSuchPt
Added sanity check for rid pts.
MozReview-Commit-ID: 7rvsOKIbxVP
--HG--
extra : rebase_source : abfc74e5f57b51158cf9acdf81078e5a4147fb29
Implemented RsdparsaSdp::AddMediaSection
Added sdp_add_media_section to Rust/C++ glue code
Added SdpSession::add_media in Rust
Added C++ unit test CheckAddMediaSection
MozReview-Commit-ID: 8cUviY3atsb
--HG--
extra : rebase_source : 8efee17758cdfd4927f630c383ec281db5a6a9ef
This defers the call to register the refresh and move handlers to the
CaptureFrame() call so that they will be registered on the ScreenCapture
thread.
This also calls CFRunLoopInMode to process any pending sources in the
run loop corresponding to the ScreenCapture thread so that the
refresh and move notifications are received.
MozReview-Commit-ID: G4aEchnGuUz
--HG--
extra : rebase_source : b74d95015cccb2efa64a711a1824adb379531ca2
Added C++/Rust glue code
Added a u8 vector view in the C++/Rust glue code
Added fmtp attribute parsing in rust
Added the option to check for warnings that appeared in the rust parsing
Changed gtest CheckRedEmptyFmtp to check for errors in case of sipcc and check for warnings in case of rust
Extended rust fmtp testcases in rust
MozReview-Commit-ID: EXymPPKWVZk
--HG--
extra : rebase_source : a886880463c3b333c4743ef520eac4c76dc86d5b
Merged Rsdparser changes from github to mozilla central.
This includes: Syntax fixes for older rust versions
The TransportCC parameter for rtcp-fb
Serialization marcos and code
MozReview-Commit-ID: JqYttvTx2QS
--HG--
extra : rebase_source : 4f0c9e374fcdbd01d729cda2ddbfe5c67bf6cbc9
Added a sanity check, that checks for recvonly and whether simulcast defines send options
MozReview-Commit-ID: Hi5U9ZZVKY8
--HG--
extra : rebase_source : 67aa4d6cea6ad7d3956ce606c529e6023e9e5382
Moved RustSdpAttributeType and renamaed it to SdpAttributeType
Replaced the has_extmap_attribute functions by a generic has_attribute function
Added a sanity check, that checks for sendonly and if simulcast defines receive options
MozReview-Commit-ID: DXAEVu0SRap
--HG--
extra : rebase_source : c5732414f6e199c1e6a85d7d47921ca6ee601550
This refreshes the gn-generated moz.builds with the change from previous
commit. Somehow, this does unrelated changes, there must be something
funky in the gn-moz.build-generator.
--HG--
extra : rebase_source : 7e1a9d75f7a80c0981b2534e4959ada6c611bae2
This was done automatically replacing:
s/mozilla::Move/std::move/
s/ Move(/ std::move(/
s/(Move(/(std::move(/
Removing the 'using mozilla::Move;' lines.
And then with a few manual fixups, see the bug for the split series..
MozReview-Commit-ID: Jxze3adipUh
Implemented Rust/C++ glue code for rtcp-fb
Implemented parsing support for rtcpfb-wildcard in rust
Activated c++ unit tests
MozReview-Commit-ID: 5xRSQz7pucZ
--HG--
extra : rebase_source : 97fdfda9134197381d16e0a61dda5357bba9e9da
This adds a FocusOnSelectedSource method to PCameras and uses it to focus the
selected window while window sharing. We can't just focus the window as soon as
it is shared because we have a live preview in the getUserMedia permissions
prompt which would cause the prompt to lose focus. Instead, this only focuses the
window when the sharing is not done from a chrome context.
MozReview-Commit-ID: 5jre75E3JLi
--HG--
extra : rebase_source : 5f5154fc9fc7590cc02eb25146e5bc20b2243fa3
This adds a FocusOnSelectedSource method to PCameras and uses it to focus the
selected window while window sharing. We can't just focus the window as soon as
it is shared because we have a live preview in the getUserMedia permissions
prompt which would cause the prompt to lose focus. Instead, this only focuses the
window when the sharing is not done from a chrome context.
MozReview-Commit-ID: 5jre75E3JLi
--HG--
extra : rebase_source : 97f472f6ed1c5d6bed1af01fb7243a82b2629b03
We currently set the Android JavaVM pointer in MediaEngineWebRTC.
However, because of that, we end up setting the pointer in the child
process, even though we really want to set the pointer in the parent
process because that's where the camera will be accessed.
This patch makes us set JavaVM inside VideoEngine itself, where we
actually access the camera in the parent process.
MozReview-Commit-ID: 3TeLiiK2vyh
This removes the dispatch to the sts thread prior to calling
AudioConduit::InsertDTMFTone. There are assertions in ChannelProxy which
restrict the methods there to running on the main thread, so the current
code crashes immediately when inserting a tone in a debug build. The
inserted DTMF event ends up in a queue, so there is no reason not to just do
the insertion from the main thread.
MozReview-Commit-ID: G8JM9QDLrGF
--HG--
extra : rebase_source : 65168ee08efa5fc1960e35fd5acf4bdde0420b84
This allows removing locking, and allows other threads to progress without
taking the lock, hence lowering the probability that the lock will be taken for
a long time when we need to pull NeqEQ.
MozReview-Commit-ID: HMO67A0hher
--HG--
extra : rebase_source : aa5c77895eb57d60b61d9a8a5822e53593348830
We made NotifyPull parallel to try to lower the load, and we initially measured
an improvement. However, we did the measurements with a profiler that did an
aggregation of the results. Our results had an high variance, so the mean load
was in fact not meaningful.
More careful measurement performed without doing any aggregation show that,
under load, relying on the fact that the scheduler schedules the tasks on time
is too risky, and that the code is fast enough to not have to parallelize.
MozReview-Commit-ID: CMhSn8Sc0OO
--HG--
extra : rebase_source : cfb41f861089bce9e10446bee81c13f8565ba90e
This also causes a lot of dropouts. We don't need to lock here. NetEQ is thread
safe, and its created in the ctor. The rest of the members are made atomic or is
simply never accessed in multiple threads.
MozReview-Commit-ID: 2fRw5ZgxdpQ
--HG--
extra : rebase_source : f2aa082a3e856e873cfcd96ff721ccdc77df3633
This accounts for half of our audio dropouts, there is very high contention on
this piece of data.
MozReview-Commit-ID: 2HSfqZHT2MK
--HG--
extra : rebase_source : 10c451ac60563a0f1c14a314f5a12cc45055e20b
This allows removing locking, and allows other threads to progress without
taking the lock, hence lowering the probability that the lock will be taken for
a long time when we need to pull NeqEQ.
MozReview-Commit-ID: HMO67A0hher
--HG--
extra : rebase_source : aa5c77895eb57d60b61d9a8a5822e53593348830
We made NotifyPull parallel to try to lower the load, and we initially measured
an improvement. However, we did the measurements with a profiler that did an
aggregation of the results. Our results had an high variance, so the mean load
was in fact not meaningful.
More careful measurement performed without doing any aggregation show that,
under load, relying on the fact that the scheduler schedules the tasks on time
is too risky, and that the code is fast enough to not have to parallelize.
MozReview-Commit-ID: CMhSn8Sc0OO
--HG--
extra : rebase_source : cfb41f861089bce9e10446bee81c13f8565ba90e
This also causes a lot of dropouts. We don't need to lock here. NetEQ is thread
safe, and its created in the ctor. The rest of the members are made atomic or is
simply never accessed in multiple threads.
MozReview-Commit-ID: 2fRw5ZgxdpQ
--HG--
extra : rebase_source : f2aa082a3e856e873cfcd96ff721ccdc77df3633
This accounts for half of our audio dropouts, there is very high contention on
this piece of data.
MozReview-Commit-ID: 2HSfqZHT2MK
--HG--
extra : rebase_source : 10c451ac60563a0f1c14a314f5a12cc45055e20b
This hard codes the visual studio version to 2015. We did the same thing for the
gyp build. It also sets default paths for visual studio, which are ignored by the
remainder of the build system.
This was required to get gn code generation working on a fresh install of
Windows. I must have had similar changes on my old Windows VM but missed
commiting them as part of the gyp to gn build switch.
MozReview-Commit-ID: 7fYngpdIwxh
--HG--
extra : rebase_source : de24b50f8e19465d8c145ce96c31d4ad7cc52e57
This patch converts all the prefs in MediaPrefs to the new StaticPrefs system.
Note that the "media.wmf.skip-blacklist" pref was present in both MediaPrefs
and gfxPrefs. The copy in MediaPrefs was never used; this explains why this
patch does not add an entry for it to StaticPrefList.h.
Note also that the patch removes themedia.rust.mp4parser pref, because it's
unused.
MozReview-Commit-ID: IfHP37NbIjY
--HG--
extra : rebase_source : df84ea813b7c366d7be663c696891325610149c8
A minimized window has a resolution of 1x1. Although we removed minimized windows from the list
of available windows to share, nothing prevents the user from minimizing it during a call. With
the current code, this will cause InitEncode to fail, resulting in a fatal release assert.
I tested this patch with window sharing on meet.google.com and I was able to minimize and restore
the window several times without problem. While minimized, the window appears as a black screen
to the other meeting participants. It renders normally when restored.
MozReview-Commit-ID: LE2NBiEy8nw
--HG--
extra : rebase_source : f95fd3f797e9f7262a938087ce3fb1e27f743920
It is written under lock on the controlling thread (CamerasParent) in
StartCapture/StopCapture.
MozReview-Commit-ID: E7eq1YElhwt
--HG--
extra : rebase_source : f37b666d84c6710ac0d5c56002b82c707635f49b
If we stay in the critical section, and the StartCapture() is a reconfiguring
one, we risk deadlocking with IncomingFrame which runs on the camera thread.
MozReview-Commit-ID: 5rU4urrBWxr
--HG--
extra : rebase_source : 4c6e0c1e02eb1116a1fe433681bf4ad36f47186a
Looper lifetime must be handled by external callers as otherwise internal
callers may accidentally and unknowingly quit the looper and essentially
terminate the camera thread, stopping any flow of frames and preventing future
messages.
In this case, a reconfig of the capture settings through startCapture() causes
startCaptureOnCameraThread() to restart the capture by calling into
stopCaptureOnCameraThread() (quitting the looper) and then re-calling
startCaptureOnCameraThread() (not restarting the looper as that is invalid).
The camera thread is set up by startCapture() on the external calling thread,
which will never know that a seemingly graceful camera thread operation stopped
the camera thread altogether, and so it cannot take any action.
MozReview-Commit-ID: DUTFdanTan1
--HG--
extra : rebase_source : afeb80aa8b2596a2615f57ec4af182a837323b7e
This limits screensharing simulcast to a single layer. When window sharing, our
source video can have arbitrary dimensions. If one of those dimensions ends up
being odd, the aspect ratio of the smaller layer will not match the aspect ratio
of the odd sized layer, causing a runtime assertion failure and crash.
It is not sufficient to prevent the creation of odd sized layers in
CreateEncoderStreams because the user can resize the window while it is being
shared, which will cause a fatal assertion prior to the streams being recreated.
When switching back from window sharing to camera, a call to
CreateEncoderStreams will occur with resolutions matching the dimensions of
the window that was just shared. To prevent a crash, this also adds a check
which prevents the creation of layers with odd resolutions.
Looking at cricket::GetSimulcastConfig for the version of webrtc.org in tree,
the number of simulcast layers is limited to one, or two if a field experiment
is enabled. That code also limits resolutions at which screensharing is allowed
as well as the number of layers that can be created for each resolution, and
ensures that each layer is exactly half the size of the layer above.
Adding these new constraints to CreateEncoderStreams makes us more consistent
with what the webrtc.org code would do when creating streams, which should
help to avoid more assertion failures in the future. Long term, I believe we
should just switch to using cricket::GetSimulcastConfig.
MozReview-Commit-ID: 8gjdY5GPPjl
--HG--
extra : rebase_source : b13b7acdac7f1e0b6016417b83bbe97dc2417a92
This limits screensharing simulcast to a single layer. When window sharing, our
source video can have arbitrary dimensions. If one of those dimensions ends up
being odd, the aspect ratio of the smaller layer will not match the aspect ratio
of the odd sized layer, causing a runtime assertion failure and crash.
It is not sufficient to prevent the creation of odd sized layers in
CreateEncoderStreams because the user can resize the window while it is being
shared, which will cause a fatal assertion prior to the streams being recreated.
When switching back from window sharing to camera, a call to
CreateEncoderStreams will occur with resolutions matching the dimensions of
the window that was just shared. To prevent a crash, this also adds a check
which prevents the creation of layers with odd resolutions.
Looking at cricket::GetSimulcastConfig for the version of webrtc.org in tree,
the number of simulcast layers is limited to one, or two if a field experiment
is enabled. That code also limits resolutions at which screensharing is allowed
as well as the number of layers that can be created for each resolution, and
ensures that each layer is exactly half the size of the layer above.
Adding these new constraints to CreateEncoderStreams makes us more consistent
with what the webrtc.org code would do when creating streams, which should
help to avoid more assertion failures in the future. Long term, I believe we
should just switch to using cricket::GetSimulcastConfig.
MozReview-Commit-ID: 8gjdY5GPPjl
--HG--
extra : rebase_source : 5a22f6d0a995303e6a4039eafc056631fbb86415
Tracing is very cheap, we should trace a bunch of stuff.
MozReview-Commit-ID: IhOyyRPXfg9
--HG--
extra : rebase_source : e6fa62f096ec269901f739bcd7f8ef6d61b79f12
extra : source : c0579ea271b9f5ff1b552fba1d4d2105b3d02eda
The cameraThread is set by startCapture(), so a failed startCapture() that
quits the Looper and runs the cameraThread to completion needs to set
cameraThread back to null for consistency.
Likewise, stopCapture() shall always quit the Looper and set cameraThread to
null.
MozReview-Commit-ID: H1ExLyTixYw
--HG--
extra : rebase_source : 472b657cd8219533a5878f5b268b6288e1fe6320
Based on output from FreeBSD i386/amd64/aarch64 and OpenBSD amd64.
MozReview-Commit-ID: 8D1u28AJTME
--HG--
extra : rebase_source : b0667e3330bbc7988d289eec27160510c60c1a3e
Original porting was done in bug 807492, so this is mostly gyp->gn translation.
cflags/libs are left unchanged as those aren't used by Gecko.
MozReview-Commit-ID: Bhw6KduoiVm
--HG--
extra : rebase_source : 485f1dfe38106b895ec481444e8a32d08f72f5e7
- If cross-toolchain is N/A use system one instead of error
- BSDs often use Linux interfaces, so don't exclude the files
- Define is_bsd as changes specific to a particular BSD are rare
- Adjust is_clang in case Gecko would use it in future
MozReview-Commit-ID: 5LlCbEKbAPO
--HG--
extra : rebase_source : 68fc72056f65c28d43d2bfb238b26b8895e76ba9
This adds a bool parameter that allows the tests to run with either the Sipcc or
Rust SDP parsers.
The tests were changed as follows: One chunk of SDP ws missing a s= line, which
is non-optional as was added. Some of the SDP had a=ice-lite as a media
attribute, but it is only supposed to be a session attribute, and so the media
attribute was removed.
MozReview-Commit-ID: K45ynsVvmnB
--HG--
extra : rebase_source : 4e2a3ea18198f8e5467706b8ef9331aa225babd2
Pause() gave the benefit of another app not being able to steal
the device until the next Run(). It would keep the light on for
some cameras however.
Stop() makes the light go out on these cameras, but put them up
for another application to steal. Basically the same as on our
other platforms.
MozReview-Commit-ID: FPRYcZ2PEpm
--HG--
extra : rebase_source : 1870eb6933b02c83c7e61ac275b648fdde9b4cec
When switching to the gn build, we accidentally began linking against the
newer webrtc.org avfoundation library rather than the locally patched,
older version. This breaks the ondevicechange event and causes other
problems.
MozReview-Commit-ID: Kz2RBK4xkjQ
--HG--
extra : rebase_source : 8ecd07177cc7de1571133d061faa57bd87a3fe4b
extra : histedit_source : 2a2044c85a28975e40996ef839c6c82926142d51
This adds a bool parameter that allows the tests to run with either the Sipcc or
Rust SDP parsers.
The tests were changed as follows: One chunk of SDP ws missing a s= line, which
is non-optional as was added. Some of the SDP had a=ice-lite as a media
attribute, but it is only supposed to be a session attribute, and so the media
attribute was removed.
MozReview-Commit-ID: K45ynsVvmnB
--HG--
extra : rebase_source : cf99d92db4c92e17dc3aa32e0862984fe69452a9