Commit Graph

6455 Commits

Author SHA1 Message Date
f6b5509229 Fix GYP and GN references that are invalid in Chromium builds.
There were a couple of GN and GYP references that were incorrect in Chromium builds:
- GN references between WebRTC targets must be using relative paths, not absolute.
- GYP references between WebRTC targets must be using the <(webrtc_root)v variable
  in order to be expanded to the correct path in a Chromium build.

NOTRY=True
TBR=hjon@webrtc.org, hbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11521}
2016-02-08 07:04:33 +00:00
1afca73055 Change to WebRTC license in webrtc/media
This was decided to be done in a separate CL from the move
that took place in https://codereview.webrtc.org/1587193006/

BUG=webrtc:5420
NOTRY=True
TBR=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11520}
2016-02-08 04:46:50 +00:00
a81f6a3fc0 Revert of Default build flag |rtc_use_h264| to |proprietary_codecs| if not on Android/iOS. (patchset #1 id:1 of https://codereview.webrtc.org/1674103002/ )
Reason for revert:
Chromium FYI turns red.

Original issue's description:
> Default build flag |rtc_use_h264| to |proprietary_codecs|
> if not on Android/iOS.
>
> This means proprietary_codecs=1 && ffmpeg_branding=Chrome
> can be used to enable this H.264 enc/dec implementation
> instead of rtc_use_h264=1 && ffmpeg_branding=Chrome.
> This is used by both Chromium trybots (but not default
> Chromium build) and offical Chrome build, meaning we will
> be able to test and enable H.264 in chromium.
>
> This change would otherwise be enough to launch this
> feature in Chrome, but because we do not want to do that
> before we have chromium browser tests and are ready to flip
> the switch, this CL prevents chromium from using H.264 just
> yet: https://codereview.chromium.org/1641163002/ (landing
> this after that CL).
>
> Note: This is a re-land of
> https://codereview.webrtc.org/1660403004/. Reverting it
> was not necessary.
>
> TBR=kjellander@webrtc.org
> BUG=chromium:500605, chromium:468365
>
> Committed: https://crrev.com/10b9dd7ab1a8c3f80b2d2924be658e43131a4fbe
> Cr-Commit-Position: refs/heads/master@{#11517}

TBR=kjellander@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:500605, chromium:468365

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

Cr-Commit-Position: refs/heads/master@{#11518}
2016-02-07 23:05:26 +00:00
10b9dd7ab1 Default build flag |rtc_use_h264| to |proprietary_codecs|
if not on Android/iOS.

This means proprietary_codecs=1 && ffmpeg_branding=Chrome
can be used to enable this H.264 enc/dec implementation
instead of rtc_use_h264=1 && ffmpeg_branding=Chrome.
This is used by both Chromium trybots (but not default
Chromium build) and offical Chrome build, meaning we will
be able to test and enable H.264 in chromium.

This change would otherwise be enough to launch this
feature in Chrome, but because we do not want to do that
before we have chromium browser tests and are ready to flip
the switch, this CL prevents chromium from using H.264 just
yet: https://codereview.chromium.org/1641163002/ (landing
this after that CL).

Note: This is a re-land of
https://codereview.webrtc.org/1660403004/. Reverting it
was not necessary.

TBR=kjellander@webrtc.org
BUG=chromium:500605, chromium:468365

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

Cr-Commit-Position: refs/heads/master@{#11517}
2016-02-07 22:40:46 +00:00
e796f96378 check v4l frame rate capability with bitwise method.
BUG=webrtc:5462
TEST=autotest
R=perkj@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11512}
2016-02-06 01:06:25 +00:00
1c24a6d5ca Set use_gtk=0 as default for Chromium builds.
The files that are built when use_gtk==1 are not included in the Chromium build
(webrtc/media/devices/gtkvideorenderer.cc and webrtc/media/devices/gtkvideorenderer.h)
so to preserve previous behavior in Chromium before/after
https://codereview.webrtc.org/1587193006, this is the right thing to do.

The reason this was discovered was that a Chrome OS build started failing, since
it was lacking the gtk+2.0 package.

NOTRY=True
BUG=chromium:584722
TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11510}
2016-02-05 21:10:46 +00:00
c09525a547 Revert of Default build flag |rtc_use_h264| to |proprietary_codecs| if not on Android/iOS. (patchset #1 id:1 of https://codereview.webrtc.org/1660403004/ )
Reason for revert:
Trybots red? Don't have time to intvestigate

Original issue's description:
> Default build flag |rtc_use_h264| to |proprietary_codecs|
> if not on Android/iOS.
>
> This means proprietary_codecs=1 && ffmpeg_branding=Chrome
> can be used to enable this H.264 enc/dec implementation
> instead of rtc_use_h264=1 && ffmpeg_branding=Chrome.
> This is used by both Chromium trybots (but not default
> Chromium build) and offical Chrome build, meaning we will
> be able to test and enable H.264 in chromium.
>
> This change would otherwise be enough to launch this
> feature in Chrome, but because we do not want to do that
> before we have chromium browser tests and are ready to flip
> the switch, this CL prevents chromium from using H.264 just
> yet: https://codereview.chromium.org/1641163002/ (landing
> this after that CL).
>
> BUG=chromium:500605, chromium:468365
>
> Committed: https://crrev.com/7cd94f66ebfe5bf808d7dcb8da069d35f4a2b31a
> Cr-Commit-Position: refs/heads/master@{#11506}

TBR=kjellander@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:500605, chromium:468365

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

Cr-Commit-Position: refs/heads/master@{#11508}
2016-02-05 19:02:47 +00:00
50fca62809 Remove fake cricket::VideoCapturer devices.
Changes rtc_media to depend on rtc_base_approved instead of rtc_base.

BUG=
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11507}
2016-02-05 18:40:44 +00:00
7cd94f66eb Default build flag |rtc_use_h264| to |proprietary_codecs|
if not on Android/iOS.

This means proprietary_codecs=1 && ffmpeg_branding=Chrome
can be used to enable this H.264 enc/dec implementation
instead of rtc_use_h264=1 && ffmpeg_branding=Chrome.
This is used by both Chromium trybots (but not default
Chromium build) and offical Chrome build, meaning we will
be able to test and enable H.264 in chromium.

This change would otherwise be enough to launch this
feature in Chrome, but because we do not want to do that
before we have chromium browser tests and are ready to flip
the switch, this CL prevents chromium from using H.264 just
yet: https://codereview.chromium.org/1641163002/ (landing
this after that CL).

