It's generated by some encoders between SPS/PPS and an IDR frame, so we should treat it like sps/pps.
BUG=
Review URL: https://codereview.webrtc.org/1664733002
Cr-Commit-Position: refs/heads/master@{#11470}
* SSRCDatabase doesn't need to be a global instance, so I've changed it to be a "regular" class (i.e. construct via ctor, not maybe via GetSSRCDatabase( + release via ReturnSSRCDatabase())). If we ever have parallel tests running in the same process, they won't have the problem of using the same ssrc database.
* Made RtpSender a more const. Also added some todos for myself and holmer to look into clarifying the threading model.
* Switched from CriticalSectionWrapper to rtc::CriticalSection
* Changed the random seeding to use TickTime::Now().Ticks() since TimeInMicroseconds() could return 0 when the process was starting. This is what TimeInMicroseconds() does anyway but now we don't need to access a global clock object.
BUG=webrtc:3062
Review URL: https://codereview.webrtc.org/1623543002
Cr-Commit-Position: refs/heads/master@{#11462}
New flag: rtc_initialize_ffmpeg, default value = !build_with_chromium.
In WebRTC standalone we initialize FFmpeg by default, in Chromium we don't by default.
Chromium is an external project that also use FFmpeg. If both projects do FFmpeg initialization code things will break. The flag makes it possible for other external projects than chromium to decide whether or not WebRTC should initialize FFmpeg.
BUG=chromium:500605, chromium:468365, webrtc:5427
Review URL: https://codereview.webrtc.org/1639273002
Cr-Commit-Position: refs/heads/master@{#11456}
Some WebRTC client had a problem with the change "Removing webrtc::AudioFrame::energy_". Now it is solved.
This reverts commit 2bdcfadc8abd418a30dd5cdf54ba45a429d3d9bf.
BUG=webrtc:3315
Review URL: https://codereview.webrtc.org/1638553003
Cr-Commit-Position: refs/heads/master@{#11448}
This makes it possible to handle send and receive streams with the same SSRC, which is currently the case in some peer connection tests.
Also moves sending transport feedback to the pacer thread.
BUG=webrtc:5263
Review URL: https://codereview.webrtc.org/1628683002
Cr-Commit-Position: refs/heads/master@{#11443}
Visual Studio 2015 balks at the implicit truncation of values. Easily fixed with an explicit cast.
Fixed redefinition of CLOCKS_PER_SEC when using Visual Studio 2015 and the Windows 10 SDK. CLOCKS_PER_SEC is also defined in "<WIN10 SDK DIR>\include\10.0.10240.0\ucrt\time.h" and also has the value of 1000
Hiding snprintf definition if building with Visual Studio 2015
Fixed C4573 compiler complaint in audio_processing_impl_locking_unittest.cc.
BUG=webrtc:5183
Review URL: https://codereview.webrtc.org/1412653006
Cr-Commit-Position: refs/heads/master@{#11434}
This argument is never used as a reference and the pointer that's bound
to the const reference may be nullptr. This is undefined behavior and
barks under UBSan.
BUG=webrtc:5124
R=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1642863003 .
Cr-Commit-Position: refs/heads/master@{#11418}
The level of the error signal after linear echo cancellation was based on non-buffered signal while that of the near-end and far-end signal based on buffered signal. This discrepancy made the comparison of them unfair.
This CL is to make calculating the error level rely on the same buffering.
BUG=
Review URL: https://codereview.webrtc.org/1510873004
Cr-Commit-Position: refs/heads/master@{#11408}
SetRtpState function was updating only rtp_sender start timestamp.
Now it updates both rtp_sender and rtcp_sender start timestamps.
BUG=webrtc:5433
R=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1628323003 .
Cr-Commit-Position: refs/heads/master@{#11393}
It works on all platforms except Android and iOS (FFmpeg limitation).
Implemented behind compile time flags, off by default.
The plan is to have it enabled in Chrome (see bug), but not in Chromium/webrtc by default.
Flags to turn it on:
- rtc_use_h264 = true
- ffmpeg_branding = "Chrome" (or other brand that includes H.264 decoder)
Tests using H264:
- video_loopback --codec=H264
- screenshare_loopback --codec=H264
- video_engine_tests (EndToEndTest.SendsAndReceivesH264)
NOTRY=True
BUG=500605, 468365
BUG=https://bugs.chromium.org/p/webrtc/issues/detail?id=5424
Review URL: https://codereview.webrtc.org/1306813009
Cr-Commit-Position: refs/heads/master@{#11390}
This will make it easier for future CLs to make them optional.
BUG=webrtc:5028
Review URL: https://codereview.webrtc.org/1625363002
Cr-Commit-Position: refs/heads/master@{#11381}
This structure is used outside Dlrr creating/parsing.
but RTCPReceiveTimeInfo structure doesn't follow naming style.
rtcp::ReceiveTimeInfo added to replace both Dlrr::SubBlock (when creating/parsing packets)
and RTCPReceiveTimeInfo (for other uses).
this CL is a split of https://codereview.webrtc.org/1557593002/
BUG=webrtc:5260
R=asapersson@webrtc.org, åsapersson
Review URL: https://codereview.webrtc.org/1631683002 .
Cr-Commit-Position: refs/heads/master@{#11380}
This should have been done in commit 11340, but it was left out by
mistake.
BUG=webrtc:5028
Review URL: https://codereview.webrtc.org/1631443002
Cr-Commit-Position: refs/heads/master@{#11378}
Issue may occur for very small input images (e.g. 4x4) when encoded image length > input image size.
BUG=chromium:571594
Review URL: https://codereview.webrtc.org/1626373002
Cr-Commit-Position: refs/heads/master@{#11376}
Removes use of global VP8EncoderFactory::use_simulcast_adapter which is
thread-unsafe. Also the code wasn't in use.
BUG=
R=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1598803005 .
Cr-Commit-Position: refs/heads/master@{#11370}
Sparse macro replaced for all video histograms that have a constant name.
BUG=webrtc:5283
Review URL: https://codereview.webrtc.org/1616153005
Cr-Commit-Position: refs/heads/master@{#11368}
The specializations for 4-byte reading did not return correct
values. This has to do with the order of casting and shifting. Also
adding a test to expose the bug (and verify the other byte sizes).
Review URL: https://codereview.webrtc.org/1615653011
Cr-Commit-Position: refs/heads/master@{#11364}
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}
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}