578 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
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
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
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
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
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
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
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
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
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
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
sprang
f03ea04176 Fix potential incorrect sync flags used with screenshare TL stream.
BUG=webrtc:7980

Review-Url: https://codereview.webrtc.org/2978743002
Cr-Commit-Position: refs/heads/master@{#18999}
2017-07-13 10:53:51 +00:00
jianj
23173a372b vp9: Use 2 threads for 360p.
BUG=None

Review-Url: https://codereview.webrtc.org/2977843002
Cr-Commit-Position: refs/heads/master@{#18990}
2017-07-12 23:11:09 +00:00
jianj
822e593437 vp9: Turn off FRAME_PARALLEL_DECODING.
This is removed from libvpx.

BUG=None

Review-Url: https://codereview.webrtc.org/2975113002
Cr-Commit-Position: refs/heads/master@{#18989}
2017-07-12 23:09:58 +00:00
magjed
6cc25614a9 Remove webrtc::VideoEncoderFactory
Replace the use of webrtc::VideoEncoderFactory with
cricket::WebRtcVideoEncoderFactory and remove the adapter classes
between these two factory types.

Some code changes were necessary in order to accomplish this:
 * Move SimulcastEncoderAdapter from
   webrtc/modules/video_coding/codecs/vp8 to webrtc/media/engine (that's
   where it's used).
 * Rename simulcast_unittest.h to simulcast_test_utility.h and make it
   into it's own target, because it's used from both
   simulcast_unittest.cc and simulcast_encoder_adapter_unittest.cc.
 * Remove ownership of the encoder factory from SimulcastEncoderAdapter,
   and make the necessary changes in surrounding code.

The goal with this CL is to clean up the code, and also to free up
the name webrtc::VideoEncoderFactory for future use.

BUG=webrtc:7925

Review-Url: https://codereview.webrtc.org/2964953002
Cr-Commit-Position: refs/heads/master@{#18945}
2017-07-10 10:26:36 +00:00
Edward Lemur
c20978e581 Rename webrtc/base -> webrtc/rtc_base
NOPRESUBMIT=True # cpplint errors that aren't caused by this CL.
NOTRY=True
NOTREECHECKS=True
TBR=kwiberg@webrtc.org, kjellander@webrtc.org

Bug: webrtc:7634
Change-Id: I3cca0fbaa807b563c95979cccd6d1bec32055f36
Reviewed-on: https://chromium-review.googlesource.com/562156
Commit-Queue: Edward Lemur <ehmaldonado@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18919}
2017-07-06 19:11:40 +00:00
Henrik Kjellander
dca1e09db7 Revert "Update includes for webrtc/{base => rtc_base} rename (1/3)"
This reverts commit c8fa692ec44fd6ba4fa3d085ac3161a262fc18c5.

BUG=webrtc:7634
NOTRY=True
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2964773002 .
Cr-Commit-Position: refs/heads/master@{#18872}
2017-07-01 14:42:25 +00:00
kjellander
c8fa692ec4 Update includes for webrtc/{base => rtc_base} rename (1/3)
I used a command like this to update the paths:
perl -pi -e "s/webrtc\/base/webrtc\/rtc_base/g" `find webrtc/rtc_base -name "*.cc" -o -name "*.h"`

The only manual edit is to add an include of webrtc/rtc_base/checks.h in
webrtc/modules/audio_device/android/opensles_common.h, which likely
was needed due to changed include paths due to 'git cl format'.

BUG=webrtc:7634
NOTRY=True
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2969653002
Cr-Commit-Position: refs/heads/master@{#18871}
2017-06-30 21:02:00 +00:00
sprang
3dbfac3515 Fix two simple type mismatches thay may cause compilation issues on win.
BUG=None

Review-Url: https://codereview.webrtc.org/2955193002
Cr-Commit-Position: refs/heads/master@{#18836}
2017-06-29 14:42:18 +00:00
asapersson
8a90f87518 Add SetCodecSettings method for configuring VideoCodec settings.
Remove video codec settings from CodecParams (and rename to ProcessParams).

Removes intermediate step of configuring video settings via CodecParams.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2956243002
Cr-Commit-Position: refs/heads/master@{#18830}
2017-06-29 12:13:27 +00:00
asapersson
1d29c86cbf Make VideoProcessor::Init void (always returning true).
BUG=none

Review-Url: https://codereview.webrtc.org/2946263002
Cr-Commit-Position: refs/heads/master@{#18711}
2017-06-22 09:18:50 +00:00
philipel
83c97da593 Only append SPS/PPS to bitstream if supplied out of band.
BUG=chromium:721597

Review-Url: https://codereview.webrtc.org/2945853002
Cr-Commit-Position: refs/heads/master@{#18701}
2017-06-21 14:22:40 +00:00
ilnik
04f4d126f8 Implement timing frames.
Timing information is gathered in EncodedImage,
starting at encoders. Then it's sent using RTP header extension. In the
end, it's gathered at the GenericDecoder. Actual reporting and tests
will be in the next CLs.

BUG=webrtc:7594

Review-Url: https://codereview.webrtc.org/2911193002
Cr-Commit-Position: refs/heads/master@{#18659}
2017-06-19 14:18:55 +00:00
Magnus Jedvert
72dbe2a211 Revert "Revert "Update video_coding/codecs to new VideoFrameBuffer interface""
This reverts commit 88f94fa36aa61f7904d30251205c544ada2c4301.

Chromium code has been updated.

Original change's description:
> Revert "Update video_coding/codecs to new VideoFrameBuffer interface"
> 
> This reverts commit 20ebf4ede803cd4f628ef9378700f60b72f2eab0.
> 
> Reason for revert:
> 
> Suspect of breaking FYI bots.
> See https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win7%20Tester/builds/9036 and others.
> 
> Sample logs:
> Backtrace:
> [5024:1036:0607/173649.857:FATAL:webrtc_video_frame_adapter.cc(98)] Check failed: false. 
> Backtrace:
> 	base::debug::StackTrace::StackTrace [0x02D04A37+55]
> 	base::debug::StackTrace::StackTrace [0x02CCBB8A+10]
> 	content::WebRtcVideoFrameAdapter::NativeToI420Buffer [0x0508AD71+305]
> 	webrtc::VideoFrameBuffer::ToI420 [0x0230BF67+39]
> 	webrtc::H264EncoderImpl::Encode [0x057E8D0B+267]
> 	webrtc::VCMGenericEncoder::Encode [0x057E0E34+333]
> 	webrtc::vcm::VideoSender::AddVideoFrame [0x057DED9B+796]
> 	webrtc::ViEEncoder::EncodeVideoFrame [0x057C00F6+884]
> 	webrtc::ViEEncoder::EncodeTask::Run [0x057C12D7+215]
> 	rtc::TaskQueue::PostTask [0x03EE5CFB+194]
> 	base::internal::Invoker<base::internal::BindState<enum extensions::`anonymous namespace'::VerificationResult (__cdecl*)(std::unique_ptr<extensions::NetworkingCastPrivateDelegate::Credentials,std::default_delete<extensions::NetworkingCastPrivateDelegate::C [0x02DDCAA5+31]
> 	base::internal::Invoker<base::internal::BindState<enum extensions::`anonymous namespace'::VerificationResult (__cdecl*)(std::unique_ptr<extensions::NetworkingCastPrivateDelegate::Credentials,std::default_delete<extensions::NetworkingCastPrivateDelegate::C [0x02DDEE86+22]
> 	base::debug::TaskAnnotator::RunTask [0x02D08289+409]
> 	base::MessageLoop::RunTask [0x02C8CEC1+1233]
> 	base::MessageLoop::DoWork [0x02C8C1AD+765]
> 	base::MessagePumpDefault::Run [0x02D0A20B+219]
> 	base::MessageLoop::Run [0x02C8C9DB+107]
> 	base::RunLoop::Run [0x02C89583+147]
> 	base::Thread::Run [0x02CBEFCD+173]
> 	base::Thread::ThreadMain [0x02CBFADE+622]
> 	base::PlatformThread::Sleep [0x02C9E1A2+290]
> 	BaseThreadInitThunk [0x75C3338A+18]
> 	RtlInitializeExceptionChain [0x773A9902+99]
> 	RtlInitializeExceptionChain [0x773A98D5+54]
> 
> Original change's description:
> > Update video_coding/codecs to new VideoFrameBuffer interface
> > 
> > This is a follow-up cleanup for CL
> > https://codereview.webrtc.org/2847383002/.
> > 
> > Bug: webrtc:7632
> > Change-Id: I47861d779968f2fee94db9c017102a8e87e67fb7
> > Reviewed-on: https://chromium-review.googlesource.com/524163
> > Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> > Reviewed-by: Niels Moller <nisse@webrtc.org>
> > Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#18477}
> 
> TBR=magjed@webrtc.org,nisse@webrtc.org,brandtr@webrtc.org
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:7632
> 
> Change-Id: I3b73fc7d16ff19ceba196e964dcb36a36510912c
> Reviewed-on: https://chromium-review.googlesource.com/527793
> Reviewed-by: Guido Urdaneta <guidou@chromium.org>
> Commit-Queue: Guido Urdaneta <guidou@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#18489}

TBR=tterriberry@mozilla.com,mflodman@webrtc.org,magjed@webrtc.org,stefan@webrtc.org,guidou@chromium.org,nisse@webrtc.org,brandtr@webrtc.org,webrtc-reviews@webrtc.org
# Not skipping CQ checks because original CL landed > 1 day ago.
No-Presubmit: true
Bug: webrtc:7632

Change-Id: I0962a704e8a9939d4364ce9069c863c9951654c9
Reviewed-on: https://chromium-review.googlesource.com/530684
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18527}
2017-06-10 20:12:17 +00:00
asapersson
15dcb38e5f Make error resilience configurable through VideoCodecVP9 resilience setting (removes hard coded value in vp9_impl.cc).
Make resilience configurable in video processor integration tests.

BUG=webrtc:6783

Review-Url: https://codereview.webrtc.org/2919803002
Cr-Commit-Position: refs/heads/master@{#18493}
2017-06-08 09:55:08 +00:00
Guido Urdaneta
88f94fa36a Revert "Update video_coding/codecs to new VideoFrameBuffer interface"
This reverts commit 20ebf4ede803cd4f628ef9378700f60b72f2eab0.

Reason for revert:

Suspect of breaking FYI bots.
See https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win7%20Tester/builds/9036 and others.

Sample logs:
Backtrace:
[5024:1036:0607/173649.857:FATAL:webrtc_video_frame_adapter.cc(98)] Check failed: false. 
Backtrace:
	base::debug::StackTrace::StackTrace [0x02D04A37+55]
	base::debug::StackTrace::StackTrace [0x02CCBB8A+10]
	content::WebRtcVideoFrameAdapter::NativeToI420Buffer [0x0508AD71+305]
	webrtc::VideoFrameBuffer::ToI420 [0x0230BF67+39]
	webrtc::H264EncoderImpl::Encode [0x057E8D0B+267]
	webrtc::VCMGenericEncoder::Encode [0x057E0E34+333]
	webrtc::vcm::VideoSender::AddVideoFrame [0x057DED9B+796]
	webrtc::ViEEncoder::EncodeVideoFrame [0x057C00F6+884]
	webrtc::ViEEncoder::EncodeTask::Run [0x057C12D7+215]
	rtc::TaskQueue::PostTask [0x03EE5CFB+194]
	base::internal::Invoker<base::internal::BindState<enum extensions::`anonymous namespace'::VerificationResult (__cdecl*)(std::unique_ptr<extensions::NetworkingCastPrivateDelegate::Credentials,std::default_delete<extensions::NetworkingCastPrivateDelegate::C [0x02DDCAA5+31]
	base::internal::Invoker<base::internal::BindState<enum extensions::`anonymous namespace'::VerificationResult (__cdecl*)(std::unique_ptr<extensions::NetworkingCastPrivateDelegate::Credentials,std::default_delete<extensions::NetworkingCastPrivateDelegate::C [0x02DDEE86+22]
	base::debug::TaskAnnotator::RunTask [0x02D08289+409]
	base::MessageLoop::RunTask [0x02C8CEC1+1233]
	base::MessageLoop::DoWork [0x02C8C1AD+765]
	base::MessagePumpDefault::Run [0x02D0A20B+219]
	base::MessageLoop::Run [0x02C8C9DB+107]
	base::RunLoop::Run [0x02C89583+147]
	base::Thread::Run [0x02CBEFCD+173]
	base::Thread::ThreadMain [0x02CBFADE+622]
	base::PlatformThread::Sleep [0x02C9E1A2+290]
	BaseThreadInitThunk [0x75C3338A+18]
	RtlInitializeExceptionChain [0x773A9902+99]
	RtlInitializeExceptionChain [0x773A98D5+54]

Original change's description:
> Update video_coding/codecs to new VideoFrameBuffer interface
> 
> This is a follow-up cleanup for CL
> https://codereview.webrtc.org/2847383002/.
> 
> Bug: webrtc:7632
> Change-Id: I47861d779968f2fee94db9c017102a8e87e67fb7
> Reviewed-on: https://chromium-review.googlesource.com/524163
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#18477}

TBR=magjed@webrtc.org,nisse@webrtc.org,brandtr@webrtc.org
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:7632

Change-Id: I3b73fc7d16ff19ceba196e964dcb36a36510912c
Reviewed-on: https://chromium-review.googlesource.com/527793
Reviewed-by: Guido Urdaneta <guidou@chromium.org>
Commit-Queue: Guido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#18489}
2017-06-08 08:33:52 +00:00
Magnus Jedvert
20ebf4ede8 Update video_coding/codecs to new VideoFrameBuffer interface
This is a follow-up cleanup for CL
https://codereview.webrtc.org/2847383002/.

Bug: webrtc:7632
Change-Id: I47861d779968f2fee94db9c017102a8e87e67fb7
Reviewed-on: https://chromium-review.googlesource.com/524163
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18477}
2017-06-07 15:58:13 +00:00
jianj
6bf57e3467 vp9: Enable vp9 denoiser by default in standalone webrtc.
BUG=None

Review-Url: https://codereview.webrtc.org/2789283002
Cr-Commit-Position: refs/heads/master@{#18450}
2017-06-05 20:43:49 +00:00
asapersson
68b91d766f Small updates to test::Stats.
BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2916883002
Cr-Commit-Position: refs/heads/master@{#18439}
2017-06-05 06:43:41 +00:00
magjed
3f075498a3 Update I420Buffer to new VideoFrameBuffer interface
This is a follow-up cleanup for CL https://codereview.webrtc.org/2847383002/.

BUG=webrtc:7632
TBR=stefan

Review-Url: https://codereview.webrtc.org/2906053002
Cr-Commit-Position: refs/heads/master@{#18388}
2017-06-01 17:02:26 +00:00
jianj
b5f5bdba77 Add unit tests for qp parser.
Add test for vp8/vp9 qp parser in both videoprocessor_integrationtest.
Check the qp from parser equal to that from the encoder
on every frame in every test.

Add test for vp8/vp9 qp parser in vp8/vp9_impl_test.
Check the qp parser on a single key frame.

BUG=None

Review-Url: https://codereview.webrtc.org/2903163002
Cr-Commit-Position: refs/heads/master@{#18334}
2017-05-30 17:57:25 +00:00
sprang
6c4bbfa06f Update max TL0 frame interval for screensharing.
The previous limit leaved no margin for RTT.

BUG=webrtc:4172

Review-Url: https://codereview.webrtc.org/2911243002
Cr-Commit-Position: refs/heads/master@{#18333}
2017-05-30 17:08:23 +00:00
kthelgason
2f08879fb1 Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2911053002/ )
Reason for revert:
Take three of relanding this after all internal issues have been resolved.

Original issue's description:
> Revert of Split iOS sdk in to separate targets (patchset #3 id:320001 of https://codereview.webrtc.org/2893843003/ )
>
> Reason for revert:
> Breaks downstream project.
>
> Original issue's description:
> > Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2893593002/ )
> >
> > Reason for revert:
> > Take two of fixing downstream issues?
> >
> > Original issue's description:
> > > Revert of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2890733003/ )
> > >
> > > Reason for revert:
> > > Still problems with downstream projects
> > >
> > > Original issue's description:
> > > > Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2890513002/ )
> > > >
> > > > Reason for revert:
> > > > Fixing downstream breakages
> > > >
> > > > Original issue's description:
> > > > > Revert of Split iOS sdk in to separate targets (patchset #13 id:280001 of https://codereview.webrtc.org/2862543002/ )
> > > > >
> > > > > Reason for revert:
> > > > > Breaking downstream projects.
> > > > >
> > > > > Original issue's description:
> > > > > > Split iOS sdk in to separate targets
> > > > > >
> > > > > > This CL splits the iOS sdk into separate static libraries for video,
> > > > > > audio, ui, common, and peerconnection-related code. This will in the
> > > > > > future make it easier to compile WebRTC without unneeded components.
> > > > > >
> > > > > > BUG=webrtc:4867
> > > > > >
> > > > > > Review-Url: https://codereview.webrtc.org/2862543002
> > > > > > Cr-Commit-Position: refs/heads/master@{#18166}
> > > > > > Committed: 52c83fe710
> > > > >
> > > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,kthelgason@webrtc.org
> > > > > # Skipping CQ checks because original CL landed less than 1 days ago.
> > > > > NOPRESUBMIT=true
> > > > > NOTREECHECKS=true
> > > > > NOTRY=true
> > > > > BUG=webrtc:4867
> > > > >
> > > > > Review-Url: https://codereview.webrtc.org/2890513002
> > > > > Cr-Commit-Position: refs/heads/master@{#18170}
> > > > > Committed: 9756238084
> > > >
> > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org
> > > > # Skipping CQ checks because original CL landed less than 1 days ago.
> > > > NOPRESUBMIT=true
> > > > NOTREECHECKS=true
> > > > NOTRY=true
> > > > BUG=webrtc:4867
> > > >
> > > > Review-Url: https://codereview.webrtc.org/2890733003
> > > > Cr-Commit-Position: refs/heads/master@{#18174}
> > > > Committed: d51e042492
> > >
> > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org
> > > # Skipping CQ checks because original CL landed less than 1 days ago.
> > > NOPRESUBMIT=true
> > > NOTREECHECKS=true
> > > NOTRY=true
> > > BUG=webrtc:4867
> > >
> > > Review-Url: https://codereview.webrtc.org/2893593002
> > > Cr-Commit-Position: refs/heads/master@{#18182}
> > > Committed: 37144b214e
> >
> > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=webrtc:4867
> >
> > Review-Url: https://codereview.webrtc.org/2893843003
> > Cr-Commit-Position: refs/heads/master@{#18303}
> > Committed: 580c3522d2
>
> TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org,kthelgason@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:4867
>
> Review-Url: https://codereview.webrtc.org/2911053002
> Cr-Commit-Position: refs/heads/master@{#18309}
> Committed: af5c05540c

TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org,mbonadei@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4867

Review-Url: https://codereview.webrtc.org/2913753003
Cr-Commit-Position: refs/heads/master@{#18319}
2017-05-30 08:48:47 +00:00
mbonadei
af5c05540c Revert of Split iOS sdk in to separate targets (patchset #3 id:320001 of https://codereview.webrtc.org/2893843003/ )
Reason for revert:
Breaks downstream project.

Original issue's description:
> Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2893593002/ )
>
> Reason for revert:
> Take two of fixing downstream issues?
>
> Original issue's description:
> > Revert of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2890733003/ )
> >
> > Reason for revert:
> > Still problems with downstream projects
> >
> > Original issue's description:
> > > Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2890513002/ )
> > >
> > > Reason for revert:
> > > Fixing downstream breakages
> > >
> > > Original issue's description:
> > > > Revert of Split iOS sdk in to separate targets (patchset #13 id:280001 of https://codereview.webrtc.org/2862543002/ )
> > > >
> > > > Reason for revert:
> > > > Breaking downstream projects.
> > > >
> > > > Original issue's description:
> > > > > Split iOS sdk in to separate targets
> > > > >
> > > > > This CL splits the iOS sdk into separate static libraries for video,
> > > > > audio, ui, common, and peerconnection-related code. This will in the
> > > > > future make it easier to compile WebRTC without unneeded components.
> > > > >
> > > > > BUG=webrtc:4867
> > > > >
> > > > > Review-Url: https://codereview.webrtc.org/2862543002
> > > > > Cr-Commit-Position: refs/heads/master@{#18166}
> > > > > Committed: 52c83fe710
> > > >
> > > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,kthelgason@webrtc.org
> > > > # Skipping CQ checks because original CL landed less than 1 days ago.
> > > > NOPRESUBMIT=true
> > > > NOTREECHECKS=true
> > > > NOTRY=true
> > > > BUG=webrtc:4867
> > > >
> > > > Review-Url: https://codereview.webrtc.org/2890513002
> > > > Cr-Commit-Position: refs/heads/master@{#18170}
> > > > Committed: 9756238084
> > >
> > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org
> > > # Skipping CQ checks because original CL landed less than 1 days ago.
> > > NOPRESUBMIT=true
> > > NOTREECHECKS=true
> > > NOTRY=true
> > > BUG=webrtc:4867
> > >
> > > Review-Url: https://codereview.webrtc.org/2890733003
> > > Cr-Commit-Position: refs/heads/master@{#18174}
> > > Committed: d51e042492
> >
> > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=webrtc:4867
> >
> > Review-Url: https://codereview.webrtc.org/2893593002
> > Cr-Commit-Position: refs/heads/master@{#18182}
> > Committed: 37144b214e
>
> TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:4867
>
> Review-Url: https://codereview.webrtc.org/2893843003
> Cr-Commit-Position: refs/heads/master@{#18303}
> Committed: 580c3522d2

TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org,kthelgason@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4867

Review-Url: https://codereview.webrtc.org/2911053002
Cr-Commit-Position: refs/heads/master@{#18309}
2017-05-29 16:57:37 +00:00
kthelgason
580c3522d2 Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2893593002/ )
Reason for revert:
Take two of fixing downstream issues?

Original issue's description:
> Revert of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2890733003/ )
>
> Reason for revert:
> Still problems with downstream projects
>
> Original issue's description:
> > Reland of Split iOS sdk in to separate targets (patchset #1 id:1 of https://codereview.webrtc.org/2890513002/ )
> >
> > Reason for revert:
> > Fixing downstream breakages
> >
> > Original issue's description:
> > > Revert of Split iOS sdk in to separate targets (patchset #13 id:280001 of https://codereview.webrtc.org/2862543002/ )
> > >
> > > Reason for revert:
> > > Breaking downstream projects.
> > >
> > > Original issue's description:
> > > > Split iOS sdk in to separate targets
> > > >
> > > > This CL splits the iOS sdk into separate static libraries for video,
> > > > audio, ui, common, and peerconnection-related code. This will in the
> > > > future make it easier to compile WebRTC without unneeded components.
> > > >
> > > > BUG=webrtc:4867
> > > >
> > > > Review-Url: https://codereview.webrtc.org/2862543002
> > > > Cr-Commit-Position: refs/heads/master@{#18166}
> > > > Committed: 52c83fe710
> > >
> > > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,kthelgason@webrtc.org
> > > # Skipping CQ checks because original CL landed less than 1 days ago.
> > > NOPRESUBMIT=true
> > > NOTREECHECKS=true
> > > NOTRY=true
> > > BUG=webrtc:4867
> > >
> > > Review-Url: https://codereview.webrtc.org/2890513002
> > > Cr-Commit-Position: refs/heads/master@{#18170}
> > > Committed: 9756238084
> >
> > TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=webrtc:4867
> >
> > Review-Url: https://codereview.webrtc.org/2890733003
> > Cr-Commit-Position: refs/heads/master@{#18174}
> > Committed: d51e042492
>
> TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:4867
>
> Review-Url: https://codereview.webrtc.org/2893593002
> Cr-Commit-Position: refs/heads/master@{#18182}
> Committed: 37144b214e

TBR=magjed@webrtc.org,denicija@webrtc.org,tkchin@webrtc.org,henrika@webrtc.org,charujain@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:4867

Review-Url: https://codereview.webrtc.org/2893843003
Cr-Commit-Position: refs/heads/master@{#18303}
2017-05-29 12:46:00 +00:00
sprang
916170ae46 Don't boost QP after drop unless there is sufficient bandwidth
If a frame is dropped and re-encoded because it exceeded the target
bitrate by a large factor, the next frame will be encoded at max qp
(worst quality) in order to get a frame through in a timely manner. The
next frame after this will still have lower quality since the rate
controller essentially gets reset. In order to mitigate that we boost
the qp for that next frame, which brings the stream back to a good
quality quicker.

However, if the network conditions are _really_ bad, this boosted qp
may be too large, causing the frame again to be dropped an re-encoded.

This CL set's a minimum bitrate available in order to enabling the
boosting in the first place.
It also adjusts a timeout (max time between frames in TL0), since a
too small value and very difficult frames in conjunction with the
mentioned bad network could actually cause bad network over-utilization
in turn leading to packet loss and bad follow-on effects to that.

There was also some slop in the rate keeping for the two layers.
This has been tightened up and affected test cases have been fixed.

BUG=webrtc:7694

Review-Url: https://codereview.webrtc.org/2897983002
Cr-Commit-Position: refs/heads/master@{#18236}
2017-05-23 14:47:55 +00:00
brandtr
5e171752a2 Reland of use allocated encoders in SimulcastEncoderAdapter. (patchset #1 id:1 of https://codereview.webrtc.org/2893003002/ )
Reason for reland:
Chrome encoder implementation fixed.

Original issue's description:
> Revert of Reuse allocated encoders in SimulcastEncoderAdapter. (patchset #15 id:320001 of https://codereview.webrtc.org/2830793005/ )
>
> Reason for revert:
> Breaks Chrome tests.
>
> Original issue's description:
> > Reuse allocated encoders in SimulcastEncoderAdapter.
> >
> > Prior to this change, the SimulcastEncoderAdapter would destroy and create
> > encoders whenever it is being reinitialized. After this change, the
> > SimulcastEncoderAdapter will cache the already allocated encoders, and reuse
> > them after reinitialization.
> >
> > This change will help in reducing the number of PictureID "jumps" that have
> > been seen around encoder reinitialization.
> >
> > TESTED=AppRTCMobile, Chrome desktop, and internal app, with forced encoder reinits every 30 frames and https://codereview.webrtc.org/2833493003/ applied.
> > BUG=webrtc:7475
> >
> > Review-Url: https://codereview.webrtc.org/2830793005
> > Cr-Commit-Position: refs/heads/master@{#18215}
> > Committed: 0b8bfb9d98
>
> TBR=stefan@webrtc.org,noahric@chromium.org,glaznev@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:7475
>
> Review-Url: https://codereview.webrtc.org/2893003002
> Cr-Commit-Position: refs/heads/master@{#18216}
> Committed: 56e119e2e8

TBR=stefan@webrtc.org,noahric@chromium.org,glaznev@webrtc.org,sprang@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7475

Review-Url: https://codereview.webrtc.org/2901493002
Cr-Commit-Position: refs/heads/master@{#18228}
2017-05-23 10:32:16 +00:00