This implementation registers RTX-APT map inside RTP sender and receiver.
While it only generates SDP with RTX associated with VP8 to make it
compatible with previous Chrome versions.
Should add following changes after reaches stable,
* Use RTX-APT map for building and restoring RTP packets.
* Add RTX support for RED or VP9 in Video engine.
* Set RTX payload type for RED inside FecConfig in EndToEndTest.
BUG=4024
R=mflodman@webrtc.org, pbos@webrtc.org, pthatcher@webrtc.org, stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/36889004
Cr-Commit-Position: refs/heads/master@{#9040}
This reverts commit 14a97f0a9148be18a66a435a5933441eb023bc82.
Introduces a deadlock due to acquiring simulcast_rtp_rtcp_ in
ReceivedRTCPPacket.
BUG=4568, chromium:478911
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/44289004
Cr-Commit-Position: refs/heads/master@{#9039}
AndroidVideoCapturerJni dtor is called on signaling thread
and may destroy JNI global refs while processing late camera
frame arrival in ReturnBuffer_w() in worker thread.
Fix this by waiting for all function invoked on worker thread
to complete in camera JNI dtor.
R=wzh@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/49099004
Cr-Commit-Position: refs/heads/master@{#9037}
We used to accept void* (until 9478437f), and we'll have to continue
to do so for a little while longer, until Chromium doesn't need it
anymore.
TBR=tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/48179004
Cr-Commit-Position: refs/heads/master@{#9035}
1. Constructors, SetData(), and AppendData() now accept uint8_t*,
int8_t*, and char*. Previously, they accepted void*, meaning that
any kind of pointer was accepted. I think requiring an explicit
cast in cases where the input array isn't already of a byte-sized
type is a better compromise between convenience and safety.
2. data() can now return a uint8_t* instead of a char*, which seems
more appropriate for a byte array, and is harder to mix up with
zero-terminated C strings. data<int8_t>() is also available so
that callers that want that type instead won't have to cast, as
is data<char>() (which remains the default until all existing
callers have been fixed).
3. Constructors, SetData(), and AppendData() now accept arrays
natively, not just decayed to pointers. The advantage of this is
that callers don't have to pass the size separately.
4. There are new constructors that allow setting size and capacity
without initializing the array. Previously, this had to be done
separately after construction.
5. Instead of TransferTo(), Buffer now supports swap(), and move
construction and assignment, and has a Pass() method that works
just like std::move(). (The Pass method is modeled after
scoped_ptr::Pass().)
R=jmarusic@webrtc.org, tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/42989004
Cr-Commit-Position: refs/heads/master@{#9033}
It breaks integration with upstream re2 library on Chromium.
Without patching re2 library, with this define, it produces the
following error:
../../third_party/re2/re2/re2.h:254:5: error: expected identifier
POSIX, // POSIX syntax, leftmost-longest match
As we define POSIX on the command line, the C preprocessor changes
RE2::POSIX to nothing and thus break the compilation. :(
See chromium-dev mailing list for this discussion in
https://groups.google.com/a/chromium.org/d/topic/chromium-dev/UXCHnX7pV44/discussion
BUG=None
TEST=ninja -C out/Debug, everything compiles as before
R=sergeyu@chromium.org, tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/46049004
Patch from Thiago Farina <tfarina@chromium.org>.
Cr-Commit-Position: refs/heads/master@{#9032}
Also change to use virtual_packet_length_bytes in order to print the
actual packet size of the complete packet even when the RTP file only
contains RTP headers.
BUG=2692
R=tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/51559004
Cr-Commit-Position: refs/heads/master@{#9025}
NVidia HW encoder bitrate control is allowing too much
bitrate fluctuation. Plus average encoding time is not enough
for 720p 30 fps support.
R=wzh@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/48099004
Cr-Commit-Position: refs/heads/master@{#9014}
Without this, external encoders with internal sources (i.e. don't use the normal camera path) won't trigger ViEEncoder::DeliverFrame, so time_of_last_incoming_frame_ms_ will always be 0.
BUG=
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/44099004
Cr-Commit-Position: refs/heads/master@{#9010}
Add separate functions for returning stats from send/receive stream and updated how functions are used.
Add test implementation for histogram methods in system_wrappers/interface/metrics.h.
BUG=4519
R=pbos@webrtc.org, stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/49639004
Cr-Commit-Position: refs/heads/master@{#9009}
This is a major libyuv update (almost 200 revisions):
d204db6..32ad6e0
Relevant changes:
* src/third_party/libyuv: d204db6..32ad6e0
* src/third_party/nss: d1edb68..9506806
Details: 8af41b3..dcb0929/DEPS
Since bayer and Q420 format support have been removed from libyuv, all tests related to those format are removed.
Clang version was not updated in this roll.
R=kjellander@webrtc.org
TBR=tommi
Review URL: https://webrtc-codereview.appspot.com/48989004
Cr-Commit-Position: refs/heads/master@{#9008}
If a codec fails to set (e.g. there's no codec configured), this
prevents a stream reconfigure with an invalid config. Reconfiguring a
stream without correct codec settings causes a CHECK failure.
BUG=chromium:475116
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/44219004
Cr-Commit-Position: refs/heads/master@{#9007}
Changes:
1. Moved directory voice_engine/include/mock to voice_engine/mock (current recommendation).
2. Updated includes where necessary.
Caution:
We need confirmation that these mocks are indeed used only locally.
R=kwiberg@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/48089004
Cr-Commit-Position: refs/heads/master@{#9005}
The AGC is currently bumping up the mic volume to 33% at startup if it is below that level. This is to avoid getting stuck in a poor state from which the AGC can not move, simply a too low input audio level. For some users, 33% is instead too loud.
This CL gives the user the possibility to set that level at create time.
- Extends the Config ExperimentalAgc with a startup_mic_volume for the user to set if desired. Note that the bump up does not apply to the legacy AGC and the "regular" AGC is controlled by ExperimentalAgc.
- Without any actions, the same default value as previously is used.
- In addition I removed a return value from InitializeExperimentalAgc() and InitializeTransient()
This has been tested by building Chromium on Mac and verify through apprtc that
1) startup_mic_volume = 128 bumps up to 50%.
2) startup_mic_volume = 500 (out of range) bumps up to 100%.
3) startup_mic_volume = 0 bumps up to 4%, the AGC min level.
BUG=4529
TESTED=locally
R=andrew@webrtc.org, kwiberg@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/43109004
Cr-Commit-Position: refs/heads/master@{#9004}
For simulcast VideoSendStreams there are more than one entry in the SSRC
table causing RTCP to currently be delivered more than once per stream.
This messes up unique NACK stats as all NACK requests sent to such a
sender will be delivered multiple times and not look unique.
BUG=4544
R=asapersson@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/50709004
Cr-Commit-Position: refs/heads/master@{#8998}
https://webrtc-codereview.appspot.com/48909004/ only fixed
the target_subarch problem for ARM. This fixes it for the
x86 targets that are used for the iOS simulator (ia32/x64).
BUG=4532
TESTED=Built locally using:
export GYP_DEFINES="build_with_libjingle=1 build_with_chromium=0 libjingle_objc=1 OS=ios target_arch=ia32"
export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_sim"
export GYP_CROSSCOMPILE=1
gclient runhooks
ninja -C out_sim/Release-iphonesimulator iossim AppRTCDemo
R=tkchin@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/44159004
Cr-Commit-Position: refs/heads/master@{#8991}