The array is reset in Init() but not the indexer. This makes the start point undefined after Init() for re-initializing an AudioLoop. This can be fixed.
BUG=
Review URL: https://codereview.webrtc.org/1727353002
Cr-Commit-Position: refs/heads/master@{#11739}
initialization and errors.
The stats are counts using enumeration, an instance of
H264EncoderImpl/H264DecoderImpl will report at most 1 Init
and 1 Error for its entire lifetime. This is to avoid
spamming reports if initialization or coding fails and it
retries in a loop. The Init stats will give us an idea of
usage counts for the encoder/decoder. The Error stats will
give us an idea of how many of these usages encounters some
type of problem, such as encode or decode errors.
- WebRTC.Video.H264EncoderImpl.Event:
* kH264EncoderEventInit: Occurs at InitEncode.
* kH264EncoderEventError: Occurs if any type of error
occurs during initialization or encoding.
- WebRTC.Video.H264DecoderImpl.Event:
* kH264DecoderEventInit: Occurs at InitDecode.
* kH264DecoderEventError: Occurs if any type of error
occurs during initialization, AVGetBuffer2 or decoding.
Chromium sibling CL:
https://codereview.chromium.org/1719273002/
BUG=chromium:500605, chromium:468365
Review URL: https://codereview.webrtc.org/1716173002
Cr-Commit-Position: refs/heads/master@{#11736}
Previously, we relied on the encoded stream to come to an end before
the end of the buffer. This is a bad idea, since it is possible to
craft a stream that fills the buffer while decoding to less than the
expected amount of data; without the new checks introduced here, this
causes the decoder to read past the end of the input buffer.
BUG=chromium:582471, chromium:587852
Review URL: https://codereview.webrtc.org/1721593004
Cr-Commit-Position: refs/heads/master@{#11734}
They are invoked with the maximum size of the data to be added, and a
callable that generates that data, like this:
buffer.AppendData(10, [] (rtc::ArrayView<uint8_t> av) {
for (uint8_t i = 0; i != 5; ++i)
av[i] = i;
return 5;
});
The callable returns the number of bytes actually written, and the
final Buffer size will be adjusted accordingly. SetData and AppendData
both return the number of bytes added (i.e. the return value of the
callable).
These versions will be useful when converting AudioEncoder::Encode to use Buffer rather than raw pointers.
Also added a few tests for the new functionality.
Review URL: https://codereview.webrtc.org/1717273002
Cr-Commit-Position: refs/heads/master@{#11733}
RFC 5245 allows an ICE restart to occur on only one media section.
However, before this CL, if an endpoint attempted to do this, we would
change our local ICE ufrag/pwd in every media section.
Also did some refactoring, turning the transport options from
mediasesion.h into a map.
Review URL: https://codereview.webrtc.org/1671173002
Cr-Commit-Position: refs/heads/master@{#11728}
In order for the change to be reviewable, the
move was made into two steps consisting of the
first two patches in this CL.
Step 1 (patch set 1):
-Changed file types to use .cc
-Changed buildfiles to use the new files
-Changed C code inclusion to properly match the changed
file formats (removed and added extern "C" declarations).
-Changed implicit void-> nonvoid casts that are
illegal in C++ to be explicit.
Step 2 (patch set 2):
-Changed all the warnings reported when uploading the CL.
-The warnings about formatting of the assembly optimized
code were not addressed though.
BUG=webrtc:5201
Review URL: https://codereview.webrtc.org/1713923002
Cr-Commit-Position: refs/heads/master@{#11727}
Reason for revert:
Breaks downstream compilation using webrtc/common_audio/real_fourier.h. Let's chat tomorrow on how to coordinate a re-land.
Original issue's description:
> Replace scoped_ptr with unique_ptr in webrtc/common_audio/
>
> BUG=webrtc:5520
>
> Committed: https://crrev.com/79d7a499c0c3e1de8f5ad1138236f0386701053f
> Cr-Commit-Position: refs/heads/master@{#11716}
TBR=henrik.lundin@webrtc.org,kwiberg@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5520
Review URL: https://codereview.webrtc.org/1726043002
Cr-Commit-Position: refs/heads/master@{#11726}
Removes addition of at least one zero sample in webrtc_perf_tests that
can skew stats differently depending on how often these stats are
updated. Unclear if this skewing is different between now and before.
BUG=chromium:585071, chromium:586216
R=sprang@google.com, sprang@webrtc.org
Review URL: https://codereview.webrtc.org/1727583003 .
Cr-Commit-Position: refs/heads/master@{#11720}
This allows other projects to more easily depend on this.
The plan is to move remote_bitrate_estimator and bitrate_controller into this module and reduce the exposed interface to only a simplified version of congestion_controller.h.
No functional changes in this CL.
R=mflodman@webrtc.org, pbos@webrtc.org
Review URL: https://codereview.webrtc.org/1718473002 .
Cr-Commit-Position: refs/heads/master@{#11718}
Doesn't utilize the clock or any callbacks out of the receiver but
should still be useful to test input packet parsing.
BUG=webrtc:4771
R=danilchap@webrtc.org
Review URL: https://codereview.webrtc.org/1716143002 .
Cr-Commit-Position: refs/heads/master@{#11717}
Boost low QP threashold to 21, otherwise VGA encoding never
scales up even at 2.5 Mbps.
Also reduce high QP threshold to scale down faster.
BUG=b/26504665
R=jackychen@google.com
Review URL: https://codereview.webrtc.org/1717763003 .
Cr-Commit-Position: refs/heads/master@{#11712}
Compact NTP representation was designed exactly for that purpose: calculate RTT. No need to map to ms before doing arithmetic on this values.
Because of this change there is no need to keep mapping between compact ntp presentation and milliseconds in the RTCPSender.
BUG=webrtc:5565
R=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1491843004 .
Cr-Commit-Position: refs/heads/master@{#11710}
Moves RtpRtcp module pointers into VideoSendStream and uses them for
simple calls that were only forwarded by ViEChannel.
BUG=webrtc:5494
R=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1693553002 .
Cr-Commit-Position: refs/heads/master@{#11709}
Reduces contention on event_mutex_ while taking gettimeofday(). Impact
highly hypothetical at this point, but less locking is better.
BUG=
R=tommi@webrtc.org
Review URL: https://codereview.webrtc.org/1716563003 .
Cr-Commit-Position: refs/heads/master@{#11706}
avoid clang warnings.
The changes does not change any of the functionality
in the code.
BUG=webrtc:163
Review URL: https://codereview.webrtc.org/1710083006
Cr-Commit-Position: refs/heads/master@{#11705}
This is the only failing test of the currently deployed
at the iOS Simulator bots. Let's disable it so we can promote
the passing tests to the main waterfall and the trybots.
BUG=4755
TBR=henrika@webrtc.org
Review URL: https://codereview.webrtc.org/1722523002 .
Cr-Commit-Position: refs/heads/master@{#11703}
Landing https://codereview.webrtc.org/1675923002/ broke some Chromium FYI bots
because the GN build didn't include "sharedexclusivelock.cc" in that scenario.
This CL moves the files from the non-Chromium block into the common sources
list.
BUG=webrtc:5496
Review URL: https://codereview.webrtc.org/1712773003
Cr-Commit-Position: refs/heads/master@{#11699}
Since SSRCs can no longer change on the fly, SSRC code can be made a lot
simpler (and faster). Resulting code has less and shorter locking.
BUG=webrtc:5494
R=danilchap@webrtc.org
Review URL: https://codereview.webrtc.org/1713683003 .
Cr-Commit-Position: refs/heads/master@{#11691}
Also move some stats reporting from vie_channel to send stats proxy
BUG=
Review URL: https://codereview.webrtc.org/1669623004
Cr-Commit-Position: refs/heads/master@{#11688}
EncoderStateFeedback is now only connected to one encoder, so remove map
and other complexity to deliver feedback more directly.
BUG=webrtc:5494
R=danilchap@webrtc.org
Review URL: https://codereview.webrtc.org/1706803002 .
Cr-Commit-Position: refs/heads/master@{#11687}
Reason for revert:
Broke chromium.webrtc.fyi bots:
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Builder/builds/9891https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20GN/builds/11416
Fails with
-----
Undefined symbols for architecture x86_64:
"rtc::SharedExclusiveLock::LockShared()", referenced from:
rtc::MessageQueue::DoDestroy() in librtc_base.a(messagequeue.o)
rtc::MessageQueue::socketserver() in librtc_base.a(messagequeue.o)
rtc::MessageQueue::WakeUpSocketServer() in librtc_base.a(messagequeue.o)
rtc::MessageQueue::Quit() in librtc_base.a(messagequeue.o)
rtc::MessageQueue::Get(rtc::Message*, int, bool) in librtc_base.a(messagequeue.o)
rtc::MessageQueue::Post(rtc::MessageHandler*, unsigned int, rtc::MessageData*, bool) in librtc_base.a(messagequeue.o)
rtc::MessageQueue::DoDelayPost(int, unsigned int, rtc::MessageHandler*, unsigned int, rtc::MessageData*) in librtc_base.a(messagequeue.o)
...
"rtc::SharedExclusiveLock::UnlockShared()", referenced from:
rtc::MessageQueue::DoDestroy() in librtc_base.a(messagequeue.o)
rtc::MessageQueue::socketserver() in librtc_base.a(messagequeue.o)
rtc::MessageQueue::WakeUpSocketServer() in librtc_base.a(messagequeue.o)
rtc::MessageQueue::Quit() in librtc_base.a(messagequeue.o)
rtc::MessageQueue::Get(rtc::Message*, int, bool) in librtc_base.a(messagequeue.o)
rtc::MessageQueue::Post(rtc::MessageHandler*, unsigned int, rtc::MessageData*, bool) in librtc_base.a(messagequeue.o)
rtc::MessageQueue::DoDelayPost(int, unsigned int, rtc::MessageHandler*, unsigned int, rtc::MessageData*) in librtc_base.a(messagequeue.o)
...
"rtc::SharedExclusiveLock::SharedExclusiveLock()", referenced from:
rtc::MessageQueue::MessageQueue(rtc::SocketServer*, bool) in librtc_base.a(messagequeue.o)
ld: symbol(s) not found for architecture x86_64
-----
Looks like these are compiling without "webrtc/base/sharedexclusivelock.cc".
Original issue's description:
> Prevent data race in MessageQueue.
>
> The CL prevents a data race in MessageQueue where the variable "ss_" is
> modified without a lock while sometimes read inside a lock.
>
> Also thread annotations have been added to the MessageQueue class.
>
> BUG=webrtc:5496
>
> Committed: https://crrev.com/df88460372e7ce78c871a87774d7e6d82aac6ee3
> Cr-Commit-Position: refs/heads/master@{#11683}
TBR=ivoc@webrtc.org,pthatcher@webrtc.org,deadbeef@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5496
Review URL: https://codereview.webrtc.org/1714463003
Cr-Commit-Position: refs/heads/master@{#11686}
Prevents allocating sequence numbers for packets that go out on the
network even though sending media is disabled.
This race caused a replay of sequence numbers when GetRtpState() on a
stopped stream would not return the last sequence number sent, since the
pacer thread could request and send padding on a later sequence number
before the modules are disconnected from the pacer.
BUG=webrtc:5543
R=stefan@webrtc.org
TEST=Repeating EndToEndTest.RestartingSendStreamPreservesRtpState 1000 times under TSan.
Review URL: https://codereview.webrtc.org/1715703002 .
Cr-Commit-Position: refs/heads/master@{#11685}
The CL prevents a data race in MessageQueue where the variable "ss_" is
modified without a lock while sometimes read inside a lock.
Also thread annotations have been added to the MessageQueue class.
BUG=webrtc:5496
Review URL: https://codereview.webrtc.org/1675923002
Cr-Commit-Position: refs/heads/master@{#11683}
There were two different structures named RtpPacket in webrtc namespace:
RtpPacket defined in fec_test_helper renamed to test::RawRtpPacket
RtpPacket defined in rtp_sender_video and producer_fec removed as unused
BUG=webrtc:5261
R=sprang@google.com, stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1710103004 .
Cr-Commit-Position: refs/heads/master@{#11682}
Also added a test for Clear to ensure this invariant holds.
With this change, it is easy to empty a Buffer and reuse its storage. Further down the line, code filling data into a Buffer could be written to just append to it, with the caller determining if the Buffer should first be cleared or not.
There is currently only one use of Buffer::Clear (in AudioEncoderCopyRed::Reset()) and it should benefit from the change, by not requiring a reallocation after Reset.
Review URL: https://codereview.webrtc.org/1707693002
Cr-Commit-Position: refs/heads/master@{#11680}
It was hardly used, making the code more complex than needed and caused problems on iOS because it uses system.
BUG=webrtc:5549
R=kjellander@webrtc.org
Review URL: https://codereview.webrtc.org/1708353002 .
Cr-Commit-Position: refs/heads/master@{#11677}
Instead of excluding the whole test binaries, only exclude the parts that cause the
compilation to fail for modules_unittests and common_audio_unittests.
BUG=webrtc:4752, webrtc:4755, webrtc:5544
TESTED=Successful build with:
GYP_DEFINES='OS=ios target_arch=x64' webrtc/build/gyp_webrtc
ninja -C out/Debug-iphonesimulator modules_unittests common_audio_unittests
NOTRY=True
Review URL: https://codereview.webrtc.org/1698033002
Cr-Commit-Position: refs/heads/master@{#11675}
The roll in https://codereview.webrtc.org/1713493002/
made us start using the Chromium sysroot images for libraries instead
of system libraries. This caused Linux 32-bit builds to break with
an error like this:
../../webrtc/examples/peerconnection/client/linux/main_wnd.cc:82:46: error: missing sentinel in function call [-Werror,-Wsentinel]
"List Items", renderer, "text", 0, NULL);
^
, nullptr
/usr/include/gtk-2.0/gtk/gtktreeviewcolumn.h:128:25: note: function has been explicitly marked sentinel here
GtkTreeViewColumn *gtk_tree_view_column_new_with_attributes (const gchar *title,
^
1 error generated.
This CL suppresses this warning to green up the bots.
TBR=niklase@webrtc.org
Review URL: https://codereview.webrtc.org/1710083003 .
Cr-Commit-Position: refs/heads/master@{#11674}
When composing a RTCP packet, if there is a BYE
to be appended, preserve it and append it at the
end after all other packet types are added.
BUG=webrtc:5498
NOTRY=true
Review URL: https://codereview.webrtc.org/1674963004
Cr-Commit-Position: refs/heads/master@{#11672}