925 Commits

Author SHA1 Message Date
deadbeef
bd28681d02 Refactoring that removes P2PTransport and DtlsTransport classes.
Their base class, Transport, still exists, but it now has a more specific
role: a helper class that applies TransportDescriptions. And is renamed
to JsepTransport as a result.

TransportController is now the entity primarily responsible for managing
TransportChannels. It also starts storing pointers to the DTLS and ICE
chanels separately, which will make it easier to remove
TransportChannel/TransportChannelImpl in a subsequent CL.

BUG=None

Review-Url: https://codereview.webrtc.org/2517883002
Cr-Commit-Position: refs/heads/master@{#15450}
2016-12-06 22:56:26 +00:00
zhihuang
ebbe4f2ed5 Set the preferred DSCP value for Rtp data channel to be DSCP_AF41.
BUG=b/31996729

Review-Url: https://codereview.webrtc.org/2539813003
Cr-Commit-Position: refs/heads/master@{#15449}
2016-12-06 18:45:47 +00:00
magjed
768c64877e Move /webrtc/api/android files to /webrtc/sdk/android
I decided to make one webrtc/sdk/android/BUILD.gn for both tests and Java/jni src.

External dependencies needs to be updated after this CL.

Future work is required to clean up the Android api and move
implementation details to /webrtc/sdk/android/src.

BUG=webrtc:5882,webrtc:6804
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2547483003
Cr-Commit-Position: refs/heads/master@{#15443}
2016-12-06 12:29:45 +00:00
deadbeef
4c6696c912 Revert of Disable P2PTestConductor.LocalP2PTestDtlsBundleInIceRestart under msan (patchset #1 id:1 of https://codereview.webrtc.org/2546913003/ )
Reason for revert:
Should be fixed (for good this time) by https://codereview.webrtc.org/2544003004/

Original issue's description:
> Disable P2PTestConductor.LocalP2PTestDtlsBundleInIceRestart under msan
>
> The test is flaky.
>
> BUG=webrtc:6811
> TBR=deadbeef@webrtc.org
>
> Committed: https://crrev.com/a28a1b9db6b8b44b3687c45fddf834e81b921b20
> Cr-Commit-Position: refs/heads/master@{#15382}

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

Review-Url: https://codereview.webrtc.org/2546183003
Cr-Commit-Position: refs/heads/master@{#15399}
2016-12-03 02:09:09 +00:00
deadbeef
c23efae6b2 Allow locally rendered video to be downscaled in end-to-end tests.
A previous CL (https://codereview.webrtc.org/2547673002/) only did this
for end-to-end rendered video. But it appears locally rendered video is
downscaled too.

BUG=webrtc:6811

Review-Url: https://codereview.webrtc.org/2544003004
Cr-Commit-Position: refs/heads/master@{#15397}
2016-12-02 23:45:36 +00:00
zhihuang
c63b894686 Modify the parameter type of PeerConnectionObserver callback OnAddTrack.
Change the second parameter type to a const reference of vector so that
the vector will not be copied.

BUG=none

Review-Url: https://codereview.webrtc.org/2551603003
Cr-Commit-Position: refs/heads/master@{#15396}
2016-12-02 23:41:15 +00:00
nisse
b2250e5dbb New gn target video_frame_api.
This is in preparation for https://codereview.webrtc.org/2517173004/,
which needs some updates of downstream dependencies. This cl adds the
target to api/BUILD.gn, creates the directory api/video, and a single
harmless include file there.

BUG=webrtc:5880

Review-Url: https://codereview.webrtc.org/2546723003
Cr-Commit-Position: refs/heads/master@{#15385}
2016-12-02 12:01:21 +00:00
henrik.lundin
a28a1b9db6 Disable P2PTestConductor.LocalP2PTestDtlsBundleInIceRestart under msan
The test is flaky.

BUG=webrtc:6811
TBR=deadbeef@webrtc.org

Review-Url: https://codereview.webrtc.org/2546913003
Cr-Commit-Position: refs/heads/master@{#15382}
2016-12-02 10:59:37 +00:00
deadbeef
b465980fd7 In end-to-end PeerConnection tests, allow video to be downscaled.
QualityScaler may scale down the resolution, so our tests shouldn't
expect the input resolution to exactly match the resolution received on
the other side. Instead, we now just check that the aspect ratio
matches.

BUG=webrtc:5907

Review-Url: https://codereview.webrtc.org/2547673002
Cr-Commit-Position: refs/heads/master@{#15373}
2016-12-02 00:23:36 +00:00
deadbeef
8f89bff9a6 Revert of Disabled flaky P2PTestConductor tests on ASAN and MSAN. (patchset #1 id:1 of https://codereview.webrtc.org/2539103002/ )
Reason for revert:
The flaky tests should now be fixed.

Original issue's description:
> Disabled flaky P2PTestConductor tests on ASAN and MSAN.
>
> TBR=deadbeef@webrtc.org
> BUG=webrtc:6776
>
> Committed: https://crrev.com/8d66a5a3b18eef73b238f4220477da265bf4494b
> Cr-Commit-Position: refs/heads/master@{#15324}

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

Review-Url: https://codereview.webrtc.org/2550453003
Cr-Commit-Position: refs/heads/master@{#15371}
2016-12-01 20:54:28 +00:00
magjed
665bc3c7ad Move webrtc/api/androidtests to webrtc/sdk/android/instrumentationtests
BUG=webrtc:5882
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2541823002
Cr-Commit-Position: refs/heads/master@{#15352}
2016-12-01 09:45:35 +00:00
skvlad
ed6e077263 Make SurfaceTextureHelper and I420Frame public in Java.
This change makes the Java classes and constructors for
SurfaceTextureHelper and I420Frame public. This allows applications to
use the WebRTC CameraVideoCapturer to obtain raw frames, and to render
frames on the WebRTC VideoRenderer without having to pass them through a
VideoTrack - such as when using Quartc.

BUG=None.

Review-Url: https://codereview.webrtc.org/2544563002
Cr-Commit-Position: refs/heads/master@{#15344}
2016-11-30 22:40:23 +00:00
sakal
3a9bc1790a Allow custom drawers to be added to framelisteners.
BUG=webrtc:6470

Review-Url: https://codereview.webrtc.org/2541053002
Cr-Commit-Position: refs/heads/master@{#15342}
2016-11-30 16:30:11 +00:00
kthelgason
127387e5ce Delete nalu parser in mediaencoder
We already have an implementation in h264_common. We should have
as few of these as possible as they are subtly hard to get right
and it creates work to maintain N implementations.

BUG=webrtc:6546

Review-Url: https://codereview.webrtc.org/2538133002
Cr-Commit-Position: refs/heads/master@{#15336}
2016-11-30 15:12:54 +00:00
ossu
8d66a5a3b1 Disabled flaky P2PTestConductor tests on ASAN and MSAN.
TBR=deadbeef@webrtc.org
BUG=webrtc:6776

Review-Url: https://codereview.webrtc.org/2539103002
Cr-Commit-Position: refs/heads/master@{#15324}
2016-11-30 12:23:39 +00:00
hbos
0583b286e4 Collecting RTCIceCandidatePairStats.transport_id and improved unittests.
RTCIceCandidatePairStats.transport_id is set to the related
RTCTransportStats' id.

Unittest for RTCIceCandidatePairStats is updated to do EXPECT_EQ
between actual and an expected hardcoded dictionary. The previous way of
testing, ExpectReportContainsCandidatePair, is removed.

(ExpectReportContainsCandidate still exist, we might want to replace
this by EXPECT_EQ testing in a follow up.)

Unittest for RTCTransportStats is similarly updated and
ExpectReportContainsTransportStats is removed. A bug was uncovered where
the "rtcp_connection_info.best_connection = true" case was not tested
(a copy of rtcp_connection_info was used in the test, modifying that had
no affect on the test) - fixed.

rtcstats_integrationtest.cc updated to take transport_id into account.

In order to reuse an updated version of expected_rt[c]p_transport in the
unittest, timestamps are ignored by RTCStats::operator==.

BUG=chromium:627816, chromium:653873, chromium:653873, webrtc:6755

Review-Url: https://codereview.webrtc.org/2527113002
Cr-Commit-Position: refs/heads/master@{#15316}
2016-11-30 09:50:36 +00:00
hbos
db346a7cbe RTCStatsIntegrationTest added.
This is an integration test using peerconnectiontestwrapper.h to set up
and end to end test using a real PeerConnection implementation. These
tests will complement rtcstatscollector_unittest.cc which collects all
stats using mocks.

The integration test is set up so that all stats types are returned by
GetStats and verifies that expected dictionary members are defined. The
test could in the future be updated to include sanity checks for the
values of members. There is a sanity check that references to other
stats dictionaries yield existing stats of the appropriate type, but
other than that members are only tested for if they are defined not.

StatsCallback of rtcstatscollector_unittest.cc is moved so that it can
be reused and renamed to RTCStatsObtainer.

TODO: Audio stream track stats members are missing in the test. Find out
if this is because of a real problem or because of testing without real
devices. Do this before closing crbug.com/627816.

BUG=chromium:627816

Review-Url: https://codereview.webrtc.org/2521663002
Cr-Commit-Position: refs/heads/master@{#15287}
2016-11-29 09:57:08 +00:00
kthelgason
876222f77d Move usage of QualityScaler to ViEEncoder.
This brings QualityScaler much more in line with OveruseFrameDetector.
The two classes are conceptually similar, and should be used in the
same way. The biggest changes in this CL are:
- Quality scaling is now only done in ViEEncoder and not in each
  encoder implementation separately.
- QualityScaler now checks the average QP asynchronously, instead of
  having to be polled on each frame.
- QualityScaler is no longer responsible for actually scaling the frames,
  but has a callback to ViEEncoder that it uses to express it's desire
  for lower resolution.

BUG=webrtc:6495

Review-Url: https://codereview.webrtc.org/2398963003
Cr-Commit-Position: refs/heads/master@{#15286}
2016-11-29 09:44:22 +00:00
sakal
bb58435da0 Fix potential synchronization issues with framelisteners in EglRenderer.
Previously, a frame queued before calling addFrameListener could be
passed to the listener. Also fixes an issue where listener could still
be called after removeFrameListener call returned.

BUG=webrtc:6470

Review-Url: https://codereview.webrtc.org/2529313002
Cr-Commit-Position: refs/heads/master@{#15275}
2016-11-28 16:53:50 +00:00
sakal
d1aaaaa125 Remove surface size mismatch logic from EglRenderer.
This logic doesn't really work. Application should mask the view while
the surface size is being changed.

BUG=webrtc:6470

Review-Url: https://codereview.webrtc.org/2528243003
Cr-Commit-Position: refs/heads/master@{#15273}
2016-11-28 16:47:12 +00:00
philipel
7703b27c42 Disable PeerConnectionEndToEndTest.CallWithLegacySdp on Asan bots.
BUG=webrtc:6765
TBR=mflodman@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#15271}
2016-11-28 15:23:20 +00:00
aleloi
a8eb756a34 Moved transport.h from webrtc/ to webrtc/api, created build target and updated WebRTC dependencies.
transport.h defines an interface for sending rtp and rtcp packets,
which is used by MediaChannel in webrtc/media/engine,
{Audio|Video}{Send|Receive}Stream and in a few other
places. It was part of the build target //webrtc:webrtc, which is a monolithic target with
all webrtc production code. This CL moves the header to its own target in webrtc/api
and deprecates the old location.

Targets in webrtc/api should in general only depend on other
targets in webrtc/api. The target webrtc/api:call_api depends on
transport.h. This change also makes webrtc/voice_engine pass GN's header
include checker and is needed in order for webrtc/api:call_api to pass
it.

transport.h will be completely removed in a follow-up CL in a few weeks
after clients have updated their includes.

NOTRY=True

BUG=webrtc:5589, webrtc:5878, webrtc:6785

Review-Url: https://codereview.webrtc.org/2426563003
Cr-Commit-Position: refs/heads/master@{#15267}
2016-11-28 15:02:19 +00:00
nisse
deb95f32f4 Change rtc::TimeNanos and rtc::TimeMicros return value from uint64_t to int64_t.
Also updated types close to call sites.

BUG=webrtc:6733

Review-Url: https://codereview.webrtc.org/2514553003
Cr-Commit-Position: refs/heads/master@{#15255}
2016-11-28 09:55:05 +00:00
magjed
1da1a09bf5 Android HW encoder: Set constrained baseline as the profile
The Android HW encoder is currently not setting any H264 codec parameters or profile information. No profile-level-id means Baseline Level 1, but we are actually using Contrained Baseline Level 3.1. This CL sets the correct codec parameters.

BUG=webrtc:6337

Review-Url: https://codereview.webrtc.org/2497163002
Cr-Commit-Position: refs/heads/master@{#15247}
2016-11-25 14:51:36 +00:00
hbos
c42d37646f DataChannelInterface: Remove default implementation of methods.
This can land as soon as https://codereview.chromium.org/2520033005/ has
landed.

BUG=chromium:654927

Review-Url: https://codereview.webrtc.org/2524033002
Cr-Commit-Position: refs/heads/master@{#15221}
2016-11-24 09:18:00 +00:00
honghaiz
d44d0bae85 For VPN network, use the underlying network type as its type.
This is for Android.

BUG=webrtc:6748

Review-Url: https://codereview.webrtc.org/2522073003
Cr-Commit-Position: refs/heads/master@{#15218}
2016-11-23 19:04:33 +00:00
zhihuang
4dfb8cef51 Make the default value of rtcp-mux policy to required.
Change the default value of rtcp-mux policy in RTCConfiguration.
Refactor the peerconnectioninterface and webrtcsession unit tests.

BUG=webrtc:6030

Review-Url: https://codereview.webrtc.org/2043193003
Cr-Commit-Position: refs/heads/master@{#15217}
2016-11-23 18:30:21 +00:00
hbos
42eee12614 RTCPeerConnectionStats: Removed fixed TODO comments.
I forget to remove these when fixing them.

BUG=chromium:636818
NOTRY=True
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2522023003
Cr-Commit-Position: refs/heads/master@{#15215}
2016-11-23 15:43:32 +00:00
sakal
08be780512 Reland of Allow custom metrics implementations on Android. (patchset #1 id:1 of https://codereview.webrtc.org/2516403002/ )
Reason for revert:
Fix downstream.

Original issue's description:
> Revert of Allow custom metrics implementations on Android. (patchset #11 id:260001 of https://codereview.webrtc.org/2403463002/ )
>
> Reason for revert:
> Break downstream tests.
>
> Original issue's description:
> > Allow custom metrics implementations on Android.
> >
> > BUG=webrtc:6499
> >
> > Committed: https://crrev.com/de609b26c5fc77fd3388eae5594ee8a634edf8da
> > Cr-Commit-Position: refs/heads/master@{#15169}
>
> TBR=kjellander@webrtc.org,magjed@webrtc.org,sakal@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6499
>
> Committed: https://crrev.com/f570a2804ed8af6f6586f4aea51e089bd55d7e42
> Cr-Commit-Position: refs/heads/master@{#15171}

TBR=kjellander@webrtc.org,magjed@webrtc.org,philipel@webrtc.org
BUG=webrtc:6499

Review-Url: https://codereview.webrtc.org/2518293002
Cr-Commit-Position: refs/heads/master@{#15214}
2016-11-23 15:12:28 +00:00
sakal
8b6462861d Add fps reduction API to SurfaceViewRenderer.
SurfaceViewRenderer forwards these calls to EglRenderer.

BUG=webrtc:6470

Review-Url: https://codereview.webrtc.org/2517953004
Cr-Commit-Position: refs/heads/master@{#15212}
2016-11-23 14:19:33 +00:00
sakal
4fe3b8dbe7 Add framelistener functionality to SurfaceViewRenderer.
SurfaceViewRenderer forwards these calls to EglRenderer.

BUG=webrtc:6470

Review-Url: https://codereview.webrtc.org/2524723002
Cr-Commit-Position: refs/heads/master@{#15211}
2016-11-23 14:18:25 +00:00
sakal
1c82884e31 Remove binding framebuffer from GlTextureFrameBuffer.setSize.
There shouldn't be a need to bind the framebuffer to modify the texture
size. Binding the framebuffer causes a crash on Samsung Galaxy S3 mini
for some reason.

BUG=webrtc:6470

Review-Url: https://codereview.webrtc.org/2524003002
Cr-Commit-Position: refs/heads/master@{#15210}
2016-11-23 14:12:30 +00:00
hbos
0adb8285b1 RTCCodecStats[1] added.
RTCStatsCollector supports "payloadType", "codec" and "clockRate".
"channels", "parameters" and "implementation" need to be supported
before closing crbug.com/659117.

[1] https://w3c.github.io/webrtc-stats/#codec-dict*

BUG=chromium:659117, chromium:627816, chromium:657854
NOTRY=True

Review-Url: https://codereview.webrtc.org/2509803004
Cr-Commit-Position: refs/heads/master@{#15207}
2016-11-23 10:32:14 +00:00
magjed
10165ab8e7 Unify VideoCodecType to/from string functionality
BUG=None

Review-Url: https://codereview.webrtc.org/2509273002
Cr-Commit-Position: refs/heads/master@{#15200}
2016-11-22 18:17:04 +00:00
magjed
2d60e53ad5 H264 encoder: Include QP information in encoded images
Set the |qp_| field in EncodedImage before calling OnEncodedImage.

BUG=webrtc:6541

Review-Url: https://codereview.webrtc.org/2499003002
Cr-Commit-Position: refs/heads/master@{#15199}
2016-11-22 16:42:14 +00:00
aleloi
17338d41ac Created an AudioMixer mock in webrtc/api/test.
The mock is used in a dependent CL https://codereview.webrtc.org/2436033002.

There is also a goal to allow external mixing implementations
(subclasses of webrtc::AudioMixer) and inject them to
PeerConnectionFactory. We think that part of that is an official and
maintained mock.

Summary of changes:
    * Created a mixer mock/stub in webrtc/api/test
    * Made a target webrtc/api:mock_audio_mixer for it.

NOTRY=True
BUG=webrtc:6346

Review-Url: https://codereview.webrtc.org/2520323002
Cr-Commit-Position: refs/heads/master@{#15190}
2016-11-22 14:02:12 +00:00
hbos
820f578f2b RTCInboundRTPStreamStats's [fir/pli/nack]_count are collected for video.
Previously this was only collected for RTCOutboundRTPStreamStats video,
with no comment saying it was missing for Inbound. (nack_count should be
collected vor audio as well but this is currently not available - there
is already an existing comment about this in rtcstats_objects.h.)

BUG=chromium:657855, chromium:657854, chromium:627816

Review-Url: https://codereview.webrtc.org/2515293002
Cr-Commit-Position: refs/heads/master@{#15185}
2016-11-22 11:16:56 +00:00
sakal
b1e6d5efa6 Set surface view surface size to minimum of the layout size and frame size.
This improves the performance of SurfaceViewRenderer. This feature is added
behind a flag for now because it can be buggy on some devices.

BUG=webrtc:6470

Review-Url: https://codereview.webrtc.org/2510413002
Cr-Commit-Position: refs/heads/master@{#15181}
2016-11-22 09:54:47 +00:00
sakal
0ce6aafc32 Move androidvideotracksource from api under api/android/jni.
This file fits there more naturally since it has dependencies to jni.

BUG=None

Review-Url: https://codereview.webrtc.org/2514383002
Cr-Commit-Position: refs/heads/master@{#15179}
2016-11-22 09:26:22 +00:00
sakal
f72331205d Add an empty libjingle_peerconnection_metrics_default_jni target.
This allows downstream dependencies can add it as a dependency.

BUG=webrtc:6499

Review-Url: https://codereview.webrtc.org/2521183002
Cr-Commit-Position: refs/heads/master@{#15178}
2016-11-22 09:25:16 +00:00
hbos
28747969cd RTCStats operator== bugfix
a == b would return true if a.member is defined even if b.member is
undefined if their values were equal. We would say that b does not have
a value in that case but its value_ member would still be initialized to
something that is being compared to. Bugfix makes sure not to do value
comparison in this case if b is undefined.

BUG=chromium:627816

Review-Url: https://codereview.webrtc.org/2517163002
Cr-Commit-Position: refs/heads/master@{#15172}
2016-11-21 17:17:51 +00:00
philipel
f570a2804e Revert of Allow custom metrics implementations on Android. (patchset #11 id:260001 of https://codereview.webrtc.org/2403463002/ )
Reason for revert:
Break downstream tests.

Original issue's description:
> Allow custom metrics implementations on Android.
>
> BUG=webrtc:6499
>
> Committed: https://crrev.com/de609b26c5fc77fd3388eae5594ee8a634edf8da
> Cr-Commit-Position: refs/heads/master@{#15169}

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

Review-Url: https://codereview.webrtc.org/2516403002
Cr-Commit-Position: refs/heads/master@{#15171}
2016-11-21 16:30:05 +00:00
sakal
de609b26c5 Allow custom metrics implementations on Android.
BUG=webrtc:6499

Review-Url: https://codereview.webrtc.org/2403463002
Cr-Commit-Position: refs/heads/master@{#15169}
2016-11-21 15:41:09 +00:00
magjed
e718606d00 Make magjed@ owner of webrtc/api/android/
Make magjed@ owner of whole webrtc/api/android/ and remove him as owner of subfolders.

BUG=None
NOTRY=True

Review-Url: https://codereview.webrtc.org/2516973004
Cr-Commit-Position: refs/heads/master@{#15168}
2016-11-21 14:49:08 +00:00
sakal
6280960998 Correctly pass drawn frame size when layout aspect ratio is used in EglRenderer.
Previously, layout matrix was not correctly taken into account when calculating
the drawn size of the frame.

BUG=webrtc:6470

Review-Url: https://codereview.webrtc.org/2514793002
Cr-Commit-Position: refs/heads/master@{#15163}
2016-11-21 10:24:53 +00:00
aleloi
76b3049e7c Changed the interface AudioMixer::RemoveSource to have a void return type.
In the AudioMixerImpl implementation, removing a source never fails
and the return value is always true (see audio_mixer/audio_mixer_impl.cc).

A return value of |false| signaled that removing a source failed for
some reason. We have come to the conclusion that
   * we don't know how to handle a return value of |false|
   * we can't think of why an alternative implementation would need to
     signal failure when removing a stream.

To avoid having a status code that is never read, never acted upon and
probably never set to anything but |true|, we change ::RemoveSource to
not have a return value.

NOTRY=True
BUG=webrtc:6346

Review-Url: https://codereview.webrtc.org/2506173003
Cr-Commit-Position: refs/heads/master@{#15150}
2016-11-18 10:03:08 +00:00
magjed
509e4fe8e6 Reland of Stop using hardcoded payload types for video codecs (patchset #1 id:1 of https://codereview.webrtc.org/2513633002/ )
Reason for revert:
The WebRtcBrowserTest.NegotiateUnsupportedVideoCodec test has been fixed in Chromium with the following change:
   function removeVideoCodec(offerSdp) {
-    offerSdp = offerSdp.replace('a=rtpmap:100 VP8/90000\r\n',
-                                'a=rtpmap:100 XVP8/90000\r\n');
+    offerSdp = offerSdp.replace(/a=rtpmap:(\d+)\ VP8\/90000\r\n/,
+                                'a=rtpmap:$1 XVP8/90000\r\n');
     return offerSdp;
   }

Original issue's description:
> Revert of Stop using hardcoded payload types for video codecs (patchset #6 id:210001 of https://codereview.webrtc.org/2493133002/ )
>
> Reason for revert:
> Breaks chromium.fyi test:
> WebRtcBrowserTest.NegotiateUnsupportedVideoCodec
>
> Original issue's description:
> > Stop using hardcoded payload types for video codecs
> >
> > This CL stops using hardcoded payload types for different video codecs
> > and will dynamically assign them payload types incrementally from 96 to
> > 127 instead.
> >
> > This CL:
> >  * Replaces 'std::vector<VideoCodec> DefaultVideoCodecList()' in
> >    webrtcvideoengine2.cc with an explicit WebRtcVideoEncoderFactory for
> >    internally supported software codecs instead. The purpose is to
> >    streamline the payload type assignment in webrtcvideoengine2.cc which
> >    will now have two encoder factories of the same
> >    WebRtcVideoEncoderFactory type; one internal and one external.
> >  * Removes webrtc::VideoEncoder::EncoderType and use cricket::VideoCodec
> >    instead.
> >  * Removes 'static VideoEncoder* Create(EncoderType codec_type)' and
> >    moves the create function to the internal encoder factory instead.
> >  * Removes video_encoder.cc. webrtc::VideoEncoder is now just an
> >    interface without any static functions.
> >  * The function GetSupportedCodecs in webrtcvideoengine2.cc unifies
> >    the internal and external codecs and assigns them payload types
> >    incrementally from 96 to 127.
> >  * Updates webrtcvideoengine2_unittest.cc and removes assumptions about
> >    what payload types will be used.
> >
> > BUG=webrtc:6677,webrtc:6705
> > R=hta@webrtc.org, ossu@webrtc.org, stefan@webrtc.org
> >
> > Committed: https://crrev.com/42043b95872b51321f508bf255d804ce3dff366b
> > Cr-Commit-Position: refs/heads/master@{#15135}
>
> TBR=hta@webrtc.org,stefan@webrtc.org,ossu@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6677,webrtc:6705
>
> Committed: https://crrev.com/eacbaea920797ff751ca83050d140821f5055591
> Cr-Commit-Position: refs/heads/master@{#15140}

TBR=hta@webrtc.org,stefan@webrtc.org,ossu@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6677,webrtc:6705

Review-Url: https://codereview.webrtc.org/2511933002
Cr-Commit-Position: refs/heads/master@{#15148}
2016-11-18 09:34:14 +00:00
hbos
1acfbd22cc Expose RtpCodecParameters to VoiceMediaInfo stats.
Payload type -> RtpCodecParameters maps added for sender and receiver.
This is a follow-up to https://codereview.webrtc.org/2484193002/ which
did the same thing for VideoMediaInfo. This information will be used to
produce RTCCodecStats[1].

Voice[Sender/Receiver]Info is updated with current codec payload type
for every stream which can be used to look up the codec in
VoiceMediaInfo.

[1] https://w3c.github.io/webrtc-stats/#codec-dict*

BUG=chromium:659117

Review-Url: https://codereview.webrtc.org/2503383002
Cr-Commit-Position: refs/heads/master@{#15144}
2016-11-18 07:43:39 +00:00
zhihuang
81c3a03004 Added a callback function OnAddTrack to PeerConnectionObserver
Added the callback in native c++ API.
The callback function is called when a track is added and a new RtpReceiver is created.
The application can tell when tracks are added to the streams by listening to this callback.

BUG=webrtc:6112

Review-Url: https://codereview.webrtc.org/2505173002
Cr-Commit-Position: refs/heads/master@{#15142}
2016-11-17 20:06:37 +00:00
magjed
eacbaea920 Revert of Stop using hardcoded payload types for video codecs (patchset #6 id:210001 of https://codereview.webrtc.org/2493133002/ )
Reason for revert:
Breaks chromium.fyi test:
WebRtcBrowserTest.NegotiateUnsupportedVideoCodec

Original issue's description:
> Stop using hardcoded payload types for video codecs
>
> This CL stops using hardcoded payload types for different video codecs
> and will dynamically assign them payload types incrementally from 96 to
> 127 instead.
>
> This CL:
>  * Replaces 'std::vector<VideoCodec> DefaultVideoCodecList()' in
>    webrtcvideoengine2.cc with an explicit WebRtcVideoEncoderFactory for
>    internally supported software codecs instead. The purpose is to
>    streamline the payload type assignment in webrtcvideoengine2.cc which
>    will now have two encoder factories of the same
>    WebRtcVideoEncoderFactory type; one internal and one external.
>  * Removes webrtc::VideoEncoder::EncoderType and use cricket::VideoCodec
>    instead.
>  * Removes 'static VideoEncoder* Create(EncoderType codec_type)' and
>    moves the create function to the internal encoder factory instead.
>  * Removes video_encoder.cc. webrtc::VideoEncoder is now just an
>    interface without any static functions.
>  * The function GetSupportedCodecs in webrtcvideoengine2.cc unifies
>    the internal and external codecs and assigns them payload types
>    incrementally from 96 to 127.
>  * Updates webrtcvideoengine2_unittest.cc and removes assumptions about
>    what payload types will be used.
>
> BUG=webrtc:6677,webrtc:6705
> R=hta@webrtc.org, ossu@webrtc.org, stefan@webrtc.org
>
> Committed: https://crrev.com/42043b95872b51321f508bf255d804ce3dff366b
> Cr-Commit-Position: refs/heads/master@{#15135}

TBR=hta@webrtc.org,stefan@webrtc.org,ossu@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6677,webrtc:6705

Review-Url: https://codereview.webrtc.org/2513633002
Cr-Commit-Position: refs/heads/master@{#15140}
2016-11-17 16:52:06 +00:00