1235 Commits

Author SHA1 Message Date
asapersson
0069b45179 TestVp8Impl: Remove unused arguments and member variable.
Make WaitForEncodedFrame void.
Verify QP for each encoded frame.
Add SetupCodecSettings.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2995213002
Cr-Commit-Position: refs/heads/master@{#19426}
2017-08-21 12:50:46 +00:00
hbos
228fb0e1ec H264: Don't disable compiler warning by using NO_THREAD_SAFETY_ANALYSIS.
The LockManagerOperation global function uses void** which does not work
well with the thread_annotations.h macros and produce compiler warnings
on clang (chromium default). Workarounds to this is hacky and unhelpful
so we disable the analysis for this function, which isn't helpful in
this case anyway.

webrtc_h264_config is no longer needed and is removed.

BUG=8090, 8119

Review-Url: https://codereview.webrtc.org/3000263002
Cr-Commit-Position: refs/heads/master@{#19425}
2017-08-21 12:17:17 +00:00
brandtr
ed0e436688 VideoProcessorIntegrationTest: mini-fixes in preparation for task queue CL.
* Rename some members.
* Shorten visualization file names.
* Make some member functions static, in preparation for moving them
  to be helper functions in an anonymous namespace.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/3001193002
Cr-Commit-Position: refs/heads/master@{#19424}
2017-08-21 11:15:24 +00:00
brandtr
bdd555c7a7 VideoProcessor: mini-fixes in preparation for task queue CL.
* Make ProcessFrame return void.
* Make |encode_callback_| and |decode_callback_| direct members.
* Remove ::EncodedFrameSize() and ::EncodedFrameType()
* Remove unused |timestamp| member from FrameInfo.
* Reorder printf output from PrintCodecSettings.
* Make some member functions const.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2998063002
Cr-Commit-Position: refs/heads/master@{#19421}
2017-08-21 08:34:04 +00:00
kjellander
8b844b16eb Only disable -Wthread-safety-attributes warning for Clang.
Clang is enabled by default and we currently lack coverage for building on Windows
with MSVC (see crbug.com/757293). This should unblock rolling WebRTC into
Chromium DEPS. We need to improve our trybot coverage for standalone WebRTC
to prevent things like this in the future though (crbug.com/756840).

BUG=webrtc:8119,chromium:756840,chromium:757293
TBR=hbos@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/3003473002
Cr-Commit-Position: refs/heads/master@{#19420}
2017-08-21 04:37:21 +00:00
philipel
3042c2d5e0 Reland of quest keyframes more frequently on stream start/decoding error. (patchset #1 id:1 of https://codereview.chromium.org/2995153002/ )
Reason for revert:
iOS workaround.

Original issue's description:
> Revert of quest keyframes more frequently on stream start/decoding error. (patchset #2 id:170001 of https://codereview.webrtc.org/2996823002/ )
>
> Reason for revert:
> Causes iOS H264 calls received in the background to have increased delay before being able to decode stream from sender due to not having a keyframe.
>
> Original issue's description:
> > Reland of quest keyframes more frequently on stream start/decoding error. (patchset #1 id:1 of https://codereview.chromium.org/2994043002/ )
> >
> > Reason for revert:
> > Create fix CL.
> >
> > Original issue's description:
> > > Revert of Request keyframes more frequently on stream start/decoding error. (patchset #1 id:1 of https://codereview.webrtc.org/2993793002/ )
> > >
> > > Reason for revert:
> > > Broke downstream test that was waiting for 5 keyframes to be received within 10 seconds. Maybe the issue is that "stats_callback_->OnCompleteFrame(frame->num_references == 0, ..." was changed to "frame->is_keyframe()"?
> > >
> > > Original issue's description:
> > > > Request keyframes more frequently on stream start/decoding error.
> > > >
> > > > In this CL:
> > > >  - Added FrameObject::is_keyframe() convinience function.
> > > >  - Moved logic to request keyframes on decoding error from VideoReceived to
> > > >    VideoReceiveStream.
> > > >  - Added keyframe_required as a parameter to FrameBuffer::NextFrame.
> > > >
> > > > BUG=webrtc:8074
> > > >
> > > > Review-Url: https://codereview.webrtc.org/2993793002
> > > > Cr-Commit-Position: refs/heads/master@{#19280}
> > > > Committed: 26b4804358
> > >
> > > TBR=terelius@webrtc.org,stefan@webrtc.org,noahric@chromium.org,philipel@webrtc.org
> > > # Skipping CQ checks because original CL landed less than 1 days ago.
> > > NOPRESUBMIT=true
> > > NOTREECHECKS=true
> > > NOTRY=true
> > > BUG=webrtc:8074
> > >
> > > Review-Url: https://codereview.webrtc.org/2994043002
> > > Cr-Commit-Position: refs/heads/master@{#19295}
> > > Committed: 77a983185f
> >
> > TBR=terelius@webrtc.org,stefan@webrtc.org,noahric@chromium.org,deadbeef@webrtc.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > BUG=webrtc:8074
> >
> > Review-Url: https://codereview.webrtc.org/2996823002
> > Cr-Commit-Position: refs/heads/master@{#19324}
> > Committed: 628ac5964e
>
> TBR=terelius@webrtc.org,stefan@webrtc.org,noahric@chromium.org,deadbeef@webrtc.org,philipel@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:8074
>
> Review-Url: https://codereview.webrtc.org/2995153002
> Cr-Commit-Position: refs/heads/master@{#19392}
> Committed: 53959fcc2b

TBR=terelius@webrtc.org,stefan@webrtc.org,noahric@chromium.org,deadbeef@webrtc.org,tkchin@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.

BUG=webrtc:8074

Review-Url: https://codereview.webrtc.org/2996153003
Cr-Commit-Position: refs/heads/master@{#19410}
2017-08-18 11:55:02 +00:00
sprang
ba050a6d6d Reland of Add a flags field to video timing extension. (patchset #1 id:1 of https://codereview.webrtc.org/2995953002/ )
Reason for revert:
Create reland CL to add fix to.

Original issue's description:
> Revert of Add a flags field to video timing extension. (patchset #15 id:280001 of https://codereview.webrtc.org/3000753002/ )
>
> Reason for revert:
> Speculative revet for breaking remoting_unittests in fyi bots.
> https://build.chromium.org/p/chromium.webrtc.fyi/waterfall?builder=Win7%20Tester
>
> Original issue's description:
> > Add a flags field to video timing extension.
> >
> > The rtp header extension for video timing shuold have an additional
> > field for signaling metadata, such as what triggered the extension for
> > this particular frame. This will allow separating frames select because
> > of outlier sizes from regular frames, for more accurate stats.
> >
> > This implementation is backwards compatible in that it can read video
> > timing extensions without the new flag field, but it always sends with
> > it included.
> >
> > BUG=webrtc:7594
> >
> > Review-Url: https://codereview.webrtc.org/3000753002
> > Cr-Commit-Position: refs/heads/master@{#19353}
> > Committed: cf5d485e14
>
> TBR=danilchap@webrtc.org,kthelgason@webrtc.org,stefan@webrtc.org,sprang@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:7594
>
> Review-Url: https://codereview.webrtc.org/2995953002
> Cr-Commit-Position: refs/heads/master@{#19360}
> Committed: f0f7378b05

TBR=danilchap@webrtc.org,kthelgason@webrtc.org,stefan@webrtc.org,emircan@google.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7594

Review-Url: https://codereview.webrtc.org/2996153002
Cr-Commit-Position: refs/heads/master@{#19405}
2017-08-18 09:51:12 +00:00
emircan
bbcc356084 Reland of Turn off error resilience for VP9 if no spatial or temporal layers are configured and NACK is enabl… (patchset #1 id:1 of https://codereview.webrtc.org/2995173002/ )
Reason for revert:
Speculative revert didn't help, see for the actual reason https://bugs.chromium.org/p/chromium/issues/detail?id=756741.

Original issue's description:
> Revert of Turn off error resilience for VP9 if no spatial or temporal layers are configured and NACK is enabl… (patchset #2 id:20001 of https://codereview.webrtc.org/2925253002/ )
>
> Reason for revert:
> Failing WebRtcVideoQualityBrowserTest.MANUAL_TestVideoQualityVp* tests.
>
> Mac #19383-19392
> https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Tester/builds/42197
> Win8 #19383-19385
> https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win8%20Tester/builds/1496
> Win7 #19383-19385
> https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win7%20Tester/builds/9807
> Win10 #19383-19385
> https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win10%20Tester/builds/8452
>
> Original issue's description:
> > Turn off error resilience for VP9 if no spatial or temporal layers are configured and NACK is enabled.
> >
> > Error resilience is currently always enabled for VP9 which reduces quality.
> >
> > Reland of https://codereview.webrtc.org/2532053002
> >
> > BUG=webrtc:6783
> >
> > Review-Url: https://codereview.webrtc.org/2925253002
> > Cr-Commit-Position: refs/heads/master@{#19385}
> > Committed: 6b463faccb
>
> TBR=brandtr@webrtc.org,asapersson@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6783
>
> Review-Url: https://codereview.webrtc.org/2995173002
> Cr-Commit-Position: refs/heads/master@{#19399}
> Committed: 7b532db9ad

TBR=brandtr@webrtc.org,asapersson@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:6783

Review-Url: https://codereview.webrtc.org/3002933002
Cr-Commit-Position: refs/heads/master@{#19402}
2017-08-18 07:28:40 +00:00
emircan
7b532db9ad Revert of Turn off error resilience for VP9 if no spatial or temporal layers are configured and NACK is enabl… (patchset #2 id:20001 of https://codereview.webrtc.org/2925253002/ )
Reason for revert:
Failing WebRtcVideoQualityBrowserTest.MANUAL_TestVideoQualityVp* tests.

Mac #19383-19392
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Tester/builds/42197
Win8 #19383-19385
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win8%20Tester/builds/1496
Win7 #19383-19385
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win7%20Tester/builds/9807
Win10 #19383-19385
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win10%20Tester/builds/8452

Original issue's description:
> Turn off error resilience for VP9 if no spatial or temporal layers are configured and NACK is enabled.
>
> Error resilience is currently always enabled for VP9 which reduces quality.
>
> Reland of https://codereview.webrtc.org/2532053002
>
> BUG=webrtc:6783
>
> Review-Url: https://codereview.webrtc.org/2925253002
> Cr-Commit-Position: refs/heads/master@{#19385}
> Committed: 6b463faccb

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

Review-Url: https://codereview.webrtc.org/2995173002
Cr-Commit-Position: refs/heads/master@{#19399}
2017-08-18 01:20:40 +00:00
tkchin
53959fcc2b Revert of quest keyframes more frequently on stream start/decoding error. (patchset #2 id:170001 of https://codereview.webrtc.org/2996823002/ )
Reason for revert:
Causes iOS H264 calls received in the background to have increased delay before being able to decode stream from sender due to not having a keyframe.

Original issue's description:
> Reland of quest keyframes more frequently on stream start/decoding error. (patchset #1 id:1 of https://codereview.chromium.org/2994043002/ )
>
> Reason for revert:
> Create fix CL.
>
> Original issue's description:
> > Revert of Request keyframes more frequently on stream start/decoding error. (patchset #1 id:1 of https://codereview.webrtc.org/2993793002/ )
> >
> > Reason for revert:
> > Broke downstream test that was waiting for 5 keyframes to be received within 10 seconds. Maybe the issue is that "stats_callback_->OnCompleteFrame(frame->num_references == 0, ..." was changed to "frame->is_keyframe()"?
> >
> > Original issue's description:
> > > Request keyframes more frequently on stream start/decoding error.
> > >
> > > In this CL:
> > >  - Added FrameObject::is_keyframe() convinience function.
> > >  - Moved logic to request keyframes on decoding error from VideoReceived to
> > >    VideoReceiveStream.
> > >  - Added keyframe_required as a parameter to FrameBuffer::NextFrame.
> > >
> > > BUG=webrtc:8074
> > >
> > > Review-Url: https://codereview.webrtc.org/2993793002
> > > Cr-Commit-Position: refs/heads/master@{#19280}
> > > Committed: 26b4804358
> >
> > TBR=terelius@webrtc.org,stefan@webrtc.org,noahric@chromium.org,philipel@webrtc.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=webrtc:8074
> >
> > Review-Url: https://codereview.webrtc.org/2994043002
> > Cr-Commit-Position: refs/heads/master@{#19295}
> > Committed: 77a983185f
>
> TBR=terelius@webrtc.org,stefan@webrtc.org,noahric@chromium.org,deadbeef@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> BUG=webrtc:8074
>
> Review-Url: https://codereview.webrtc.org/2996823002
> Cr-Commit-Position: refs/heads/master@{#19324}
> Committed: 628ac5964e

TBR=terelius@webrtc.org,stefan@webrtc.org,noahric@chromium.org,deadbeef@webrtc.org,philipel@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:8074

Review-Url: https://codereview.webrtc.org/2995153002
Cr-Commit-Position: refs/heads/master@{#19392}
2017-08-17 18:01:46 +00:00
asapersson
142fcc96d6 Move kMinPixelsPerFrame constant in VideoStreamEncoder to VideoEncoder::ScalingSettings.
Make it possible for forced VP8 SW fallback encoder to set min_pixels_per_frame via GetScalingSettings().

Add a min required resolution (in addition to bitrate) before releasing forced SW fallback.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/3000693003
Cr-Commit-Position: refs/heads/master@{#19390}
2017-08-17 15:58:54 +00:00
sprang
3958ed8e6f RTC_CHECK instead of assert in vp9_impl.cc
BUG=None

Review-Url: https://codereview.webrtc.org/2994403002
Cr-Commit-Position: refs/heads/master@{#19387}
2017-08-17 15:12:10 +00:00
asapersson
6b463faccb Turn off error resilience for VP9 if no spatial or temporal layers are configured and NACK is enabled.
Error resilience is currently always enabled for VP9 which reduces quality.

Reland of https://codereview.webrtc.org/2532053002

BUG=webrtc:6783

Review-Url: https://codereview.webrtc.org/2925253002
Cr-Commit-Position: refs/heads/master@{#19385}
2017-08-17 14:28:10 +00:00
kwiberg
5b9746ef10 When using clang, switch on -Wc++11-narrowing
See
https://clang.llvm.org/docs/DiagnosticsReference.html#wc-11-narrowing
for datails. This catches a narrowing bug that broke a downstream
project in https://codereview.webrtc.org/2995523002/.

BUG=none

Review-Url: https://codereview.webrtc.org/2995073002
Cr-Commit-Position: refs/heads/master@{#19366}
2017-08-16 11:52:35 +00:00
asapersson
22c76c4e65 Add support for a forced software encoder fallback.
Make it possible to switch from VP8 HW -> VP8 SW -> VP8 HW depending on bitrate and resolution.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2988963002
Cr-Commit-Position: refs/heads/master@{#19362}
2017-08-16 07:53:59 +00:00
emircan
f0f7378b05 Revert of Add a flags field to video timing extension. (patchset #15 id:280001 of https://codereview.webrtc.org/3000753002/ )
Reason for revert:
Speculative revet for breaking remoting_unittests in fyi bots.
https://build.chromium.org/p/chromium.webrtc.fyi/waterfall?builder=Win7%20Tester

Original issue's description:
> Add a flags field to video timing extension.
>
> The rtp header extension for video timing shuold have an additional
> field for signaling metadata, such as what triggered the extension for
> this particular frame. This will allow separating frames select because
> of outlier sizes from regular frames, for more accurate stats.
>
> This implementation is backwards compatible in that it can read video
> timing extensions without the new flag field, but it always sends with
> it included.
>
> BUG=webrtc:7594
>
> Review-Url: https://codereview.webrtc.org/3000753002
> Cr-Commit-Position: refs/heads/master@{#19353}
> Committed: cf5d485e14

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

Review-Url: https://codereview.webrtc.org/2995953002
Cr-Commit-Position: refs/heads/master@{#19360}
2017-08-15 19:31:23 +00:00
sprang
cf5d485e14 Add a flags field to video timing extension.
The rtp header extension for video timing shuold have an additional
field for signaling metadata, such as what triggered the extension for
this particular frame. This will allow separating frames select because
of outlier sizes from regular frames, for more accurate stats.

This implementation is backwards compatible in that it can read video
timing extensions without the new flag field, but it always sends with
it included.

BUG=webrtc:7594

Review-Url: https://codereview.webrtc.org/3000753002
Cr-Commit-Position: refs/heads/master@{#19353}
2017-08-15 12:33:27 +00:00
ehmaldonado
1bf0ff36ea Roll chromium_revision f156b499f7..f439921f66 (493756:494089)
Change log: f156b499f7..f439921f66
Full diff: f156b499f7..f439921f66

Changed dependencies:
* src/base: c9ab1936b1..feac46e933
* src/build: 5fecec2d69..221820676e
* src/ios: bf72566bf8..e437e37fec
* src/testing: 1330967db2..3f5325f618
* src/third_party: 0a591a99a3..058ff821a8
* src/third_party/catapult: 0eeb5baed7..122dd5e91b
* src/tools: 3136678749..e78bdaf8db
DEPS diff: f156b499f7..f439921f66/DEPS

Clang version changed 309984:310694
Details: f156b499f7..f439921f66/tools/clang/scripts/update.py

TBR=
BUG=None
CQ_INCLUDE_TRYBOTS=master.internal.tryserver.corp.webrtc:linux_internal

Review-Url: https://codereview.webrtc.org/3001673002
Cr-Commit-Position: refs/heads/master@{#19350}
2017-08-15 10:16:50 +00:00
brandtr
deac84107f Rename SetProcessParams -> SetTestConfig.
Also remove |key_frame_interval| from argument list, since it is always
set to -1.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2999643002
Cr-Commit-Position: refs/heads/master@{#19331}
2017-08-14 08:29:18 +00:00
brandtr
ef8eb8c10d Reorganize code in plot_videoprocessor_integrationtest.cc.
* Don't loop over fps, but do loop over codec implementation type.
* Order codec settings as they are defined in the test.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/3000613002
Cr-Commit-Position: refs/heads/master@{#19330}
2017-08-14 08:06:16 +00:00
brandtr
77920a415b Minor improvements to VideoProcessorIntegrationTest.
* Create all encoders/decoders using factories.
* Add ::Release() method, to mirror the existing ::Init().
* Remove unnecessary ::test prefixes.
* Reorganize constants and members.
* Remove extraneous packet loss rate assignments.
* Remove members |start_frame_rate_| and |num_temporal_layers_|.
* Explicitly give ::SetUpObjects(.) access to initial rates.
* Change visualization output file names.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2999613002
Cr-Commit-Position: refs/heads/master@{#19326}
2017-08-11 14:48:15 +00:00
philipel
628ac5964e Reland of quest keyframes more frequently on stream start/decoding error. (patchset #1 id:1 of https://codereview.chromium.org/2994043002/ )
Reason for revert:
Create fix CL.

Original issue's description:
> Revert of Request keyframes more frequently on stream start/decoding error. (patchset #1 id:1 of https://codereview.webrtc.org/2993793002/ )
>
> Reason for revert:
> Broke downstream test that was waiting for 5 keyframes to be received within 10 seconds. Maybe the issue is that "stats_callback_->OnCompleteFrame(frame->num_references == 0, ..." was changed to "frame->is_keyframe()"?
>
> Original issue's description:
> > Request keyframes more frequently on stream start/decoding error.
> >
> > In this CL:
> >  - Added FrameObject::is_keyframe() convinience function.
> >  - Moved logic to request keyframes on decoding error from VideoReceived to
> >    VideoReceiveStream.
> >  - Added keyframe_required as a parameter to FrameBuffer::NextFrame.
> >
> > BUG=webrtc:8074
> >
> > Review-Url: https://codereview.webrtc.org/2993793002
> > Cr-Commit-Position: refs/heads/master@{#19280}
> > Committed: 26b4804358
>
> TBR=terelius@webrtc.org,stefan@webrtc.org,noahric@chromium.org,philipel@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:8074
>
> Review-Url: https://codereview.webrtc.org/2994043002
> Cr-Commit-Position: refs/heads/master@{#19295}
> Committed: 77a983185f

TBR=terelius@webrtc.org,stefan@webrtc.org,noahric@chromium.org,deadbeef@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
BUG=webrtc:8074

Review-Url: https://codereview.webrtc.org/2996823002
Cr-Commit-Position: refs/heads/master@{#19324}
2017-08-11 10:41:44 +00:00
mflodman
351424e942 Removing VCMCodecDataBase::Codec and VideoCodingModule::Codec.
This CL brings us one step closer to removing CodecDatabase and
GenericEncoder, by removing the static VCM::Codec(). Codec specific
methods are moved to video_encoder.cc (they already belonged to this
class) and getting default generic codec settings has been moved to a
test specific file.

This CL also makes video_encoder.h pass style guide and lint checks,
since these checks are triggered with the new video_encoder.cc file.

BUG=webrtc:8064

Review-Url: https://codereview.webrtc.org/2993923002
Cr-Commit-Position: refs/heads/master@{#19303}
2017-08-10 09:43:14 +00:00
asapersson
e5d02f9204 vp8_impl.cc: Make it possible to base postproc deblocking level for arm on qp (e.g. turn off deblocking for low qp values).
BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2970923002
Cr-Commit-Position: refs/heads/master@{#19300}
2017-08-10 06:37:05 +00:00
kwiberg
ee89e7870c Replace CHECK(x && y) with two separate CHECK() calls
That way, the debug printout will tell us which of x and y that was false.

BUG=none

Review-Url: https://codereview.webrtc.org/2988153003
Cr-Commit-Position: refs/heads/master@{#19297}
2017-08-10 00:22:01 +00:00
deadbeef
77a983185f Revert of Request keyframes more frequently on stream start/decoding error. (patchset #1 id:1 of https://codereview.webrtc.org/2993793002/ )
Reason for revert:
Broke downstream test that was waiting for 5 keyframes to be received within 10 seconds. Maybe the issue is that "stats_callback_->OnCompleteFrame(frame->num_references == 0, ..." was changed to "frame->is_keyframe()"?

Original issue's description:
> Request keyframes more frequently on stream start/decoding error.
>
> In this CL:
>  - Added FrameObject::is_keyframe() convinience function.
>  - Moved logic to request keyframes on decoding error from VideoReceived to
>    VideoReceiveStream.
>  - Added keyframe_required as a parameter to FrameBuffer::NextFrame.
>
> BUG=webrtc:8074
>
> Review-Url: https://codereview.webrtc.org/2993793002
> Cr-Commit-Position: refs/heads/master@{#19280}
> Committed: 26b4804358

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

Review-Url: https://codereview.webrtc.org/2994043002
Cr-Commit-Position: refs/heads/master@{#19295}
2017-08-09 22:55:41 +00:00
brucedawson
452ea0d4d9 Workaround VC++ 2017 template bug
When compiling webrtc's call.cc with VC++ 2017 (is_clang = false) the
following compile error occurs:

sequence_number_util.h(90): error C2672: 'rtc::SafeLt': no matching
overloaded function found
note: see reference to class template instantiation
'webrtc::SeqNumUnwrapper<T,M>' being compiled

This error is not associated with any particular instantiation of
SeqNumUnwrapper (there isn't one) and this undefined nature of 'T' seems
to be what confuses the compiler. When it tries to locate SafeLt for an
undefined type 'T' it gets confused.

SafeLt is unnecessary in this context and changing it to use the '<'
operator directly avoids the problem.

The bug has been reported to Microsoft.

BUG=chromium:753488

Review-Url: https://codereview.webrtc.org/2997623002
Cr-Commit-Position: refs/heads/master@{#19292}
2017-08-09 17:00:11 +00:00
gustavogb
f1e08d0b58 Fix the video buffer size should take rtt into consideration
BUG=webrtc:8010

Review-Url: https://codereview.webrtc.org/2980413002
Cr-Commit-Position: refs/heads/master@{#19285}
2017-08-09 12:43:08 +00:00
philipel
26b4804358 Request keyframes more frequently on stream start/decoding error.
In this CL:
 - Added FrameObject::is_keyframe() convinience function.
 - Moved logic to request keyframes on decoding error from VideoReceived to
   VideoReceiveStream.
 - Added keyframe_required as a parameter to FrameBuffer::NextFrame.

BUG=webrtc:8074

Review-Url: https://codereview.webrtc.org/2993793002
Cr-Commit-Position: refs/heads/master@{#19280}
2017-08-09 10:33:59 +00:00
brandtr
07734a5995 Move ownership of webrtc::VideoCodec into TestConfig.
BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2995603002
Cr-Commit-Position: refs/heads/master@{#19271}
2017-08-08 15:35:53 +00:00
philipel
bb992e7159 Remove temporary VP9 pid/tl0 jump fix.
Earlier the pid/tl0 was incorrectly reinitialized upon encoder reconfiguration,
and this fix was implemented to mitigate that. This fix can however guess wrong
and cause a valid stream to be interupted.

BUG=webrtc:7920

Review-Url: https://codereview.webrtc.org/2969043002
Cr-Commit-Position: refs/heads/master@{#19268}
2017-08-08 13:18:56 +00:00
brandtr
c287c80781 Remove source file writer from VideoProcessor.
It serves a very limited purpose: converting from the input YUV
file to an output Y4M file. The experimenter can do this manually,
if this is of interest. (It is generally not.)

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2993063002
Cr-Commit-Position: refs/heads/master@{#19257}
2017-08-07 15:30:43 +00:00
brandtr
c409552052 Remove VideoProcessor interface.
BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2994613002
Cr-Commit-Position: refs/heads/master@{#19256}
2017-08-07 15:12:33 +00:00
magjed
73c0eb5014 ObjC: Implement HW codecs in ObjC instead of C++
The current ObjC HW encoder is implemented as a C++
webrtc::VideoEncoder. We then wrap it two times in the following way:
webrtc::VideoEncoder -> RTCVideoEncoder -> webrtc::VideoEncoder.
This was originally done to minimize the code diff when landing the
injectable encoder.

This CL removes the first wrapping and implements the ObjC HW encoder
as a RTCVideoEncoder directly. Similarly, the decoder is implemented
as a RTCVideoDecoder directly.

Based on andersc@ CL: https://codereview.webrtc.org/2978623002/.

BUG=webrtc:7924

Review-Url: https://codereview.webrtc.org/2987413002
Cr-Commit-Position: refs/heads/master@{#19255}
2017-08-07 13:55:28 +00:00
brandtr
bea36fdee8 Minor improvements to VideoProcessor and corresponding test.
- Make all overridden methods of VideoProcessorImpl public,
  in preparation of the removal of the VideoProcessor interface.
- Place corresponding method definitions in correct order
  in .cc file.
- Harmonize the stdout printing.
- Make timestamp calculations adhere to set frame rate.

Except for the last bullet, these changes should not lead to
different functionality.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2995513002
Cr-Commit-Position: refs/heads/master@{#19254}
2017-08-07 10:36:54 +00:00
brandtr
669ea1917e Rename WEBRTC_VIDEOPROCESSOR_H264_TESTS define to WEBRTC_USE_H264.
This is the name used in other parts of the code.

BUG=none

Review-Url: https://codereview.webrtc.org/2996463003
Cr-Commit-Position: refs/heads/master@{#19253}
2017-08-07 10:35:13 +00:00
asapersson
60dfbdbf75 Remove unused members in MediaOptimization.
BUG=none

Review-Url: https://codereview.webrtc.org/2993703002
Cr-Commit-Position: refs/heads/master@{#19252}
2017-08-07 07:03:03 +00:00
philipel
227f8b9be8 Reland of Fix off-by-one bugs in video_coding::PacketBuffer when the buffer is filled with a single frame. (patchset #1 id:1 of https://codereview.chromium.org/2990183002/ )
Reason for revert:
Revert to create fix CL.

Original issue's description:
> Revert of Fix off-by-one bugs in video_coding::PacketBuffer when the buffer is filled with a single frame. (patchset #5 id:80001 of https://codereview.chromium.org/2993513002/ )
>
> Reason for revert:
> Break performance bots.
>
> Original issue's description:
> > Fix off-by-one bugs in video_coding::PacketBuffer when the buffer is filled with a single frame.
> >
> > BUG=webrtc:8028
> >
> > Review-Url: https://codereview.webrtc.org/2993513002
> > Cr-Commit-Position: refs/heads/master@{#19209}
> > Committed: ee13e8919c
>
> TBR=stefan@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:8028
>
> Review-Url: https://codereview.webrtc.org/2990183002
> Cr-Commit-Position: refs/heads/master@{#19211}
> Committed: c18f1d7c94

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

Review-Url: https://codereview.webrtc.org/2989313003
Cr-Commit-Position: refs/heads/master@{#19249}
2017-08-04 13:39:31 +00:00
mflodman
463d7ccb36 Remove video_coding/codecs/OWNERS.
video_coding/OWNERS/ should be enough.

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

Review-Url: https://codereview.webrtc.org/2992283002 .
Cr-Commit-Position: refs/heads/master@{#19246}
2017-08-04 10:58:25 +00:00
philipel
c5fb4683e5 Don't clear newer packets from the video_coding::PacketBuffer when calling ClearTo.
BUG=webrtc:8060

Review-Url: https://codereview.webrtc.org/2987013002
Cr-Commit-Position: refs/heads/master@{#19212}
2017-08-02 11:28:57 +00:00
philipel
c18f1d7c94 Revert of Fix off-by-one bugs in video_coding::PacketBuffer when the buffer is filled with a single frame. (patchset #5 id:80001 of https://codereview.chromium.org/2993513002/ )
Reason for revert:
Break performance bots.

Original issue's description:
> Fix off-by-one bugs in video_coding::PacketBuffer when the buffer is filled with a single frame.
>
> BUG=webrtc:8028
>
> Review-Url: https://codereview.webrtc.org/2993513002
> Cr-Commit-Position: refs/heads/master@{#19209}
> Committed: ee13e8919c

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

Review-Url: https://codereview.webrtc.org/2990183002
Cr-Commit-Position: refs/heads/master@{#19211}
2017-08-02 11:18:02 +00:00
philipel
ee13e8919c Fix off-by-one bugs in video_coding::PacketBuffer when the buffer is filled with a single frame.
BUG=webrtc:8028

Review-Url: https://codereview.webrtc.org/2993513002
Cr-Commit-Position: refs/heads/master@{#19209}
2017-08-02 09:07:48 +00:00
asapersson
8339e1a7aa Remove ProcessParams struct.
Add SetProcessParams method for configuring process settings (removes intermediate step of configuring settings via ProcessParams).

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2962293002
Cr-Commit-Position: refs/heads/master@{#19206}
2017-08-02 07:17:18 +00:00
philipel
77415f561d Revert of Disable SeqNumUnwrapper death tests to avoid breaking downstream builds. (patchset #1 id:1 of https://codereview.chromium.org/2985083002/ )
Reason for revert:
Creating revert to fix these tests.

Original issue's description:
> Disable SeqNumUnwrapper death tests to avoid breaking downstream builds.
>
> BUG=None
> TBR=stefan@webrtc.org
> NOTRY=true
>
> Review-Url: https://codereview.webrtc.org/2985083002
> Cr-Commit-Position: refs/heads/master@{#19155}
> Committed: 8e245561f2

TBR=stefan@webrtc.org
BUG=None

Review-Url: https://codereview.webrtc.org/2992643002
Cr-Commit-Position: refs/heads/master@{#19166}
2017-07-27 11:37:18 +00:00
philipel
8e245561f2 Disable SeqNumUnwrapper death tests to avoid breaking downstream builds.
BUG=None
TBR=stefan@webrtc.org
NOTRY=true

Review-Url: https://codereview.webrtc.org/2985083002
Cr-Commit-Position: refs/heads/master@{#19155}
2017-07-26 15:43:53 +00:00
philipel
7956c0f2f6 Implemented a new sequence number unwrapper in sequence_number_util.h.
There is already an Unwrapper in webrtc/modules/include/module_common_types.h,
but we reimplemented it in sequence_number_util.h for a few reasons:
 - Such a class belongs in sequence_number_util.h.
 - It is a cleaner implementation since we can use the rest of
   sequence_number_util.h functionality.
 - You can choose at which number the unwrapped sequence should start,
   which is used to avoid the edge case when a backward wrap can happen
   as the first few numbers are unwrapped.
 - This unwrapper can unwrap numbers that does not wrap 8/16/32 bits.

BUG=None

Review-Url: https://codereview.webrtc.org/2977603002
Cr-Commit-Position: refs/heads/master@{#19154}
2017-07-26 14:48:15 +00:00
philipel
65e1f9476a Throttle log message in FrameBuffer.
BUG=webrtc:7551

Review-Url: https://codereview.webrtc.org/2987673002
Cr-Commit-Position: refs/heads/master@{#19123}
2017-07-24 15:26:53 +00:00
pbos
1777c5fec5 Move temporal-layer properties to FrameConfig.
Removes keying on pattern_idx inside TemporalLayers implementations for
several properties that are different between screencast temporal layers
and normal/default temporal layers.

This is a step towards sharing PopulateCodecSpecific between the layer
patterns and code deduplication to longer term be able to separate the
packetizer step from encoder settings, so that temporal patterns can be
used for asynchronous hardware encoders where there may be outstanding
frames.

BUG=chromium:702017, webrtc:7349
R=brandtr@webrtc.org

Review-Url: https://codereview.webrtc.org/2924993002
Cr-Commit-Position: refs/heads/master@{#19097}
2017-07-20 00:04:02 +00:00
ehmaldonado
f6a861ab6c Remove remains of webrtc/base
All downstream code have been updated to the new location.

In PRESUBMIT.py:
* Remove webrtc/rtc_base from CPP_BLACKLIST
* Add webrtc/rtc_base to LEGACY_API_DIRS

Fix some duplicated paths in
webrtc/modules/audio_processing/test/conversational_speech/BUILD.gn

BUG=webrtc:7634
TBR=kwiberg@webrtc.org

Review-Url: https://codereview.webrtc.org/2976293002
Cr-Commit-Position: refs/heads/master@{#19094}
2017-07-19 17:40:47 +00:00
tommi
058aa719ff Fix incorrect DCHECK in generic_decoder.cc.
When ownership is not external, the decoder pointer should be valid.

BUG=b/63658384
TBR=magjed@webrtc.org

Review-Url: https://codereview.webrtc.org/2975383002
Cr-Commit-Position: refs/heads/master@{#19041}
2017-07-15 18:33:35 +00:00