When screen is zoomed in/out, OSX only updates the parts of Rects currently
displayed on screen, with relative location to current top-left on screen.
This will cause problems when we copy the dirty regions to the captured
frame. So we invalidate the whole screen to copy all the screen contents.
- With CGI method, the zooming will be ignored and the whole screen contents
will be captured as before.
- With IOSurface method, the zoomed screen contents will be captured.
Since we can't know the zooming level and focusing location, so we have
to copy the whole screen region for each frame during rooming. And this
will impact peformance a bit (with IOSurface capturer about 5-10 fps
down on MBP.)
Bug: chromium:911862
Change-Id: Icf123cde4d686ab7ce28fa731bc8dac6925492c8
Reviewed-on: https://webrtc-review.googlesource.com/c/113101
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Commit-Queue: Brave Yao <braveyao@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25936}
Read using capacity() method, write using set_buffer() method. This is
a preparation for making the member private, and renaming it to
capacity_.
Bug: webrtc:9378
Change-Id: I2f96679d052a83fe81be40301bd9863c87074640
Reviewed-on: https://webrtc-review.googlesource.com/c/113520
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25934}
This is needed to be compatible with chromium change, see bug for
details.
BUG=chromium:851596
Change-Id: I7b3ffda3715e925c42f4b95a2ba1d3f5cf829fda
Reviewed-on: https://webrtc-review.googlesource.com/c/113504
Commit-Queue: Artem Titarenko <artit@webrtc.org>
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Artem Titarenko <artit@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25933}
This change is based on a discussion for integrating a new statistic that
measures the delay between the first frame being received and the first frame
being decoded. To enable this in the context of FrameEncryption it makes sense
for packet receive timestamps to be unconditionally recorded.
Bug: webrtc:10105
Change-Id: I6b3b0118121db1fe5d4a4fb16cf5d94341cd2b1b
Reviewed-on: https://webrtc-review.googlesource.com/c/113487
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25931}
This way we make sure we take fec into account when deciding how high
we probe.
Bug: webrtc:10070
Change-Id: I5286c82fc32dd99f7b9d79c9e5fc4465e1c6c259
Reviewed-on: https://webrtc-review.googlesource.com/c/113429
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25930}
Since a lot of native users have taken dependencies on our old, non-standard behaviour
we'll have to have two ice connection states living side by side until we can get rid
of the old one.
Bug: webrtc:6145
Change-Id: I9b673bffeb1dfcf410f7c56d4def5912121e644c
Reviewed-on: https://webrtc-review.googlesource.com/c/113421
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25929}
This is necessary to access profiles from Chrome side.
Bug: webrtc:7925
Change-Id: I27d187afb56da715caf9f2ac8a6942778853542c
Reviewed-on: https://webrtc-review.googlesource.com/c/113100
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Emircan Uysaler <emircan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25925}
So that users can add dependencies on them, and not break when a bunch
of headers move out of rtc_base:rtc_base.
Bug: webrtc:9987
Change-Id: Iecd5dd903cb8b97cb6f051e3a0cb6df7f8ba22b3
Reviewed-on: https://webrtc-review.googlesource.com/c/113425
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25923}
Use the new class internally where appropriate too.
The objective is to rename it, but due to some external dependency,
it is better to copy, update dependencies and remove.
Bug: webrtc:10069
Change-Id: I8477ce5a2982933db27513cc9509f51558dafaf3
Reviewed-on: https://webrtc-review.googlesource.com/c/113265
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25920}
Replaces enum VideoCodecType for video frames and uint8_t for audio
frames.
Also delete method
MediaTransportVideoSinkInterface::OnKeyFrameRequested; it needs to be
added as a send-side interface instead (for a later cl).
Bug: webrtc:9719
Change-Id: I2cfdbacc267afc75c448512e2cc6de0ec9966a2d
Reviewed-on: https://webrtc-review.googlesource.com/c/113180
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25918}
This adjusts iOS version to the actual one on the tester bot.
Bug: webrtc:10047
Change-Id: I7d104f331450192142c8c2c1259a3207dcee45ed
Reviewed-on: https://webrtc-review.googlesource.com/c/113420
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titarenko <artit@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25917}
This avoids use-after-free problems that occur when references
to webrtc::DtlsTransport objects are held outside of the PC.
Bug: chromium:907849
Change-Id: Id428c8e616482eff0f4327d2eac17e29bb3f6484
Reviewed-on: https://webrtc-review.googlesource.com/c/113303
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25915}
This handles an unlikely corner case where you receive a RTCP feedback for a packet the same millisecond that you send it.
Bug: None
Change-Id: I77f460bef4073d4d9c5633c88f4d2dd8470f8577
Reviewed-on: https://webrtc-review.googlesource.com/c/113305
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25911}
The event log implementation will be simpler if it creates its own TaskQueue.
If we really need the "injectable" functionality, it could be achieved via a
TaskQueueFactory that returns a move-constructible TaskQueue.
Bug: webrtc:10085
Change-Id: I538be3dd77c09be2f5bae015227067acd6af8355
Reviewed-on: https://webrtc-review.googlesource.com/c/113140
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25908}
setting max reordering recently has been fix to actually set it.
(https://webrtc-review.googlesource.com/c/src/+/111752)
Another recent change fix stats to skip counting large sequence number jumps as packet loss
(https://webrtc-review.googlesource.com/c/src/+/111962)
max reordering thresholds affects how packet loss is calculated.
Packet loss is then reported to remote sending participant in rtcp receiver reports.
Sender uses packet loss mostly for stats, but also e.g. for opus fec adjustment.
Setting threshold to zero de-facto imply all packets should be considered in order.
That bug was mitigated by two other bugs mentioned above
This change increase threshold to default 50 packets aligning it with Video receiver
and unblocks (re)landing 2nd fix
Bug: b/120482366
Change-Id: Iadda0c2148ed84dd83c01183cfe9285568db4e29
Reviewed-on: https://webrtc-review.googlesource.com/c/113064
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25905}
Prior to this CL, if the "a=msid" attribute was missing it was treated
the same as if "no streams" were explicitly signaled (a=msid:-); the
receivers would not be associated with any streams.
In order to support legacy endpoints that don't recognize "a=msid" that
assume the Plan B behavior of a stream being created anyway, this CL
creates a stream with a random ID in such cases. For background, see
https://github.com/web-platform-tests/wpt/pull/14054.
Bug: chromium:907508
Change-Id: I9d9dd0e4ba8f9941f8652f4d7873adc560777cd9
Reviewed-on: https://webrtc-review.googlesource.com/c/112900
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25901}
The default Swarming priority is 200 but it's recommended to raise it.
Chrome's tasks are set to 30, and that can cause our tasks to be discarded.
Bug: chromium:911787
Change-Id: Ied5eed4bc37890ede6c29d2fd743e102f5622d11
Reviewed-on: https://webrtc-review.googlesource.com/c/113145
Reviewed-by: Artem Titarenko <artit@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25899}
- Enable vp9 flexible mode in VideoEngine if 3 spatial layers are set.
- Enable flexible mode in loopback tools and quality tests.
- Reset first active spatial layer on keyframe in encoder.
- Ensure duplicate references are not set by the sender in video header.
- Set references manually for flexible mode in vp9 encoder.
- Delay new activated layers until next base layer frame.
- On receive side put each spatial layer as a separate frame to FrameBuffer
and return several frames combined from FrameBuffer.
Bug: webrtc:10049,webrtc:9794,webrtc:9784
Change-Id: I01e69f134cc145deba666ccc92deb1d37a324ede
Reviewed-on: https://webrtc-review.googlesource.com/c/112289
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25895}
This setter method is intended to replace all direct assignments to
the |_size| member. A later cl will make that member private, and
rename it to |capacity_|.
Bug: webrtc:9378
Change-Id: I37e9eb54d1c72bcd4cb8a1cfef34bbc6c209bd0d
Reviewed-on: https://webrtc-review.googlesource.com/c/113060
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25894}
It's currently used only by the VCMJitterBuffer and VCMReceiver
classes. Injection is needed by the VCMReceiverTimingTest test, which
defines a subclass(!) of EventWrapper.
Bug: webrtc:3380
Change-Id: I765be0ceac58e941928319cc426ba49f1cbdc5fa
Reviewed-on: https://webrtc-review.googlesource.com/c/113002
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25893}
Since not all fields are compared on NetworkRoute structs, the ==
operator overload doesn't really make the code easier to read. In fact
the feature that it only compares a subset of the fields is only used
once, at the other places, all fields are compared.
Removing the overload makes it more clear what is compared at each call
site.
Bug: webrtc:9883
Change-Id: I74f7eb32b602aa33fd282a815b71a172ae3f6a8b
Reviewed-on: https://webrtc-review.googlesource.com/c/113001
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25891}
Consider stream restart when two sequential packets arrived far from
previous packets' sequence numbers.
instead of resetting on single one.
For packet loss calculation ignore sequence number gap during reset.
Bug: webrtc:9445, b/38179459
Change-Id: I0c2717ef8f9ec182b280ae757b5582f56d9afcef
Reviewed-on: https://webrtc-review.googlesource.com/c/111962
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25890}