87 Commits

Author SHA1 Message Date
brandtr
841de6a47e Add FlexFEC to CallTest.
This is needed for the following coming tests: VideoSendStream, end-to-end,
full stack, and video_loopback.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2500943002
Cr-Commit-Position: refs/heads/master@{#15087}
2016-11-15 15:11:00 +00:00
brandtr
8e75a523c8 Explicitly use RTX for RED in VideoQualityTest and video_loopback.
After the removal of the RED/RTX workaround, we now need to explicitly
enable RTX for RED. Prior to the removal of the workaround, RED over RTX
was implicitly enabled whenever media over RTX was enabled.

BUG=webrtc:6650

Review-Url: https://codereview.webrtc.org/2493723002
Cr-Commit-Position: refs/heads/master@{#15061}
2016-11-14 12:07:28 +00:00
minyue
10cbb4648f Fixing config for Audio BWE.
The unit was kbps but the one default use of it is in bps. The inconsistency should be fixed.

BUG=webrtc:6670

Review-Url: https://codereview.webrtc.org/2247213005
Cr-Commit-Position: refs/heads/master@{#14955}
2016-11-07 17:29:27 +00:00
perkj
803d97f159 Let ViEEncoder express resolution requests as Sinkwants.
This removes the VideoSendStream::LoadObserver interface and the implementation in WebrtcVideoSendStream and replace it with VideoSinkWants through the VideoSourceInterface.

To do that that, some stats for CPU adaptation is moved into VideoSendStream. Also handling of the CVO rtp header extension is moved to VideoSendStreamImpl.

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

Review-Url: https://codereview.webrtc.org/2304363002
Cr-Commit-Position: refs/heads/master@{#14877}
2016-11-01 18:45:54 +00:00
minyue
a27172d683 Adding audio only mode to video loopback test.
BUG=webrtc:6609

Review-Url: https://codereview.webrtc.org/2321463002
Cr-Commit-Position: refs/heads/master@{#14875}
2016-11-01 12:59:35 +00:00
solenberg
e566ac7341 Remove voe::Channel::StopReceive() and associated logic.
- The legacy API is not used in WVoE/MC.
- Removed use of the API (along with StartReceive()) from unit tests.

BUG=webrtc:4690

Review-Url: https://codereview.webrtc.org/2453243003
Cr-Commit-Position: refs/heads/master@{#14858}
2016-10-31 19:52:39 +00:00
nisse
67dca9f12e Delete ShallowCopy, in favor of copy construction and assignment.
BUG=webrtc:6591

Review-Url: https://codereview.webrtc.org/2443123002
Cr-Commit-Position: refs/heads/master@{#14853}
2016-10-31 15:05:58 +00:00
minyue
626bc952aa Reland of "Separating video settings in VideoQualityTest".
This was landed in https://codereview.webrtc.org/2314403007/

and reverted in https://codereview.webrtc.org/2463733002/ because an error was found.

BUG=660473, webrtc:6609

Review-Url: https://codereview.webrtc.org/2466473002
Cr-Commit-Position: refs/heads/master@{#14848}
2016-10-31 12:47:09 +00:00
minyue
9aa78832f9 Revert of "Separating video settings in VideoQualityTest". (patchset #4 id:60001 of https://codereview.webrtc.org/2314403007/ )
Reason for revert:
Some parameters were not treated correctly. Will redo some parts.

Original issue's description:
> Reland of "Separating video settings in VideoQualityTest".
>
> Earlier trial of landing: https://codereview.webrtc.org/2312613003
>
> Reverted in https://codereview.webrtc.org/2325723002
>
> BUG=webrtc:6609
>
> Committed: https://crrev.com/16b6d6dc5b367746a9f910d1cebf9f65e8dd2c7f
> Cr-Commit-Position: refs/heads/master@{#14785}

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

Review-Url: https://codereview.webrtc.org/2463733002
Cr-Commit-Position: refs/heads/master@{#14838}
2016-10-31 10:23:09 +00:00
solenberg
68e6bdd970 Remove use of VoECodec in video/call tests.
BUG=webrtc:4690

Review-Url: https://codereview.webrtc.org/2447723002
Cr-Commit-Position: refs/heads/master@{#14797}
2016-10-27 07:23:14 +00:00
minyue
16b6d6dc5b Reland of "Separating video settings in VideoQualityTest".
Earlier trial of landing: https://codereview.webrtc.org/2312613003

Reverted in https://codereview.webrtc.org/2325723002

BUG=webrtc:6609

Review-Url: https://codereview.webrtc.org/2314403007
Cr-Commit-Position: refs/heads/master@{#14785}
2016-10-26 12:04:12 +00:00
nisse
61c053e329 Reland of Delete webrtc::VideoFrame::CopyFrame. (patchset #1 id:1 of https://codereview.webrtc.org/2397943003/ )
Reason for revert:
Dependencies updated.

Original issue's description:
> Revert of Delete webrtc::VideoFrame::CopyFrame. (patchset #2 id:20001 of https://codereview.webrtc.org/2371363003/ )
>
> Reason for revert:
> This CL breaks internal dependencies.
>
> Original issue's description:
> > Delete webrtc::VideoFrame::CopyFrame.
> >
> > BUG=webrtc:5682
> >
> > Committed: https://crrev.com/0e7c7ce35d9449c5bb13328d1bfb04ad32e48ccc
> > Cr-Commit-Position: refs/heads/master@{#14550}
>
> TBR=magjed@webrtc.org,tommi@webrtc.org,nisse@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:5682
>
> Committed: https://crrev.com/21a18ee267146c86e188d95edf6432f71dd53aeb
> Cr-Commit-Position: refs/heads/master@{#14553}

TBR=magjed@webrtc.org,tommi@webrtc.org,ivoc@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:5682

Review-Url: https://codereview.webrtc.org/2435963002
Cr-Commit-Position: refs/heads/master@{#14731}
2016-10-24 07:44:17 +00:00
skvlad
11a9cbfa50 Refactoring: move ownership of RtcEventLog from Call to PeerConnection
This CL is a pure refactoring which should not result in any functinal
changes. It moves ownership of the RtcEventLog from webrtc::Call to the
webrtc::PeerConnection object.

This is done so that we can add RtcEventLog support for ICE events -
which will require the TransportController to have a pointer to the
RtcEventLog. PeerConnection is the closest common owner of both Call and
TransportController (through WebRtcSession).

BUG=webrtc:6393

Review-Url: https://codereview.webrtc.org/2353033005
Cr-Commit-Position: refs/heads/master@{#14578}
2016-10-07 18:53:15 +00:00
ivoc
21a18ee267 Revert of Delete webrtc::VideoFrame::CopyFrame. (patchset #2 id:20001 of https://codereview.webrtc.org/2371363003/ )
Reason for revert:
This CL breaks internal dependencies.

Original issue's description:
> Delete webrtc::VideoFrame::CopyFrame.
>
> BUG=webrtc:5682
>
> Committed: https://crrev.com/0e7c7ce35d9449c5bb13328d1bfb04ad32e48ccc
> Cr-Commit-Position: refs/heads/master@{#14550}

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

Review-Url: https://codereview.webrtc.org/2397943003
Cr-Commit-Position: refs/heads/master@{#14553}
2016-10-06 13:29:34 +00:00
nisse
0e7c7ce35d Delete webrtc::VideoFrame::CopyFrame.
BUG=webrtc:5682

Review-Url: https://codereview.webrtc.org/2371363003
Cr-Commit-Position: refs/heads/master@{#14550}
2016-10-06 12:00:13 +00:00
brandtr
b5f2c3fbe9 Rename FecConfig to UlpfecConfig in config.h.
Also rename some related minor methods. No functional changes
are intended/expected.

BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2391963002
Cr-Commit-Position: refs/heads/master@{#14513}
2016-10-05 06:28:43 +00:00
perkj
fa10b557d9 Releand of Let ViEEncoder handle resolution changes.
The original landed cl is in patchset 1.
The following patchset fix VideoQualityTest as well as fix the case where max_bitrate is set in the SendParams. A unit test is added for that as well.

Original cl description:
Let ViEEncoder handle resolution changes.

This cl move codec reconfiguration due to video frame size changes from WebRtcVideoSendStream to ViEEncoder.

With this change, many variables in WebRtcVideoSendStream no longer need to be locked.

BUG=webrtc:5687, webrtc:6371, webrtc:5332

Review-Url: https://codereview.webrtc.org/2386573002
Cr-Commit-Position: refs/heads/master@{#14467}
2016-10-03 06:45:33 +00:00
kwiberg
ac9f876bc0 Sort #includes that got unsorted when gmock.h and gtest.h moved to webrtc/test/
gmock.h and gtest.h were moved (or rather, got wrappers so that we
could put some icky compatibility hacks in one place instead of 500)
in this CL: https://codereview.webrtc.org/2358993004/

NOPRESUBMIT=true
BUG=webrtc:6398

Review-Url: https://codereview.webrtc.org/2381013002
Cr-Commit-Position: refs/heads/master@{#14464}
2016-10-01 05:29:53 +00:00
perkj
3b703ede8b Revert of Let ViEEncoder handle resolution changes. (patchset #17 id:340001 of https://codereview.webrtc.org/2351633002/ )
Reason for revert:
Fails on a content_browsertest (and also webrtc_perf?)

https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Tester/builds/34336

https://build.chromium.org/p/client.webrtc/builders/Linux64%20Release%20%5Blarge%20tests%5D/builds/9091/steps/webrtc_perf_tests/logs/stdio
[  FAILED  ] FullStackTest.ParisQcifWithoutPacketLoss (59436 ms)

Original issue's description:
> Let ViEEncoder handle resolution changes.
>
> This cl move codec reconfiguration due to video frame size changes from WebRtcVideoSendStream to ViEEncoder.
>
> With this change, many variables in WebRtcVideoSendStream no longer need to be locked.
>
> BUG=webrtc:5687, webrtc:6371, webrtc:5332
>
> Committed: https://crrev.com/26105b41b4f97642ee30cb067dc786c2737709ad
> Cr-Commit-Position: refs/heads/master@{#14445}

TBR=sprang@webrtc.org,mflodman@webrtc.org,stefan@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5687, webrtc:6371, webrtc:5332

Review-Url: https://codereview.webrtc.org/2383493005
Cr-Commit-Position: refs/heads/master@{#14447}
2016-09-30 06:25:46 +00:00
perkj
26105b41b4 Let ViEEncoder handle resolution changes.
This cl move codec reconfiguration due to video frame size changes from WebRtcVideoSendStream to ViEEncoder.

With this change, many variables in WebRtcVideoSendStream no longer need to be locked.

BUG=webrtc:5687, webrtc:6371, webrtc:5332

Review-Url: https://codereview.webrtc.org/2351633002
Cr-Commit-Position: refs/heads/master@{#14445}
2016-09-30 05:39:15 +00:00
kwiberg
77eab70470 Enable the -Wundef warning for clang
NOPRESUBMIT=true
BUG=webrtc:6398

Review-Url: https://codereview.webrtc.org/2358993004
Cr-Commit-Position: refs/heads/master@{#14425}
2016-09-29 00:42:08 +00:00
palmkvist
e75f204b06 Expose Ivf logging through the native API
BUG=webrtc:6300

Review-Url: https://codereview.webrtc.org/2303273002
Cr-Commit-Position: refs/heads/master@{#14419}
2016-09-28 13:19:53 +00:00
kthelgason
29a44e351e This is a resubmission of https://codereview.webrtc.org/2047513002/
Original description:
Add proper lifetime of encoder-specific settings.

Permits passing VideoEncoderConfig between threads and not worry about
the lifetime of an underlying void pointer. Also adds type safety to
unpacking of codec-specific settings.

These settings are not yet propagating to VideoEncoder interfaces, but
the aim is to get rid of webrtc::VideoCodec for VideoEncoder.

BUG=webrtc:3424
R=perkj@webrtc.org, pbos@webrtc.org
TBR=mflodman@webrtc.org

Review-Url: https://codereview.webrtc.org/2347843002
Cr-Commit-Position: refs/heads/master@{#14396}
2016-09-27 10:52:05 +00:00
perkj
a49cbd3e24 Replace VideoCapturerInput with VideoSinkInterface.
Adds new method VideoSendStream::SetSource(rtc::VideoSourceInterface* and VieEncoder::SetSource(rtc::VideoSourceInterface*)

This is the first step needed in order for the ViEEncoder to request downscaling using rtc::VideoSinkWants instead of separately reporting CPU overuse and internally doing downscaling due to QP values

This cl
Revert "Revert of Replace interface VideoCapturerInput with VideoSinkInterface. (patchset #13 id:280001 of https://codereview.webrtc.org/2257413002/ )"

This reverts commit 9fdbda6aa3f66ea872344c22e79b23361047cbab.

and fix the problem in the original cl in video_quality_test.cc

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

Review-Url: https://codereview.webrtc.org/2348533002
Cr-Commit-Position: refs/heads/master@{#14265}
2016-09-16 14:53:48 +00:00
perkj
9fdbda6aa3 Revert of Replace interface VideoCapturerInput with VideoSinkInterface. (patchset #13 id:280001 of https://codereview.webrtc.org/2257413002/ )
Reason for revert:
Fails on Mac and Linux webrtc_perf_tests

Original issue's description:
> Replace VideoCapturerInput with VideoSinkInterface.
> Adds new method VideoSendStream::SetSource(rtc::VideoSourceInterface* and VieEncoder::SetSource(rtc::VideoSourceInterface*)
>
> This is the first step needed in order for the ViEEncoder to request downscaling using rtc::VideoSinkWants instead of separately reporting CPU overuse and internally doing downscaling due to QP values.
>
> BUG=webrtc:5687
> // Android CQ seems broken.
> NOTRY=true
>
> Committed: https://crrev.com/95a226f55ae7e32b83a6ba96232fb105a014dc6c
> Cr-Commit-Position: refs/heads/master@{#14238}

TBR=nisse@webrtc.org,sprang@webrtc.org,mflodman@webrtc.org,stefan@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5687

Review-Url: https://codereview.webrtc.org/2344923002
Cr-Commit-Position: refs/heads/master@{#14239}
2016-09-15 16:19:28 +00:00
perkj
95a226f55a Replace VideoCapturerInput with VideoSinkInterface.
Adds new method VideoSendStream::SetSource(rtc::VideoSourceInterface* and VieEncoder::SetSource(rtc::VideoSourceInterface*)

This is the first step needed in order for the ViEEncoder to request downscaling using rtc::VideoSinkWants instead of separately reporting CPU overuse and internally doing downscaling due to QP values.

BUG=webrtc:5687
// Android CQ seems broken.
NOTRY=true

Review-Url: https://codereview.webrtc.org/2257413002
Cr-Commit-Position: refs/heads/master@{#14238}
2016-09-15 15:57:26 +00:00
kjellander
5865f48dcb Revert of Separating video settings in VideoQualityTest. (patchset #2 id:20001 of https://codereview.webrtc.org/2312613003/ )
Reason for revert:
Breaks webrtc_perf_tests on Windows, Mac and Linux (that test don't run on trybots):
https://build.chromium.org/p/client.webrtc/builders/Linux64%20Release%20%5Blarge%20tests%5D/builds/8841/steps/webrtc_perf_tests/logs/stdio

Example:
[ RUN      ] FullStackTest.ForemanCifWithoutPacketLossVp9

# Fatal error in ../../webrtc/video/video_quality_test.cc, line 1056
# last system error: 34
# Check failed: !params_.audio.enabled

Original issue's description:
> Separating video settings in VideoQualityTest.
>
> This is a simple refactoring of VideoQualityTest. It will help in adding audio related settings to VideoQualityTest.
>
> BUG=
>
> Committed: https://crrev.com/f07fb0013164bdb031dcc88dc83365a27643b2d9
> Cr-Commit-Position: refs/heads/master@{#14139}

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

Review-Url: https://codereview.webrtc.org/2325723002
Cr-Commit-Position: refs/heads/master@{#14142}
2016-09-08 17:52:41 +00:00
minyue
f07fb00131 Separating video settings in VideoQualityTest.
This is a simple refactoring of VideoQualityTest. It will help in adding audio related settings to VideoQualityTest.

BUG=

Review-Url: https://codereview.webrtc.org/2312613003
Cr-Commit-Position: refs/heads/master@{#14139}
2016-09-08 15:20:16 +00:00
solenberg
88499ecaca Moving/renaming webrtc/common.h.
This file defines webrtc::Config which was mostly used by modules/audio_processing. The files webrtc/common.h, webrtc/common.cc and webrtc/test/common_unittests.cc are moved to modules/audio_processing and the few remaining uses of webrtc::Config are replaced with simpler code.

- For NetEq and pacing configuration, a VoEBase::ChannelConfig is passed to VoEBase::CreateChannel().
- Removes the need for VoiceEngine::Create(const Config& config). No need to store the webrtc::Config in VoE shared state.

BUG=webrtc:5879

Review-Url: https://codereview.webrtc.org/2307533004
Cr-Commit-Position: refs/heads/master@{#14109}
2016-09-07 14:34:45 +00:00
perkj
26091b1118 This reverts commit 8eb37a39e79fe1098d3503dcb8c8c2d196203fed. Chrome now have its own implementation of TaskQueues that is based on Chrome threads.
cl was originally reviewed here:
https://codereview.webrtc.org/2060403002/

- Add task queue to Call with the intent of replacing the use of one of the process threads.

- Split VideoSendStream in two. VideoSendStreamInternal is created and used on the new task queue.

- BitrateAllocator is now created on libjingle's worker thread but always used on the new task queue instead of both encoder threads and the process thread.

- VideoEncoderConfig and VideoSendStream::Config support move semantics.

- The encoder thread is moved from VideoSendStream to ViEEncoder. Frames are forwarded directly to ViEEncoder which is responsible for timestamping ? and encoding the frames.

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

Review-Url: https://codereview.webrtc.org/2250123002
Cr-Commit-Position: refs/heads/master@{#14014}
2016-09-01 08:17:43 +00:00
minyue
7320866091 Reland of Adding audio to video_quality_test.
The original commit was https://codereview.webrtc.org/2136573002/.

BUG=

Review-Url: https://codereview.webrtc.org/2259783002
Cr-Commit-Position: refs/heads/master@{#13818}
2016-08-18 13:28:59 +00:00
minyue
f095012dc2 Revert of Adding audio to video_quality_test. (patchset #10 id:230001 of https://codereview.webrtc.org/2136573002/ )
Reason for revert:
This CL breaks https://build.chromium.org/p/client.webrtc/waterfall?builder=Win64%20Debug%20(Clang)

Need to align values to struct Params {} in a proper way. Relanding will follow.

Original issue's description:
> Adding audio to video_quality_test.
>
> This CL adds an audio loopback to video_quality_test (only RunWithVideoRenderer)
>
> BUG=
>
> Committed: https://crrev.com/65a6578e339f52eb5bc400c5715e60498e4af2c1
> Cr-Commit-Position: refs/heads/master@{#13784}

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

Review-Url: https://codereview.webrtc.org/2249163002
Cr-Commit-Position: refs/heads/master@{#13785}
2016-08-16 15:25:48 +00:00
minyue
65a6578e33 Adding audio to video_quality_test.
This CL adds an audio loopback to video_quality_test (only RunWithVideoRenderer)

BUG=

Review-Url: https://codereview.webrtc.org/2136573002
Cr-Commit-Position: refs/heads/master@{#13784}
2016-08-16 14:43:54 +00:00
perkj
8eb37a39e7 Revert of Add task queue to Call. (patchset #42 id:840001 of https://codereview.webrtc.org/2060403002/ )
Reason for revert:
Failed on Win 10 Chrome FYI.

https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win10%20Tester/builds/3847/steps/content_browsertests/logs/stdio

#
# Fatal error in e:\b\c\b\win_builder\src\third_party\webrtc\base\task_queue_win.cc, line 138
# last system error: 87
# Check failed: ((DWORD)0xFFFFFFFF) != result (4294967295 vs. 4294967295)
#

WebRtcBrowserTest

#

Original issue's description:
> - Add task queue to Call with the intent of replacing the use of one of the process threads.
>
> - Split VideoSendStream in two. VideoSendStreamInternal is created and used on the new task queue.
>
> - BitrateAllocator is now created on libjingle's worker thread but always used on the new task queue instead of both encoder threads and the process thread.
>
> - VideoEncoderConfig and VideoSendStream::Config support move semantics.
>
> - The encoder thread is moved from VideoSendStream to ViEEncoder. Frames are forwarded directly to ViEEncoder which is responsible for timestamping ? and encoding the frames.
>
> BUG=webrtc:5687
>
> Committed: https://crrev.com/cc168360f41322332860cb075edeb1cde21aa473
> Cr-Commit-Position: refs/heads/master@{#13767}

TBR=tommi@webrtc.org,mflodman@webrtc.org,stefan@webrtc.org,sprang@webrtc.org,pbos@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5687

Review-Url: https://codereview.webrtc.org/2248713003
Cr-Commit-Position: refs/heads/master@{#13774}
2016-08-16 09:40:59 +00:00
perkj
cc168360f4 - Add task queue to Call with the intent of replacing the use of one of the process threads.
- Split VideoSendStream in two. VideoSendStreamInternal is created and used on the new task queue.

- BitrateAllocator is now created on libjingle's worker thread but always used on the new task queue instead of both encoder threads and the process thread.

- VideoEncoderConfig and VideoSendStream::Config support move semantics.

- The encoder thread is moved from VideoSendStream to ViEEncoder. Frames are forwarded directly to ViEEncoder which is responsible for timestamping ? and encoding the frames.

BUG=webrtc:5687

Review-Url: https://codereview.webrtc.org/2060403002
Cr-Commit-Position: refs/heads/master@{#13767}
2016-08-16 07:38:51 +00:00
stefan
b17976763d Add an HD resolution perf test.
Also update existing perf tests to use send side bwe.

BUG=webrtc:4604, chromium:522001

Review-Url: https://codereview.webrtc.org/2227733004
Cr-Commit-Position: refs/heads/master@{#13726}
2016-08-11 14:01:03 +00:00
mflodman
48a4beb7a4 Auto pause video streams based on encoder target bitrate.
This CL changes the auto-pause logic to suspend a stream based on the
encoder target bitrate instead of the allocated bitrate for a stream,
to account for possible protection, e.g. FEC and NACK.

This CL also adds periodic logging of the current BWE and possibility
to run with suspension in video loopback test.

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

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

Cr-Commit-Position: refs/heads/master@{#13360}
2016-07-01 11:04:10 +00:00
Tommi
733b5478dd Movable support for VideoReceiveStream::Config and avoid copies.
Instead of the default copy constructor, the Copy() method has to be used.  In this CL, the number of copies has been reduced significantly in production code. One case in the video engine remains, where we need to restart a video stream.  Even in that case, I'm sure we could avoid it, but for this particular CL, I decided against it to keep things simple (and it's also an edge case).  Most importantly, creating copies is made harder and the interface encourages ownership transfers.

R=mflodman@webrtc.org, pbos@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#13102}
2016-06-10 15:58:12 +00:00
isheriff
6f8d686d35 Remove use of RtpHeaderExtension and clean up
Currently there are two structs that are identical and track extension details:
webrtc::RtpExtension
cricket::RtpHeaderExtension

The use of the structs is mixed in the code to track the extensions being
supported. This results in duplicate definition of
the URI constants and there is code to convert between the two structs.

Clean up to use a single RtpHeader throughout the codebase. The actual location
of RtpHeader may change in future (perhaps to be located in api/). Additionally,
this CL renames some of the constants to clarify Uri and Id use.

BUG= webrtc:5895

Review-Url: https://codereview.webrtc.org/1984983002
Cr-Commit-Position: refs/heads/master@{#12924}
2016-05-26 18:25:04 +00:00
nisse
97f0b93f0d Eliminate a few uses of IsZeroSize.
BUG=webrtc:5682

Review-Url: https://codereview.webrtc.org/2017583002
Cr-Commit-Position: refs/heads/master@{#12923}
2016-05-26 16:44:49 +00:00
philipel
274c1dc545 Added flag for FEC for video_loopback.
Review-Url: https://codereview.webrtc.org/1937983002
Cr-Commit-Position: refs/heads/master@{#12626}
2016-05-04 13:21:11 +00:00
pbos
14fe708f3d Reland of Initialize/configure video encoders asychronously. (patchset #1 id:1 of https://codereview.webrtc.org/1821983002/ )
Reason for revert:
RTCVideoEncoder has been updated to not make assumptions on calling threads/post back to a worker thread. This should now be landable again.

Original issue's description:
> Revert of Initialize/configure video encoders asychronously. (patchset #4 id:60001 of https://codereview.webrtc.org/1757313002/ )
>
> Reason for revert:
> Breaks RTCVideoEncoder which has incorrect assumptions on where InitEncode etc. is called from. Temporarily reverting until RTCVideoEncoder has been updated.
>
> Original issue's description:
> > Initialize/configure video encoders asychronously.
> >
> > Greatly speeds up setRemoteDescription() by moving encoder initialization
> > off the main worker thread, which is free to move onto gathering ICE
> > candidates and other tasks while InitEncode() is performed. It also
> > un-blocks PeerConnection GetStats() which is no longer blocked on
> > encoder initialization.
> >
> > BUG=webrtc:5410
> > R=stefan@webrtc.org
> >
> > Committed: fb647a67be
>
> R=stefan@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=chromium:595274, chromium:595308, webrtc:5410
>
> Committed: https://crrev.com/81cbd924447d507559dbd6e6d1f9fe439fcf2716
> Cr-Commit-Position: refs/heads/master@{#12086}

TBR=stefan@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=chromium:595274, chromium:595308, webrtc:5410

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

Cr-Commit-Position: refs/heads/master@{#12446}
2016-04-20 13:36:05 +00:00
nisse
c7fe3c27eb Delete method webrtc::VideoFrame::Reset.
Mainly affects VideoCaptureInput.

BUG=webrtc:5682

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

Cr-Commit-Position: refs/heads/master@{#12439}
2016-04-20 10:25:41 +00:00
Peter Boström
74f6e9ea23 Replace NULL with nullptr in webrtc/video.
BUG=
R=danilchap@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12218}
2016-04-04 15:56:22 +00:00
nisse
7ade7b3282 Delete class webrtc::VideoRenderer and its header file.
To replace the SmoothsRenderedFrames method, added a corresponding
flag to VideoReceiveStream::Config instead.

BUG=webrtc:5426

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

Cr-Commit-Position: refs/heads/master@{#12102}
2016-03-23 11:48:17 +00:00
Peter Boström
81cbd92444 Revert of Initialize/configure video encoders asychronously. (patchset #4 id:60001 of https://codereview.webrtc.org/1757313002/ )
Reason for revert:
Breaks RTCVideoEncoder which has incorrect assumptions on where InitEncode etc. is called from. Temporarily reverting until RTCVideoEncoder has been updated.

Original issue's description:
> Initialize/configure video encoders asychronously.
>
> Greatly speeds up setRemoteDescription() by moving encoder initialization
> off the main worker thread, which is free to move onto gathering ICE
> candidates and other tasks while InitEncode() is performed. It also
> un-blocks PeerConnection GetStats() which is no longer blocked on
> encoder initialization.
>
> BUG=webrtc:5410
> R=stefan@webrtc.org
>
> Committed: fb647a67be

R=stefan@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=chromium:595274, chromium:595308, webrtc:5410

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

Cr-Commit-Position: refs/heads/master@{#12086}
2016-03-22 11:19:14 +00:00
nisse
eb83a1a10f This is an initial cleanup step, aiming to delete the
webrtc::VideoRenderer class, replacing it by rtc::VideoSinkInterface.

The next step is to convert all places where a renderer is attached to
rtc::VideoSourceInterface, and at that point, the
SmoothsRenderedFrames method can be replaced by a flag
rtc::VideoSinkWants::smoothed_frames.

Delete unused method IsTextureSupported.
Delete unused time argument to RenderFrame.
Let webrtc::VideoRenderer inherit rtc::VideoSinkInterface. Rename RenderFrame --> OnFrame.

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

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

Cr-Commit-Position: refs/heads/master@{#12070}
2016-03-21 08:28:06 +00:00
Taylor Brandstetter
433b95a685 Fixing issues with timestamps in video_quality_test.cc.
The fundamental issue is that RTCP packet timestamps were accidentally
being fed into wrap_handler_, causing it to think the 32-bit timestamp
had wrapped around when it actually hadn't.

Was also using a 32-bit timestamp instead of a 64-bit timestamp in one
place, meaning that if wrapping actually DID occur, the test would still
fail due to a 64-bit value being cast to a 32-bit value.

BUG=webrtc:5668
R=pbos@webrtc.org, sprang@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12055}
2016-03-18 18:41:15 +00:00
Peter Boström
fb647a67be Initialize/configure video encoders asychronously.
Greatly speeds up setRemoteDescription() by moving encoder initialization
off the main worker thread, which is free to move onto gathering ICE
candidates and other tasks while InitEncode() is performed. It also
un-blocks PeerConnection GetStats() which is no longer blocked on
encoder initialization.

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

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

Cr-Commit-Position: refs/heads/master@{#11983}
2016-03-14 15:59:03 +00:00
sprang
1b3530b4df Make rtc::TimestampWrapAroundHandler handle backwards wrapping
Also fix a timestamp issue in video analyzer test.

BUG=webrtc:5637, webrtc:5537

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

Cr-Commit-Position: refs/heads/master@{#11938}
2016-03-10 09:33:01 +00:00