The H.264 does not contain picture IDs and are not sufficient to
determine that a packet may be skipped. This causes retransmission
requests for FEC that are currently dropped by the sender (since they
should be redundant).
The receiver is then unable to continue without having the packet gap
filled (unlike VP8/VP9 which moves on since it has a consecutive stream
of picture IDs).
Even if FEC retransmission did work it's a huge waste of bandwidth,
since it just adds additional overhead that has to be unconditionally
transmitted. This bandwidth is better used to send higher-quality
frames.
BUG=webrtc:5264
R=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1687303002 .
Cr-Commit-Position: refs/heads/master@{#11601}
Prevents copying a vector to a list that gets copied back to a vector,
which makes calling code a bit easier.
BUG=webrtc:5494
R=danilchap@webrtc.org
Review URL: https://codereview.webrtc.org/1686323003 .
Cr-Commit-Position: refs/heads/master@{#11589}
We'd like to completely replace rtc::scoped_ptr with std::unique_ptr.
This is a first trial CL to see if using unique_ptr causes any
problems.
(As a side effect of removing the scoped_ptr.h include in buffer.h,
I had to fix broken includes in no less than three files.)
BUG=webrtc:5520
Review URL: https://codereview.webrtc.org/1687833006
Cr-Commit-Position: refs/heads/master@{#11588}
Reason for revert:
Breaks downstream compilation. Please reland in a non-breaking fashion.
Original issue's description:
> Android: Remove VideoCapturer
>
> This CL makes PeerConnectionFactory.createVideoSource() and nativeCreateVideoSource work directly with VideoCapturerAndroid instead of going via VideoCapturer. The native part is now created in nativeCreateVideoSource() instead of doing it immediately in VideoCapturerAndroid.create().
>
> BUG=webrtc:5519
> R=perkj@webrtc.org
>
> Committed: https://crrev.com/09eab315fddc3432c19d8f662f4b9360f2a58010
> Cr-Commit-Position: refs/heads/master@{#11582}
TBR=perkj@webrtc.org,magjed@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5519
Review URL: https://codereview.webrtc.org/1690073002
Cr-Commit-Position: refs/heads/master@{#11586}
Also fixing an issue with the Java PeerConnection unit test.
It wasn't correctly waiting for 10 video frames to be received.
And fixed an issue with the video engine, where generated
black frames don't get any rotation.
BUG=webrtc:5128
Review URL: https://codereview.webrtc.org/1639583003
Cr-Commit-Position: refs/heads/master@{#11583}
This CL makes PeerConnectionFactory.createVideoSource() and nativeCreateVideoSource work directly with VideoCapturerAndroid instead of going via VideoCapturer. The native part is now created in nativeCreateVideoSource() instead of doing it immediately in VideoCapturerAndroid.create().
BUG=webrtc:5519
R=perkj@webrtc.org
Review URL: https://codereview.webrtc.org/1684403002 .
Cr-Commit-Position: refs/heads/master@{#11582}
This reverts "iOS: Add mb_type config for GYP builders."
and also removes Goma from these builders, as it will not work for WebRTC
since MB's GYP mode is hardcoded to use gyp_chromium.
MB should be working for GN since it's a stand-alone tool.
Goma doesn't work since $(goma_dir) in the JSON throws an error during
compile. So let's turn off Goma for these bots for now.
BUG=chromium:498746
NOTRY=True
TBR=smut@google.com
Review URL: https://codereview.webrtc.org/1685683007
Cr-Commit-Position: refs/heads/master@{#11578}
The PRESUBMIT code is basically a stripped-down copy of the code in
Chromium's src/PRESUBMIT.py.
BUG=chromium:498746
TESTED=I verified with 'git cl presubmit' that the existing
error was found. Then I ran it again after fixing it, with
presubmit passing.
NOTRY=True
Review URL: https://codereview.webrtc.org/1682393002
Cr-Commit-Position: refs/heads/master@{#11572}
Both were related to very large jumps in RTP timestamps.
BUG=webrtc:5488
Review URL: https://codereview.webrtc.org/1685103002
Cr-Commit-Position: refs/heads/master@{#11569}
Reason for revert:
There appears there were some uses left of cricket::VideoFrame::GetRotation (to be replaced by GetVideoRotation). Investigating.
Original issue's description:
> Initial cleanup of cricket::VideoFrame.
>
> Deleted GetRotation (old alias for GetVideoRotation).
> Deleted CopyToBuffer.
> Deleted Sizeof.
> Deleted Write.
> Demote CopyToPlanes to protected status.
>
> BUG=webrtc:5426
TBR=perkj@webrtc.org,pbos@webrtc.org,pthatcher@webrtc.org,pthatcher@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5426
Review URL: https://codereview.webrtc.org/1688953003
Cr-Commit-Position: refs/heads/master@{#11566}
Further more, it adds a VideoBroadcaster than is used for delivering frames to multiple sinks.
BUG=webrtc:5426
Review URL: https://codereview.webrtc.org/1655793003
Cr-Commit-Position: refs/heads/master@{#11563}
adding 30% drift to media generator (e.g. audio frame generated every 7ms instead of promised 10ms) works fine
adding 2% drift to video ntp-timestamp-stamper makes A/V sync fail.
BUG=webrtc:5504
R=pbos@webrtc.org,stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1674413004
Cr-Commit-Position: refs/heads/master@{#11556}
This CL removes some temporary files created by OptionsFileTest and
TransientFileUtilsTest.
BUG=
Review URL: https://codereview.webrtc.org/1688553002
Cr-Commit-Position: refs/heads/master@{#11554}
In addition to the code moved from talk/app/webrtc
there were some files in webrtc/api/objctests that still
had the libjingle license header.
BUG=webrtc:5418
TBR=tkchin@webrtc.org
NOTRY=True
Review URL: https://codereview.webrtc.org/1680293005
Cr-Commit-Position: refs/heads/master@{#11552}
More work remains, but is less urgent.
webrtc/media/base/mediacommon.h could not be deleted since
the constants are used in multiple places.
BUG=webrtc:5420
TBR=pthatcher@webrtc.org
Review URL: https://codereview.webrtc.org/1688753002 .
Cr-Commit-Position: refs/heads/master@{#11551}
This makes sense since the buffered data is only used by
the echo subtraction method. Furthermore, it simplifies the
upcoming modifications to the echo subtraction method since
the way the buffering is done can then be specific for the
echo subtraction implementation used.
The change is bitexact and this was verified using a fairly
extensive bitexactness suite.
BUG=
Review URL: https://codereview.webrtc.org/1639773002
Cr-Commit-Position: refs/heads/master@{#11547}
In some rare occations (very low energy signal), a shift value happened
to be negative. This is now fixed by using the WEBRTC_SPL_SHIFT_W32,
which in essence checks the sign of the number of shifts and performs a
right or left shift accordingly.
The fix reverts to how the code was written in old NetEq; see
4d363ae305/webrtc/modules/audio_coding/neteq/normal.c (165).
BUG=webrtc:5490
Review URL: https://codereview.webrtc.org/1675293002
Cr-Commit-Position: refs/heads/master@{#11546}
The previously disabled warnings that were inherited from
talk/build/common.gypi are now replaced by target-specific disabling
of only the failing warnings. Additional disabling was needed since the stricter
compilation warnings that applies to code in webrtc/.
License headers will be updated in a follow-up CL.
Other modifications:
* Updated the header guards.
* Sorted the includes using chromium/src/tools/sort-headers.py
except for these files:
talk/app/webrtc/peerconnectionendtoend_unittest.cc
talk/app/webrtc/java/jni/androidmediadecoder_jni.cc
talk/app/webrtc/java/jni/androidmediaencoder_jni.cc
webrtc/media/devices/win32devicemanager.cc
The HAVE_SCTP define was added for the peerconnection_unittests target
in api_tests.gyp.
I also checked that none of
SRTP_RELATIVE_PATH
HAVE_SRTP
HAVE_WEBRTC_VIDEO
HAVE_WEBRTC_VOICE
were used by the talk/app/webrtc code.
For Chromium, the following changes will need to be applied to the roll CL that updates the
DEPS for WebRTC and libjingle:
https://codereview.chromium.org/1615433002
BUG=webrtc:5418
NOPRESUBMIT=True
R=deadbeef@webrtc.org, pthatcher@webrtc.org, tommi@webrtc.org
Review URL: https://codereview.webrtc.org/1610243002 .
Cr-Commit-Position: refs/heads/master@{#11545}
Previously shared memory buffers for DesktopCapturer were created
using DesktopCapturer::Callback::CreateSharedBuffer(). That made it
difficult to proxy DesktopCapturer interface from one thread to another.
This CL adds SharedBufferFactory interface that's allowed to be called
on a background thread. This also simplifies clients that don't
need to use shared memory, as they no longer need to override
CreateSharedBuffer().
Review URL: https://codereview.webrtc.org/1678073003
Cr-Commit-Position: refs/heads/master@{#11543}