Once we have eliminated all non-monotonic clocks, revert this change.
BUG=webrtc:5452
Review URL: https://codereview.webrtc.org/1618333002
Cr-Commit-Position: refs/heads/master@{#11361}
In AEC, audio levels are calculated in frequency domain. This makes the calculation dependent on FFT. We now make the calculation performed in time domain. The complexity is the same, but the dependence on FFT is removed.
BUG=
Review URL: https://codereview.webrtc.org/1542573002
Cr-Commit-Position: refs/heads/master@{#11357}
While transitioning over to rtc::CriticalSection completely, this gives perf benefits that rtc::CriticalSection has on Mac to current users of CriticalSectionWrapper.
BUG=
Review URL: https://codereview.webrtc.org/1614373002
Cr-Commit-Position: refs/heads/master@{#11356}
Use PlatformThreadRef, CurrentThreadRef and IsThreadRefEqual instead of pthread_t, pthread_self and operator== (or !=).
BUG=
Review URL: https://codereview.webrtc.org/1619153003
Cr-Commit-Position: refs/heads/master@{#11355}
According to my measurements, it's about 100x faster than the native mutex implementation in OSX. Google "OSX mutex performance" for more info.
BUG=
Review URL: https://codereview.webrtc.org/1594723003
Cr-Commit-Position: refs/heads/master@{#11352}
While doing this, I made a couple of minor changes:
* Removed unused variables (one lock and one video frame variable)
* Switched over to a scoped lock in remb.cc and removed an if() in a function where we can just return the expression being checked.
BUG=
R=mflodman@webrtc.org
Review URL: https://codereview.webrtc.org/1613053003 .
Cr-Commit-Position: refs/heads/master@{#11349}
Also remove mischievous tab character!
This is a part of getting rid of CriticalSectionWrapper and makes the code slightly simpler.
BUG=
Review URL: https://codereview.webrtc.org/1607353002
Cr-Commit-Position: refs/heads/master@{#11346}
When the file was rewound, the remaining audio read was inserted at
the start of the destination array, not where the first reading
attempt ended.
R=ivoc@webrtc.org
Review URL: https://codereview.webrtc.org/1612053002
Cr-Commit-Position: refs/heads/master@{#11343}
Callers can just remember the return value of
RentACodec::RentEncoderStack instead.
BUG=webrtc:5028
Review URL: https://codereview.webrtc.org/1612713002
Cr-Commit-Position: refs/heads/master@{#11340}
The FFmpeg video decoder requires up to 8 additional bytes to be allocated for its encoded image buffer input, due to optimized byte readers over-reading on some platforms.
We plan to use FFmpeg for a soon-to-land H.264 enc/dec.
This CL adds support for padding encoded image buffers based on codec type, and makes sure calls to VCMEncodedFrame::VerifyAndAllocate use the padding.
All padding constants are 0 but making H.264 pad with 8 bytes will be a one-line change.
Also, added -framework CoreFoundation to webrtc_h264_video_toolbox which was missing.
BUG=chromium:468365
BUG=https://bugs.chromium.org/p/webrtc/issues/detail?id=5424
NOTRY=True
Review URL: https://codereview.webrtc.org/1602523004
Cr-Commit-Position: refs/heads/master@{#11337}
Adds logging to RTPSender and RTCPSender, pushing an event log pointer from Channel through ModuleRtpRtcpImpl to the Sender objects.
BUG=webrtc:4741
Review URL: https://codereview.webrtc.org/1571283002
Cr-Commit-Position: refs/heads/master@{#11336}
Issue may occur for very small input images (e.g. 4x4) when encoded image length > input image size.
BUG=chromium:578193
Review URL: https://codereview.webrtc.org/1603643006
Cr-Commit-Position: refs/heads/master@{#11329}
Several unittests were disabled on android, this CL will reenable them. One of
the tests was accidentally disabled on all platforms, and now no longer gives a
bitexact result.
BUG=webrtc:3343,webrtc:5349
Review URL: https://codereview.webrtc.org/1532903002
Cr-Commit-Position: refs/heads/master@{#11323}
Provides a better string (provides names of all implementations), but
also fixes a crash when accessing the ImplementationName() of
SimulcastEncoderAdapter where InitEncode has failed.
BUG=chromium:577932, webrtc:4897
R=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1599353003 .
Cr-Commit-Position: refs/heads/master@{#11321}
This is a first cl of removing use of CriticalSectionWrapper after a series of cleanup CLs that have been landing recently (and still are landing).
BUG=
Review URL: https://codereview.webrtc.org/1610553002
Cr-Commit-Position: refs/heads/master@{#11316}
BUG=chromium:575990
TEST: Manual test using TextEdit full screen mode.
Review URL: https://codereview.webrtc.org/1579213007
Cr-Commit-Position: refs/heads/master@{#11311}
This helps with untangling CriticalSectionWrapper from ConditionVariableWrapper and looks like we can just delete ConditionVariableWrapper and use rtc::Event instead.
BUG=
R=pbos@webrtc.org
Review URL: https://codereview.webrtc.org/1606993002 .
Cr-Commit-Position: refs/heads/master@{#11309}
Constructing default options is racy when initializing multiple VP8
encoders in parallel. This is only used for VP8 temporal layers. Adding
TemporalLayerFactory to VP8 codec specifics instead of generic options.
Removes the last webrtc::Config uses/includes from video code.
Also removes VideoCodec equality operators which are no longer in use.
BUG=webrtc:5410
R=stefan@webrtc.orgTBR=mflodman@webrtc.org
Review URL: https://codereview.webrtc.org/1606613003 .
Cr-Commit-Position: refs/heads/master@{#11307}
There's no need for this class to have a vtable since there exists only a single implementation (per platform). It's also not good for performance.
BUG=
R=pbos@webrtc.org
Review URL: https://codereview.webrtc.org/1601743004 .
Cr-Commit-Position: refs/heads/master@{#11306}
That these declarations were missing was a bug, which apparently
didn't actually cause build problems in either Chromium or WebRTC
standalone. (Presumably, because rent_a_codec was always linked
together with other build targets that did declare such dependencies.)
BUG=webrtc:5435
Review URL: https://codereview.webrtc.org/1607463002
Cr-Commit-Position: refs/heads/master@{#11303}
Since this is on Windows only, I'm also using the CriticalSectionWrapper and ConditionVariableWrapper Windows types directly which allows us to skip 3 extra heap allocations. It also helps with the removal of the 'friend' relationship between ConditionVariableWrapper and CriticalSectionWrapper, which is causing headaches on Mac.
BUG=
Review URL: https://codereview.webrtc.org/1595983002
Cr-Commit-Position: refs/heads/master@{#11300}
This is a part of cleaning up 'friend' parts of ConditionVariableWrapper's implementation where it accesses private variables of CriticalSectionWrapper, which is not good since it makes assumptions about the implementation on all posix platforms.
Instead I'm using rtc::Event, another condition variable based implementation we have, and fits the requirements of UdpSocketPosix.
BUG=
R=pbos@webrtc.org
Review URL: https://codereview.webrtc.org/1591333002 .
Cr-Commit-Position: refs/heads/master@{#11295}
This removes dependency on ConditionVariableWrapper and CriticalSectionWrapper which currently have a 'friend' relationship that I'd like to get rid of.
BUG=
Review URL: https://codereview.webrtc.org/1590983005
Cr-Commit-Position: refs/heads/master@{#11292}