Commit Graph

3203 Commits

Author SHA1 Message Date
d673b0fa5d [rtp_rtcp] Fix potentional time difference between rtp and rtcp packets.
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}
2016-01-27 11:55:06 +00:00
bab934bffe H.264 video codec support using OpenH264 (http://www.openh264.org/) for encoding and FFmpeg (https://www.ffmpeg.org/) for decoding.
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}
2016-01-27 09:36:07 +00:00
7fd881743c Fix type of local encoded length variable from uint32_t to size_t.
BUG=chromium:571594

Review URL: https://codereview.webrtc.org/1635083002

Cr-Commit-Position: refs/heads/master@{#11383}
2016-01-26 15:26:12 +00:00
59b2d3ebe7 Remove zero-divide in VCMContentMetricsProcessing.
Protects against zero-framerate in UpdateFrameRate.

BUG=webrtc:5124
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1636943003 .

Cr-Commit-Position: refs/heads/master@{#11382}
2016-01-26 15:18:56 +00:00
83277131b1 AudioCodingModuleImpl: Put CodecManager and Rent-A-Codec in a separate struct
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}
2016-01-26 14:06:20 +00:00
d0c7bba4f4 [rtp_rtcp] Dlrr::SubBlock struct renamed to ReceiveTimeInfo
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}
2016-01-26 13:12:57 +00:00
6a07f12e95 AudioCodingModuleImpl: Initialize encoder_stack_ to nullptr
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}
2016-01-26 11:28:57 +00:00
2bdcfadc8a Revert of Removing webrtc::AudioFrame::energy_. (patchset #2 id:20001 of https://codereview.webrtc.org/1589953002/ )
Reason for revert:
The change breaks google3 tests for buzz/mediaengines/sae/audio_mixer.

Original issue's description:
> Remove webrtc::AudioFrame::energy_.
>
> BUG=webrtc:3315
>
> Committed: https://crrev.com/bacae81a1d91ae7b2a4bde37a66ab70513449989
> Cr-Commit-Position: refs/heads/master@{#11372}

TBR=kjellander@webrtc.org,henrik.lundin@webrtc.org,tommi@webrtc.org,minyue@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:3315

Review URL: https://codereview.webrtc.org/1634143002

Cr-Commit-Position: refs/heads/master@{#11377}
2016-01-26 10:29:54 +00:00
ffa3fdc8d6 Reallocate encoded buffer size if needed for VP8. Initially set to the input image size.
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}
2016-01-26 09:56:35 +00:00
4fd6cda067 Add tracing to VCMGenericEncoder::Release.
This call can take time, especially on mobile HW encoders. Make sure it
shows up in tracing.

BUG=webrtc:5167
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1606413002 .

Cr-Commit-Position: refs/heads/master@{#11374}
2016-01-26 09:20:03 +00:00
86956ded42 Small cleanup in VP9EncoderImpl::GetEncodedLayerFrame.
BUG=

Review URL: https://codereview.webrtc.org/1616843004

Cr-Commit-Position: refs/heads/master@{#11373}
2016-01-26 09:05:28 +00:00
bacae81a1d Remove webrtc::AudioFrame::energy_.
BUG=webrtc:3315

Review URL: https://codereview.webrtc.org/1589953002

Cr-Commit-Position: refs/heads/master@{#11372}
2016-01-25 22:10:40 +00:00
85b22e2306 Remove vp8_factory.{cc,h}.
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}
2016-01-25 16:58:08 +00:00
28ba92731d Switch to use new implementation in metrics.h.
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}
2016-01-25 13:58:27 +00:00
5ad935cb56 Remove mutable from rtc::CriticalSection members.
rtc::CriticalSection is now lockable from const methods and no longer
need to remain mutable.

BUG=
R=tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1613643004

Cr-Commit-Position: refs/heads/master@{#11367}
2016-01-25 11:52:53 +00:00
7a83951b27 Fix a bug in webrtc::ByteReader
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}
2016-01-25 07:47:59 +00:00
f91e6d0438 Enable cpplint for webrtc/modules/bitrate_controller and fix all uncovered cpplint errors.
This CL enableds cpplint for webrtc/modules/bitrate_controller.

BUG=webrtc:5311
NOTRY=true

TESTED=Fixed issues reported by:
find webrtc/modules/bitrate_controller -type f -name *.cc -o -name *.h | xargs cpplint.py
followed by 'git cl presubmit'.

Review URL: https://codereview.webrtc.org/1620003003

Cr-Commit-Position: refs/heads/master@{#11363}
2016-01-25 07:05:26 +00:00
38b39d59d1 Temporary hack to avoid assert errors when time moves backwards.
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}
2016-01-22 21:36:39 +00:00
9846845da6 Calculate audio levels in AEC in time domain.
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}
2016-01-22 13:46:47 +00:00
32e590ec13 class doesn't rely on structures in RTCPUtility to store data.
supports several fci items in same packet.
got accessors to read data

BUG=webrtc:5260
R=asapersson@webrtc.org, åsapersson

Review URL: https://codereview.webrtc.org/1544403002 .

Cr-Commit-Position: refs/heads/master@{#11354}
2016-01-22 10:05:10 +00:00
3fe2c6a161 VideoProcessorImpl using EncodedImage::GetBufferPaddingBytes.
BUG=https://bugs.chromium.org/p/webrtc/issues/detail?id=5424

Review URL: https://codereview.webrtc.org/1618853002

Cr-Commit-Position: refs/heads/master@{#11353}
2016-01-22 08:07:17 +00:00
fa156696dd Fix probing breakage with send-side BWE introduced by r11322.
BUG=chromium:580046, webrtc:4173

Review URL: https://codereview.webrtc.org/1615873002

Cr-Commit-Position: refs/heads/master@{#11344}
2016-01-21 16:55:08 +00:00
fea3dd83fc Fix a bug in InputAudioFile::Read
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}
2016-01-21 16:20:01 +00:00
32be07bc36 Remove RentACodec::GetEncoderStack
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}
2016-01-21 15:10:04 +00:00
d664836efa Added EncodedImage::GetBufferPaddingBytes.
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}
2016-01-21 13:43:18 +00:00
429c345b02 Fixes a bug which incorrectly logs incoming RTCP as outgoing.
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}
2016-01-21 13:42:10 +00:00
1f150b35f8 Add new NetEq resources to modules_unittests.isolate.
This should have been done in
https://codereview.webrtc.org/1515113002
but was not detected since the test doesn't run
on Android.

BUG=chromium:497757
NOTRY=True
TBR=minyue@webrtc.org

Review URL: https://codereview.webrtc.org/1613833003

Cr-Commit-Position: refs/heads/master@{#11334}
2016-01-21 12:42:25 +00:00
902c03e724 rtc_use_h264 flag (replacing use_third_party_h264 flag) for building OpenH264/FFmpeg, false by default but can be overridden in supplement.gypi and build_overrides/webrtc.gni.
BUG=468365
NOTRY=True

Review URL: https://codereview.webrtc.org/1601813005

Cr-Commit-Position: refs/heads/master@{#11333}
2016-01-21 11:34:47 +00:00
d9f641e341 Reallocate encoded buffer size if needed. Initially set to the input image size.
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}
2016-01-21 09:11:43 +00:00
d8dccd57ea uses standard types instead of RTCPUtility type to store data.
got member read accessors, got Parse function.

BUG=webrtc:5260
R=åsapersson

Review URL: https://codereview.webrtc.org/1552773002

Cr-Commit-Position: refs/heads/master@{#11324}
2016-01-20 20:08:58 +00:00
72c08edced Reenables several NetEq unittests on android.
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}
2016-01-20 15:26:28 +00:00
32f81542c2 Support REMB in combination with send-side BWE.
BUG=webrtc:4173

Review URL: https://codereview.webrtc.org/1581113006

Cr-Commit-Position: refs/heads/master@{#11322}
2016-01-20 15:14:03 +00:00
a5dec16b42 Name SimulcastEncoderApdater on InitEncode.
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}
2016-01-20 14:54:02 +00:00
9090e0b147 Switch CriticalSectionWrapper->rtc::CriticalSection in modules/audio_coding.
This is a part of cleaning up CriticalSectionWrapper in general.

BUG=
R=henrik.lundin@webrtc.org

Review URL: https://codereview.webrtc.org/1610073003 .

Cr-Commit-Position: refs/heads/master@{#11319}
2016-01-20 12:39:45 +00:00
f0b8a3784f Allow disabling denoiser when it is enabled.
BUG=webrtc:5255

Review URL: https://codereview.webrtc.org/1571423003

Cr-Commit-Position: refs/heads/master@{#11312}
2016-01-20 02:19:01 +00:00
3a6bf2d68b Enable full screen windows to be shown in window picker for mac. Before this patch a full screen window can be shared if sharing is started before the window is entered into full screen mode, but not if it's already in full screen.
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}
2016-01-20 01:34:20 +00:00
7b971e728b Remove extra_options from VideoCodec.
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.org
TBR=mflodman@webrtc.org

Review URL: https://codereview.webrtc.org/1606613003 .

Cr-Commit-Position: refs/heads/master@{#11307}
2016-01-19 15:26:24 +00:00
ee5a309f12 Make CriticalSectionWrapper non-virtual.
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}
2016-01-19 14:42:58 +00:00
0edb05b344 Declare that rent_a_codec depends on the audio codecs
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}
2016-01-19 13:54:31 +00:00
73674f8064 Replace hardcoded constant in video capture with macro.
The roll in https://codereview.webrtc.org/1593713013 introduced a
cast that is undefined behavior. The right way to fix it is to use
a macro.

NOTRY=True
TESTED=Tommi verified that the values are the same.

Review URL: https://codereview.webrtc.org/1608893003

Cr-Commit-Position: refs/heads/master@{#11302}
2016-01-19 13:49:25 +00:00
3c85cad1d4 Roll chromium_revision 7a4fb8d..f527e86 (370025:370073)
Change log: 7a4fb8d..f527e86
Full diff: 7a4fb8d..f527e86

No dependencies changed.

Clang was updated 255169:257953.
Details: 7a4fb8d..f527e86/tools/clang/scripts/update.py

NOTRY=True
NOPRESUBMIT=True

Review URL: https://codereview.webrtc.org/1593713013

Cr-Commit-Position: refs/heads/master@{#11301}
2016-01-19 12:47:24 +00:00
8d6fab8fac Remove two dead 'using' instances.
BUG=
TBR=pthatcher@webrtc.org, stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1609563003 .

Cr-Commit-Position: refs/heads/master@{#11296}
2016-01-18 23:24:36 +00:00
233bfd2da4 Move keyframe requests outside encoder mutex.
Enables faster keyframe requests since they are no longer blocked by
calls to the encoder.

BUG=webrtc:5410
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1600553003 .

Cr-Commit-Position: refs/heads/master@{#11294}
2016-01-18 19:23:51 +00:00
f8c2baca4e Add a gyp/gn variable for whether to use iLBC or not
BUG=webrtc:5415

Review URL: https://codereview.webrtc.org/1578953003

Cr-Commit-Position: refs/heads/master@{#11291}
2016-01-18 14:38:40 +00:00
34ed2b95a5 [rtp_rtcp] rtcp::SenderReport moved into own file and got Parse function
BUG=webrtc:5260
R=åsapersson

Review URL: https://codereview.webrtc.org/1544983002

Cr-Commit-Position: refs/heads/master@{#11288}
2016-01-18 10:43:38 +00:00
1567d0bd98 [rtp_rtcp] rtcp::Sdes moved into own file
Cleaning/Parsing will be done in the https://codereview.webrtc.org/1439553003/

BUG=webrtc:5260
R=asapersson@webrtc.org, åsapersson

Review URL: https://codereview.webrtc.org/1592763002 .

Cr-Commit-Position: refs/heads/master@{#11274}
2016-01-15 16:34:32 +00:00
2c13297bf5 [rtp_rtcp] rtcp::Rpsi moved into own file
Cleaning/Parsing will be done in the https://codereview.webrtc.org/1550293003/

BUG=webrtc:5260
R=asapersson@webrtc.org, åsapersson

Review URL: https://codereview.webrtc.org/1583233007 .

Cr-Commit-Position: refs/heads/master@{#11272}
2016-01-15 14:21:34 +00:00
256e5b23f8 Cleaning/Parsing will be done in the https://codereview.webrtc.org/1557593002/
BUG=webrtc:5260
R=asapersson@webrtc.org, åsapersson

Review URL: https://codereview.webrtc.org/1579213005 .

Cr-Commit-Position: refs/heads/master@{#11271}
2016-01-15 13:16:36 +00:00
5679da1291 [rtp_rtcp] rtcp::Fir moved into own file
Cleaning/Parsing will be done in the https://codereview.webrtc.org/1544403002

BUG=webrtc:5260
R=asapersson@webrtc.org, åsapersson

Review URL: https://codereview.webrtc.org/1581983003 .

Cr-Commit-Position: refs/heads/master@{#11269}
2016-01-15 12:19:59 +00:00
a5eba6c98b [rtp_rtcp] rtcp::Remb moved into own file
Cleaning/Parsing will be done in the https://codereview.webrtc.org/1552773002/

BUG=webrtc:5260
R=asapersson@webrtc.org, åsapersson

Review URL: https://codereview.webrtc.org/1590883002 .

Cr-Commit-Position: refs/heads/master@{#11268}
2016-01-15 11:40:27 +00:00