BUG=chromium:500605, chromium:468365

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

Cr-Commit-Position: refs/heads/master@{#11506}
2016-02-05 18:31:26 +00:00
900f97534b H264: Improve FFmpeg decoder performance by using I420BufferPool.
Had to update I420BufferPool to allow zero-initializing buffers.

BUG=chromium:500605, chromium:468365, webrtc:5428

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

Cr-Commit-Position: refs/heads/master@{#11505}
2016-02-05 16:08:39 +00:00
c6e16e3d91 Use a delayed encoder in GetStats test.
Guarantees seeing non-zero CpuOveruseMetrics stats.

BUG=
R=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11504}
2016-02-05 13:16:03 +00:00
f751bf8679 Set VideoReceiveStream members in init list.
Removes scoped_ptrs and resets, preventing some heap allocation but also
overall showing that these objects won't be reconstructed on the fly.

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

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

Cr-Commit-Position: refs/heads/master@{#11503}
2016-02-05 13:00:58 +00:00
f174e3a260 [rtp_rtcp] rtcp::Tmmbr cleaned and got Parse function
Added accessor and Parse function
removed dependencies on structures from rtcp_utility.h (except RtcpCommonHeader)

BUG=webrtc:5260
R=åsapersson

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

Cr-Commit-Position: refs/heads/master@{#11502}
2016-02-05 12:56:40 +00:00
48fa27136a Made implicit casts in the echo canceller explicit.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11501}
2016-02-05 11:16:27 +00:00
1d04ac6f29 Untangle ViEChannel and ViEEncoder.
Extracts shared members outside the two objects, removing PayloadRouter
from receivers and the VCM for ViEChannel from senders.

Removes Start/StopThreadsAndSetSharedMembers that was used to set the
shared state between them.

Also adding DCHECKs to document what's only used by the
sender/receiver side.

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

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

Cr-Commit-Position: refs/heads/master@{#11500}
2016-02-05 10:25:52 +00:00
e449915455 Measure encoding time on encode callbacks.
Permits measuring encoding time even when performed on another thread,
typically for hardware encoding, instead of assuming that encoding is
blocking the calling thread.

Permitted encoding time is increased for hardware encoders since they
can be timed to keep 30fps, for instance, without indicating overload.

Merges EncodingTimeObserver into EncodedFrameObserver to have one post-encode
callback.

BUG=webrtc:5042, webrtc:5132
R=asapersson@webrtc.org, mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11499}
2016-02-05 10:13:41 +00:00
25d1f28fa9 Fix race between Thread ctor/dtor and MessageQueueManager registrations.
This CL fixes a race where for Thread objects the parent MessageQueue
constructor registers the object in the MessageQueueManager even though
the Thread is not constructed completely yet. Same happens during
destruction.

BUG=webrtc:1225

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

Cr-Commit-Position: refs/heads/master@{#11497}
2016-02-05 08:25:04 +00:00
988d31eb9b Move gtest_prod_util.h out of webrtc/test tree.
This is needed because the target is defined in webrtc/common.gyp
and its current location crosses package boundaries when generating
projects for some build systems.

NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#11496}
2016-02-05 08:23:57 +00:00
a96e2d77cb Move talk/media to webrtc/media
I removed the 'libjingle' target in talk/libjingle.gyp and replaced
all users of it with base/base.gyp:rtc_base. It seems the jsoncpp
and expat dependencies were not used by it's previous references.

The files in talk/media/testdata were uploaded to Google Storage and
added .sha1 files in resources/media instead of simply moving them.

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 in order to not
break Git history.

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.
* Unused GYP reference to libjingle_tests_additional_deps was removed.
* Removed duplicated GYP entries of
  webrtc/base/testutils.cc
  webrtc/base/testutils.h

The HAVE_WEBRTC_VIDEO and HAVE_WEBRTC_VOICE defines were used by only talk/media,
so they were moved to the media.gyp.

I also checked that none of
EXPAT_RELATIVE_PATH,
FEATURE_ENABLE_VOICEMAIL,
GTEST_RELATIVE_PATH,
JSONCPP_RELATIVE_PATH,
LOGGING=1,
SRTP_RELATIVE_PATH,
FEATURE_ENABLE_SSL,
FEATURE_ENABLE_VOICEMAIL,
FEATURE_ENABLE_PSTN,
HAVE_SCTP,
HAVE_SRTP,
are used by the talk/media 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/1604303002/

BUG=webrtc:5420
NOPRESUBMIT=True
TBR=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11495}
2016-02-05 07:52:35 +00:00
a92d6be411 rtcp::TmmbItem designed to replace RTCPUtility::RTCPPacketRTPFBTMMBRItem (for creating and parsing rtcp TMMBR/TMMBN packets)
std::vector<rtcp::TmmbItem> will replace TMMBRSet class for storage, processing and preparing TMBBR/TMMBN
(i.e. this TmmbItem replaces Timber structure introduced in https://codereview.webrtc.org/1474693002 )
Previous structures store bitrate in kbps. TmmbItem use bps removing need to regularly divide and multiply by 1000.

BUG=webrtc:5260
R=åsapersson

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

Cr-Commit-Position: refs/heads/master@{#11491}
2016-02-04 15:33:44 +00:00
15ba6242ad Revert of Rename iOS test specs to match buildbot names. (patchset #1 id:1 of https://codereview.webrtc.org/1665783002/ )
Reason for revert:
*sigh* that didn't work, the reading of the JSON file fails (which I was suspecting it would).
Example: https://build.chromium.org/p/client.webrtc.fyi/builders/iOS64%20Simulator%20Debug/builds/17/steps/steps/logs/stdio

I'll rename all the iOS bots instead since I think it's reasonably rare we link to their logs, so there won't be that many broken URLs.

Original issue's description:
> Rename iOS test specs to match buildbot names.
>
> I really prefer not using spaces in any filenames but
> if we were to rename all the bots all existing URLs to builds
> would stop working (or we'd loose the build history), so I'd
> like to see if this works first.
> The bots that hits the errors are the new ones I'm experimenting
> with in client.webrtc.fyi. Example failing build:
> https://build.chromium.org/p/client.webrtc.fyi/builders/iOS64%20Simulator%20Debug
>
> BUG=chromium:498746
> NOTRY=True
> TBR=phoglund@webrtc.org
>
> Committed: https://crrev.com/86512b401ecee4b5e18ee6fbec28ec9c1d0ead9b
> Cr-Commit-Position: refs/heads/master@{#11473}

TBR=phoglund@webrtc.org
NOTRY=True
NOPRESUBMIT=True
BUG=chromium:498746

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

Cr-Commit-Position: refs/heads/master@{#11489}
2016-02-04 14:13:51 +00:00
ba4c0e45ff Add send-side BWE to WebRtcVoiceEngine under a finch experiment.
This adds negotiation of both transport sequence number and transport
feedback. Only offers transport seq num if the
WebRTC-Audio-SendSideBwe finch experiment is enabled.

TBR=mflodman@webrtc.org
BUG=webrtc:5263

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

Cr-Commit-Position: refs/heads/master@{#11487}
2016-02-04 12:12:31 +00:00
2ddb8bd359 Avoid undefined behavior in vp8 screenshare_layers
active_layer_ could be dereferenced while being -1...
Also added som DCHECKs

BUG=webrtc:5490

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

Cr-Commit-Position: refs/heads/master@{#11486}
2016-02-04 11:59:57 +00:00
c2148a50d2 Integrate helper macros for calling histograms with different names (real-time vs screenshare and rampup metrics).
Sparse macro is replaced and new implementation in metrics.h is used.

BUG=webrtc:5283

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

Cr-Commit-Position: refs/heads/master@{#11483}
2016-02-04 08:33:29 +00:00
f2a2bf4ae4 Stay writable after partial socket writes.
This CL fixes an issue where the "writable" flag didn't stay set after
::send or ::sendto only sent a partial buffer.

Also SocketTest::TcpInternal has been updated to use rtc::Buffer instead
of manually allocating data.

BUG=webrtc:4898

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

Cr-Commit-Position: refs/heads/master@{#11480}
2016-02-04 00:45:38 +00:00
5c35cf9f8e Re-enable RestartingSendStreamPreservesRtpState.
based on https://codereview.webrtc.org/1457283002/
Packets allowed now to come out of order.

BUG=webrtc:3552
R=pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11477}
2016-02-03 22:14:57 +00:00
e03ac51aa1 Implement NullVideoDecoder to avoid crash on unsupported decoders.
There is a use case with external codec factories that only support
encoding but not decoding for a given type. This leads to a crash
due to null being registered as codec (after a DCHECK).

This CL adds a NullVideoDecoder that is used instead of the null to
not crash but log to LS_ERROR.

BUG=webrtc:5249

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

Cr-Commit-Position: refs/heads/master@{#11475}
2016-02-03 13:51:56 +00:00
9dc5928eb2 Ability to disable the effects of |rtc_use_h264| with DisableRtcUseH264.
Renamed the WEBRTC_THIRD_PARTY_H264 macro to WEBRTC_USE_H264 to match flag name.

The idea is to be able to turn off H264 from chromium with this function because...
1) The Chromium trybots will soon use this flag, we want to temporarily disable H264 from chromium even if flag is set in case something is broken. That way when we are ready to flip the switch the trybots will run our test code then and not after it is already enabled.
2) If feature is launched and we discover major problems we can easily disable H264 and merge with beta/stable.
3) Or, if feature is behind a *runtime* flag, this is how we would control if it is used or not.

The idea is to call DisableRtcUseH264 in chromium's PeerConnectionDependencyFactory.

BUG=chromium:500605, chromium:468365
NOTRY=True
NOPRESUBMIT=True

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

Cr-Commit-Position: refs/heads/master@{#11474}
2016-02-03 13:09:40 +00:00
86512b401e Rename iOS test specs to match buildbot names.
I really prefer not using spaces in any filenames but
if we were to rename all the bots all existing URLs to builds
would stop working (or we'd loose the build history), so I'd
like to see if this works first.
The bots that hits the errors are the new ones I'm experimenting
with in client.webrtc.fyi. Example failing build:
https://build.chromium.org/p/client.webrtc.fyi/builders/iOS64%20Simulator%20Debug

BUG=chromium:498746
NOTRY=True
TBR=phoglund@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11473}
2016-02-03 12:41:10 +00:00
10880011d9 Support multiple rtx codecs.
Adds negotiation of rtx codecs for red and vp9. To keep backwards
compatibility with older Chrome versions, this change includes two
hacks:
1. Red packets will be retransmitted over the rtx codec associated with
   vp8 if no rtx codec is associated with red. This is how Chrome does
   it today and ensures that we still can send red over rtx to older
   versions.

2. If rtx packets associated with the media codec (vp8/vp9 etc) are
   received and red has been negotiated, we will assume that the sender
   incorrectly has packetized red inside the rtx header associated with
   media. We will therefore restore it with the red payload type
   instead, which ensures that we can still receive rtx associated with
   red from old versions.

Offering multiple rtx codecs to older versions should not be a problem
since old versions themselves only try to negotiate rtx for vp8.

R=pbos@webrtc.org
TBR=mflodman@webrtc.org
BUG=webrtc:4024
TEST=Verified by running apprtc and emulating packet loss between Chrome with and without the patch.

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

Cr-Commit-Position: refs/heads/master@{#11472}
2016-02-03 12:30:10 +00:00
d983c3c9e5 Add SEI to the list of packets counted as keyframe.
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}
2016-02-03 11:43:50 +00:00
d1fb26d457 Add iOS tracing.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11469}
2016-02-03 09:51:22 +00:00
8e85a3f39a iOS buildbot configurations.
This will make it possible for WebRTC to use the same buildbot
scripts as Chrome's iOS bots.
Buildbot changes are done in https://codereview.chromium.org/1659163003/

BUG=chromium:498746
NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#11468}
2016-02-03 08:06:06 +00:00
2ab815779c Remove implicit downcast in producer_fec_fuzzer.cc.
Speculative fix for DrFuzz.

BUG=
TBR=stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11465}
2016-02-02 21:31:11 +00:00
c3a0983d4b Roll chromium_revision a8e5140..c6076f2 (372922:372974) incl. update to Opus v.1.1.2
Includes updates to tests for Opus v.1.1.2, reveiwed in
https://codereview.webrtc.org/1629413002/

Change log: a8e5140..c6076f2
Full diff: a8e5140..c6076f2

Changed dependencies:
* src/third_party/catapult: 471db30..d4d48e6
* src/third_party/opus/src: cae6961..655cc54
DEPS diff: a8e5140..c6076f2/DEPS

No update to Clang.

BUG=chromium:580524
TBR=

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

Cr-Commit-Position: refs/heads/master@{#11464}
2016-02-02 21:18:42 +00:00
a7ad7c3ca0 Get the adapter type information from Android OS.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#11463}
2016-02-02 20:54:28 +00:00
ae695e95a6 Refactor RtpSender and SSRCDatabase.
* 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}
2016-02-02 16:34:16 +00:00
040b79ff7e Add helper macros for calling a histogram with different names.
To be used when a metric is used in different modes such as real-time vs screenshare (will be done in https://codereview.webrtc.org/1564923008/).

BUG=webrtc:5283

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

Cr-Commit-Position: refs/heads/master@{#11461}
2016-02-02 15:13:16 +00:00
ed3277bf14 Deprecate VideoDecoder::Reset() and remove calls.
Removes calls to decoder reset and instead drops delta frames and
requests keyframes until one arrives.

BUG=webrtc:5475
R=stefan@webrtc.org
TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11460}
2016-02-02 14:40:13 +00:00
c5a39c2591 H264: Thread-safe InitializeFFmpeg. Flag to control if InitializeFFmpeg should be called.
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}
2016-02-02 10:30:57 +00:00
799379e8c2 Let a minimum time interval pass (one bucket size) after initialization before reporting rates (to avoid rates being based on too short time intervals).
BUG=chromium:570038

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

Cr-Commit-Position: refs/heads/master@{#11455}
2016-02-02 09:47:05 +00:00
c463e20069 Reset TURN port NONCE when a new socket is created.
For example, when the TURN port has an ALLOCATE_MISMATCH error.

BUG=webrtc:5432

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

Cr-Commit-Position: refs/heads/master@{#11453}
2016-02-01 23:19:24 +00:00
6f7557e9e2 Disable useless BWE tests.
TBR=kjellander@webrtc.org
BUG=webrtc:5468

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

Cr-Commit-Position: refs/heads/master@{#11449}
2016-02-01 18:24:23 +00:00
e37a2d1802 Reland "Removing webrtc::AudioFrame::energy_."
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}
2016-02-01 18:02:45 +00:00
d8de1154c9 Remove mutable from rtc::CriticalSections.
A couple of mutables were added after last removal of mutables, so
removing those. rtc::CriticalSection is const-lockable.

BUG=
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11447}
2016-02-01 17:00:59 +00:00
34877eeec9 Revert of Added validation between RTP and RTCP timestamps (patchset #7 id:120001 of https://codereview.webrtc.org/1633843003/ )
Reason for revert:
May be the reason for mac_asan timeout

Original issue's description:
> Changed test to validate rtp timstamps not just in RTP packets but also in RTCP Sender Reports.
> Altered it to accept negative value since it is normal for RTCP packet coming before RTP packet to have slightly later time.
>
> BUG=webrtc:5433
>
> Committed: https://crrev.com/f4b9c775122b463db7eb2c4101603759a0d00caf
> Cr-Commit-Position: refs/heads/master@{#11417}

TBR=pbos@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:5433

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

Cr-Commit-Position: refs/heads/master@{#11446}
2016-02-01 16:25:08 +00:00
74451a5ea9 Prevent zero division in VCMJitterEstimator.
BUG=webrtc:5124
R=sprang@webrtc.org, stefan@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11445}
2016-02-01 15:31:17 +00:00
bba9dec4d5 Use separate rtp module lists for send and receive in PacketRouter.
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}
2016-02-01 12:40:04 +00:00
1f611fa58b Fixed minor issue: added missing semicolons to metric_recorder.cc
Review URL: https://codereview.webrtc.org/1649353002

Cr-Commit-Position: refs/heads/master@{#11442}
2016-02-01 11:09:19 +00:00
e1f2f1fbb8 Unwrap timestamps in VideoAnalyzer
We have seen an instance of flakiness of the perf tests where it looked
like timestamp wraparound could be an issue. Better safe...

BUG=

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

Cr-Commit-Position: refs/heads/master@{#11440}
2016-02-01 10:05:00 +00:00