30 Commits

Author SHA1 Message Date
kwiberg
fffa42b57e Replace scoped_ptr with unique_ptr in webrtc/audio/
BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#11723}
2016-02-23 18:46:39 +00:00
nisse
a293ef0618 Apply VideoOptions per stream.
BUG=webrtc:5438

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

Cr-Commit-Position: refs/heads/master@{#11656}
2016-02-17 15:24:57 +00:00
nisse
4b4dc86c61 Remove conference_mode flag from AudioOptions and VideoOptions.
For audio, the flag is apparently unused. For video, the flag is moved to
VideoSendParameters, with the intention to keep only per-stream flags in
VideoOptions. The flag is used for the webrtcvideoengine2 logic commented like

  // Conference mode screencast uses 2 temporal layers split at 100kbit.

  // For screenshare in conference mode, tl0 and tl1 bitrates are piggybacked
  // on the VideoCodec struct as target and max bitrates, respectively.
  // See eg. webrtc::VP8EncoderImpl::SetRates().

BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#11651}
2016-02-17 13:25:40 +00:00
kjellander
0206000a66 iOS: Add resource files for tests and implement OutputPath
With this change the following tests have been successfully
passing in the iOS Simulator for iPhone 5 and iOS 9:
* audio_decoder_unittests
* common_video_unittests
* modules_tests
* rtc_api_objc_tests
* rtc_pc_unittests
* system_wrappers_unittests
* voice_engine_unittests

The modules_unittests and common_audio_unittests are
handled in https://codereview.webrtc.org/1698033002/

BUG=webrtc:4755
NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#11646}
2016-02-17 06:06:17 +00:00
kjellander@webrtc.org
efce73e4ed Rename libjingle_media_unittest -> rtc_media_unittests
Landing this must be coordinated with updating the buildbots in
https://codereview.chromium.org/1681393004

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

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

Cr-Commit-Position: refs/heads/master@{#11600}
2016-02-12 14:06:11 +00:00
Per
040f68e360 Fix VideoCapturer::OnMessage override
Somehow this bug is now detected after landing https://codereview.webrtc.org/1689923002/
See https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Builder/builds/9638/steps/compile/logs/stdio

TBR=pthatcher@webrtc.org
BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#11598}
2016-02-12 13:00:25 +00:00
Per
a50924115e This reland https://codereview.webrtc.org/1655793003/ with the change that cricket::VideoCapturer::SignalVideoFrame is added back and used for frame forwarding. It is used in Chrome remoting.
BUG=webrtc:5426
R=pthatcher@webrtc.org
TBR=pthatcher@webrtc.org for moved channelmanager....

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

Cr-Commit-Position: refs/heads/master@{#11597}
2016-02-12 12:31:08 +00:00
nisse
51542be8ce Introduce struct MediaConfig, with construction-time settings.
Pass it to MediaController constructor and down to WebRtcVideoEngine2
and WebRtcVoiceEngine.

Follows discussion on https://codereview.webrtc.org/1646253004/

TBR=pthatcher@webrtc.org
BUG=webrtc:5438

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

Cr-Commit-Position: refs/heads/master@{#11595}
2016-02-12 10:27:12 +00:00
nisse
d73c99cf22 Initial cleanup of cricket::VideoFrame.
Deleted GetRotation (old alias for GetVideoRotation).
Deleted CopyToBuffer.
Deleted Sizeof.
Deleted Write.
Demote CopyToPlanes to protected status.

BUG=webrtc:5426

Committed: https://crrev.com/4d575b0d4276422bdf7b595d92c57c4f0f8ce0e9
Cr-Commit-Position: refs/heads/master@{#11564}

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

Cr-Commit-Position: refs/heads/master@{#11594}
2016-02-12 09:01:15 +00:00
kjellander@webrtc.org
9b8df25c73 Move talk/session/media -> webrtc/pc
The libjingle_p2p target is renamed to rtc_pc.
The libjingle_p2p_unittest test will be renamed in a
separate follow-up CL, to make it possible to run all
trybots successfully for this CL.

BUG=webrtc:5419
R=deadbeef@webrtc.org, pthatcher@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11592}
2016-02-12 05:48:10 +00:00
kjellander@webrtc.org
5ad129741c Rename webrtc/media/webrtc -> webrtc/media/engine
BUG=webrtc:5420
NOTRY=True
R=pthatcher@google.com, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11591}
2016-02-12 05:39:50 +00:00
deadbeef
6ecee07bab Fixing bug in MediaStream.java that caused double disposal of track.
Also fixing an issue with the Java PeerConnection unit test.
It wasn't correctly waiting for 10 video frames to be received.

And fixed an issue with the video engine, where generated
black frames don't get any rotation.

BUG=webrtc:5128

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

Cr-Commit-Position: refs/heads/master@{#11583}
2016-02-11 17:57:29 +00:00
Per
8e16e61d64 Added empty files for VideoBroadcaster so adding them don't break Chrome.
Cl where implementation is added: https://codereview.webrtc.org/1689923002/

TBR=kjellander@webrtc.org

BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#11579}
2016-02-11 14:57:06 +00:00
stefan
1e01660899 Add support for rtx with h264.
BUG=chromium:500605,webrtc:5516

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

Cr-Commit-Position: refs/heads/master@{#11570}
2016-02-11 12:14:02 +00:00
perkj
162c3393be Revert of Make cricket::VideoCapturer implement VideoSourceInterface (patchset #14 id:300001 of https://codereview.webrtc.org/1655793003/ )
Reason for revert:
Needs to revert again unfortunately.
There are multiple implementations in Chrome of cricket::VideoCapturer.

One is ./../remoting/protocol/webrtc_video_capturer_adapter.cc...

https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Builder/builds/9581/steps/compile/logs/stdio

Fun times - I will have to modify this cl after trying it manually out in Chrome.

Original issue's description:
> This cl introduce a VideoSourceInterface and let cricket::VideoCapturer implement it.
> Further more, it adds a VideoBroadcaster than is used for delivering frames to multiple sinks.
>
> BUG=webrtc:5426
> R=nisse@webrtc.org, pthatcher@webrtc.org
>
> Committed: https://crrev.com/4d19c5b010473615fa181afa84c6f4b3104e3171
> Cr-Commit-Position: refs/heads/master@{#11567}

TBR=pthatcher@google.com,nisse@webrtc.org,pthatcher@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#11568}
2016-02-11 10:56:41 +00:00
Per
4d19c5b010 This cl introduce a VideoSourceInterface and let cricket::VideoCapturer implement it.
Further more, it adds a VideoBroadcaster than is used for delivering frames to multiple sinks.

BUG=webrtc:5426
R=nisse@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11567}
2016-02-11 10:06:19 +00:00
nisse
f9b59c4f30 Revert of Initial cleanup of cricket::VideoFrame. (patchset #3 id:40001 of https://codereview.webrtc.org/1688643003/ )
Reason for revert:
There appears there were some uses left of cricket::VideoFrame::GetRotation (to be replaced by GetVideoRotation). Investigating.

Original issue's description:
> Initial cleanup of cricket::VideoFrame.
>
> Deleted GetRotation (old alias for GetVideoRotation).
> Deleted CopyToBuffer.
> Deleted Sizeof.
> Deleted Write.
> Demote CopyToPlanes to protected status.
>
> BUG=webrtc:5426

TBR=perkj@webrtc.org,pbos@webrtc.org,pthatcher@webrtc.org,pthatcher@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#11566}
2016-02-11 09:39:00 +00:00
perkj
4b2a5a8095 Revert of Make cricket::VideoCapturer implement VideoSourceInterface (patchset #12 id:260001 of https://codereview.webrtc.org/1655793003/ )
Reason for revert:
Somehow breaks Chromium FYI....
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win%20Builder/builds/3483/steps/compile/logs/stdio

Original issue's description:
> This cl introduce a VideoSourceInterface and let cricket::VideoCapturer implement it.
> Further more, it adds a VideoBroadcaster than is used for delivering frames to multiple sinks.
>
>
> BUG=webrtc:5426

TBR=pthatcher@google.com,nisse@webrtc.org,pthatcher@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#11565}
2016-02-11 09:20:24 +00:00
nisse
4d575b0d42 Initial cleanup of cricket::VideoFrame.
Deleted GetRotation (old alias for GetVideoRotation).
Deleted CopyToBuffer.
Deleted Sizeof.
Deleted Write.
Demote CopyToPlanes to protected status.

BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#11564}
2016-02-11 09:17:42 +00:00
perkj
2f21789b4b This cl introduce a VideoSourceInterface and let cricket::VideoCapturer implement it.
Further more, it adds a VideoBroadcaster than is used for delivering frames to multiple sinks.

BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#11563}
2016-02-11 07:55:25 +00:00
Peter Boström
84d1f126d3 Remove VideoFormat from WebRtcVideoEngine2.
No longer used since SendStreamFormat has been removed.

BUG=webrtc:5332
R=pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11557}
2016-02-10 19:12:58 +00:00
kjellander@webrtc.org
e2812e74fb Cleanup after talk/media move.
More work remains, but is less urgent.
webrtc/media/base/mediacommon.h could not be deleted since
the constants are used in multiple places.

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

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

Cr-Commit-Position: refs/heads/master@{#11551}
2016-02-10 15:30:51 +00:00
kjellander
456801db3b Add perkj+magjed to webrtc/media/OWNERS
BUG=webrtc:5420
NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#11529}
2016-02-08 14:46:04 +00:00
kjellander
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
Peter Boström
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
Peter Boström
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
kjellander
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
nisse
e73afbaf17 New rtc::VideoSinkInterface.
The plan is that this interface should be used by all classes which receive a stream of video frames, and replace the two generic classes webrtc::VideoRendererInterface and cricket::VideoRenderer.

And the list goes on, there's a dozen of different classes which act as video frame sinks.

At some point, we will likely add some method to handle sink properties like, e.g, maximum useful width and height. But hopefully this can be done while keeping the interface very simple.

BUG=webrtc:5426
R=perkj@webrtc.org, pthatcher@webrtc.org

Committed: https://crrev.com/a862d4563fbc26e52bed442de784094ae1dfe5ee
Cr-Commit-Position: refs/heads/master@{#11396}

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

Cr-Commit-Position: refs/heads/master@{#11414}
2016-01-28 12:47:13 +00:00
nisse
2098fca39a Revert of New rtc::VideoSinkInterface. (patchset #7 id:120001 of https://codereview.webrtc.org/1594973006/ )
Reason for revert:
Broke chrome build. Investigating.

First error relating to AddSink method in mock_peer_connection_dependency_factory.h

Original issue's description:
> New rtc::VideoSinkInterface.
>
> The plan is that this interface should be used by all classes which receive a stream of video frames, and replace the two generic classes webrtc::VideoRendererInterface and cricket::VideoRenderer.
>
> And the list goes on, there's a dozen of different classes which act as video frame sinks.
>
> At some point, we will likely add some method to handle sink properties like, e.g, maximum useful width and height. But hopefully this can be done while keeping the interface very simple.
>
> BUG=webrtc:5426
> R=perkj@webrtc.org, pthatcher@webrtc.org
>
> Committed: https://crrev.com/a862d4563fbc26e52bed442de784094ae1dfe5ee
> Cr-Commit-Position: refs/heads/master@{#11396}

TBR=pthatcher@webrtc.org,pbos@webrtc.org,perkj@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#11397}
2016-01-27 14:12:57 +00:00
Niels Möller
a862d4563f New rtc::VideoSinkInterface.
The plan is that this interface should be used by all classes which receive a stream of video frames, and replace the two generic classes webrtc::VideoRendererInterface and cricket::VideoRenderer.

And the list goes on, there's a dozen of different classes which act as video frame sinks.

At some point, we will likely add some method to handle sink properties like, e.g, maximum useful width and height. But hopefully this can be done while keeping the interface very simple.

BUG=webrtc:5426
R=perkj@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#11396}
2016-01-27 13:41:04 +00:00