b9f5453e29
Add boilerplate code for H.264.
...
R=mflodman@webrtc.org , niklas.enbom@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/17849005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6603 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-04 12:42:07 +00:00
20c1f56992
Configure RTX send status on new modules.
...
Fixes bug where newly-allocated modules wouldn't send payload-based
padding (or probably not send over RTX at all).
As the newly-added test exposed lock-inversions shown on tsan in
VideoReceiver, VideoReceiver was thread-annotated and locks taken less.
BUG=chromium:391085
R=mflodman@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/21819004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6601 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-04 10:58:12 +00:00
ae7cfd7bc8
Make MediaOptimization thread-safe.
...
HW encoder posts the encode callback to libjingle worker
thread. It accesses MediaOptimization and is not protected
by the critial section of VideoSender. Make MediaOptimization
thread-safe to fix it.
BUG=chromium:367691
TEST=Run apprtc loopback with SW or HW encoders.
Run module_unittests.
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/12849004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6562 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-30 08:01:47 +00:00
88fbb2d86b
Switch to using base/constructormagic.h and remove system_wrappers/interface/constructor_magic.h.
...
Same as https://webrtc-codereview.appspot.com/19519004 . The issue in
http://chromegw.corp.google.com/i/internal.chromium.webrtc.fyi/builders/Linux ...
is solved by this change
http://src.chromium.org/viewvc/chrome/trunk/src/third_party/libjingle/libjing ...
(tested locally).
BUG=3380
R=andrew@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/17619005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6218 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-21 21:18:46 +00:00
2fa7f79094
Revert 6202 "Switch to using base/constructormagic.h and remove ..."
...
> Switch to using base/constructormagic.h and remove system_wrappers/interface/constructor_magic.h.
>
> BUG=N/A
> R=andrew@webrtc.org
>
> Review URL: https://webrtc-codereview.appspot.com/19519004
TBR=henrike@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/14579007
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6210 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-21 11:07:29 +00:00
125ffd709d
Switch to using base/constructormagic.h and remove system_wrappers/interface/constructor_magic.h.
...
BUG=N/A
R=andrew@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/19519004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6202 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-20 15:20:44 +00:00
a36db970bd
Suppress GMOCK printouts from TestVideoSenderWithVp8
...
Adding a missing EXPECT_CALL.
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/20529005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6196 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-20 11:16:10 +00:00
ebb467fdc8
Avoid NACK-list flush error on keyframe packets.
...
Receiver code used to indicate a flush error even if the incoming packet
is a keyframe, forcing a request of a keyframe. Now it takes this
keyframe into account and doesn't error as the stream is decodable from
this point.
BUG=
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/15549005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6188 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-19 15:28:02 +00:00
64339a7069
Don't crash if a frame returned from the decoder is too old.
...
BUG=crbug/371805
R=pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/16559004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6187 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-19 13:31:35 +00:00
a36ad6929d
Add webrtc field trials API.
...
From now on it is expected that code linking system_wrappers.gyp:system_wrappers
provides an implementation for field_trial API or links with the default one in
system_wrappers.gyp:field_trial_default.
Note: Since there is no use of webrtc::field_trial API inside webrtc this CL on
itself does not forces the clients to actually define it. It however lays the
API and updates the gyp rules to link with so that it is ready to use.
Tested: Introduced a use of field trial in system wrappers and make sure all
bots were building successfully.
BUG=crbug/367114
R=tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/14489004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6147 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-14 12:24:04 +00:00
66773a032a
Move timestamp_extrapolator and rtp_to_ntp to system wrapper so that it can be shared by both audio and video engine.
...
BUG=3111
TEST=try bots
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/13459004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6074 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-07 17:09:44 +00:00
ed4cb56575
Remove timestamp_extrapolator's dependency to Clock and vcm defines.
...
TEST=existing tests
BUG=
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/12399004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6058 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-06 04:50:49 +00:00
c0a15b7ddc
Fix crashes due to dangling external decoder pointer.
...
When checking whether we need to release external decoder,
we have to do pointer comparison. We can't rely on payload
types, because payload types can be stale (e.g. before we
decode the first video frame after RegisterReceiveCodec).
This leaves a dangling pointer to external decoder, which
leads to crashes later, after we actually delete the
external decoder object.
This change has been verified in Chromecast code tree.
BUG=chromium:335539
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/12049004
Patch from Sergey Volk <servolk@chromium.org >.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5922 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-17 01:22:48 +00:00
6c75c98964
Propagate capture ntp timestamp from rtp to renderer.
...
Mostly the interface changes, the real implementation of ntp timestamp will come in a follow up cl.
TEST=new tests and try bots
BUG=3111
R=niklas.enbom@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/11469004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5911 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-15 17:46:33 +00:00
2c89b5cb27
Make everyone an OWNER for .gyp/.gypi add/delete purposes, non-talk/ edition.
...
This CL brought to you by:
$ for d in $(for f in $(git ls-files '*gyp' '*gypi'); do dirname $f; done|sort|uniq|grep -v '^\.$'); do echo -e "\n# These are for the common case of adding or renaming files. If you're doing\n# structural changes, please get a review from a reviewer in this file.\nper-file *.gyp=*\nper-file *.gypi=*" >> $d/OWNERS; done
$ for d in $(for f in $(git ls-files '*gyp' '*gypi'); do dirname $f; done|sort|uniq|grep -v '^\.$'); do git add $d/OWNERS; done
(and then removed the talk/ impact)
R=niklas.enbom@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/11969004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5903 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-14 20:08:03 +00:00
34c5da6b5e
Cleaned up logging in video_coding.
...
Converted all calls to WEBRTC_TRACE to LOG(). Also removed a large number of less useful logs.
BUG=3153
R=mflodman@webrtc.org , pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/11169004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5887 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-11 14:08:35 +00:00
0e65fdaa3b
Fix "unreachable code" warnings (MSVC warning 4702) in webrtc.
...
BUG=chromium:346399
TEST=none
R=tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/10139004
Patch from Peter Kasting <pkasting@chromium.org >.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5747 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-21 10:26:42 +00:00
3f655aa5f7
Add #include <cstdlib> for std::abs.
...
IWYU violation. Fixes a breakage in the libc++ build of Chromium.
BUG=
R=earthdok@chromium.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/10109004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5715 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-18 11:10:11 +00:00
b5f3029302
Replace labs with std::abs.
...
Resolves clang 3.5 warnings on OS X for -Wabsolute-value.
BUG=chromium:351479
R=andrew@webrtc.org , thakis@chromium.org
Review URL: https://webrtc-codereview.appspot.com/9869004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5692 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-13 08:53:39 +00:00
a0d11da359
Remove upper check for number of cores in VCM, I didn't find any good reasons for checking this.
...
BUG=2990
TEST=Manually adding a high number without any noticable change.
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/9399004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5645 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-05 15:18:45 +00:00
0117d1c48c
Fix compilation errors under clang 3.5.
...
Enables building tip-of-tree clang which introduces new warnings that
cause compilation errors in our code base (-Werror).
BUG=
R=andrew@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/9319004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5630 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-03 16:47:03 +00:00
f7c6e743b3
Fix deadlock in video_receiver.cc.
...
In webrtc::vcm::VideoReceiver::ResetDecoder(), the lock order is:
1. take _receiveCritSect,
2. take process_crit_sect_
This conflicts with the follow code path:
1. webrtc::vcm::VideoReceiver::Process(), take process_crit_sect_
call -> webrtc::vcm::VideoReceiver::NackList(),
2. with nackStats=kNackKeyFrameRequest, take _receiveCritSect
BUG=2861
TEST=trybots
R=sprang@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/7749004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5456 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-29 10:27:51 +00:00
39fcfd78ae
Remove empty VideoCodecGeneric struct.
...
Struct was added prematurely and triggers a warning with
-Wextern-c-compat in latest clang.
R=henrika@webrtc.org
BUG=
Review URL: https://webrtc-codereview.appspot.com/7119004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5383 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-14 12:55:59 +00:00
c5aeb2aa15
Make code simpler on VCMEncodedCallback.
...
R=marpan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/6689004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5358 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-09 08:04:32 +00:00
1df9dc3957
Isolate register post encode callback in video coding module to simplify code and critical sections.
...
R=marpan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/6659004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5357 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-09 08:01:57 +00:00
b08a12d6e8
Isolate debug recording from video sender into a thread safe small class.
...
R=marpan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/6649004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5353 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-08 12:38:22 +00:00
e682aa5077
Refactoring MediaOptimization so it can easily be turned into a thread-safe class.
...
BUG=2732
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/6149004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5322 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-19 10:59:48 +00:00
724947b8ef
Add SwapFrame() to VideoSendStreamInput.
...
Optionally prevents doing a frame copy when putting frames into a
VideoSendStream. PutFrame() is still there, which copies the frame.
Also removes time_since_capture_ms as a parameter, since
I420VideoFrame::render_time_ms() denotes when the frame was captured.
BUG=2657
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/5119004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5265 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-11 16:26:16 +00:00
71f055fb41
Add send frame rate statistics callback
...
BUG=2235
R=mflodman@webrtc.org , pbos@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4479005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5213 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-04 15:09:27 +00:00
4070935f4f
Implement and test EncodedImageCallback in new ViE API.
...
R=mflodman@webrtc.org , pbos@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/4059004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5179 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-26 11:41:59 +00:00
ce8e0936d9
Rename AutoMute to SuspendBelowMinBitrate
...
Changes all instances throughout the WebRTC stack.
BUG=2436
R=mflodman@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/3919004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5130 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-18 12:18:43 +00:00
0aeb22e32c
Adding tl0idx consideration for continuity
...
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2879004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5046 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-28 22:26:14 +00:00
1a3a6e5340
Removing the threshold from the auto-mute APIs
...
The threshold is now set equal to the minimum bitrate of the
encoder. The test is also changed to have the REMB values
depend on the minimum bitrate from the encoder.
BUG=2436
R=pbos@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2919004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5040 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-28 10:16:14 +00:00
37bb4974e7
Expose VideoCodingModule's decoder stats up the stack from VCMTiming to chrome://webrtc-internals.
...
R=juberti@google.com , mikhal@webrtc.org , stefan@webrtc.org , wu@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2429004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5027 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-23 23:59:45 +00:00
be9c560aab
Revert r4913 that reverts r4911. Original CL description:
...
"Adding temporal layer strategy that keeps base layer framerate at an acceptable value."
R=holmer@google.com , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2351006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4920 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-04 13:11:31 +00:00
44db9d1a57
Revert 4911 "Adding temporal layer strategy that keeps base laye..."
...
> Adding temporal layer strategy that keeps base layer framerate at an acceptable value.
>
> R=stefan@webrtc.org
>
> Review URL: https://webrtc-codereview.appspot.com/2272005
TBR=andresp@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2349004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4913 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-03 17:42:07 +00:00
26f78f7ecb
Adding temporal layer strategy that keeps base layer framerate at an acceptable value.
...
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2272005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4911 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-03 14:06:14 +00:00
572699d3eb
Propagate AutoMuter interface out to VideoCodingModule
...
BUG=2436
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2311004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4878 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-30 12:16:08 +00:00
30377c7f71
Change the parameters of calculating maximum decode time.
...
- Reduce the window size from 20 to 10 seconds. If there is
any spurious high decode time, it will be faster to pass it.
- Ignore more samples at first because HW decoder has higher
initialization latency.
BUG=crbug.com/298176
TEST=Run apprtc loopback on Chromebook Daisy.
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2315005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4874 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-28 06:06:18 +00:00
544b17c6a9
Implemented AutoMuter in MediaOptimization
...
Also added a unittest. This is the first step towards creating an
AutoMuter function in WebRTC.
R=mflodman@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2294005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4857 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-26 12:05:15 +00:00
054ccd2e35
Remove include_dirs from video_coding.
...
BUG=1662
TEST=compile on trybots
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2294007
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4853 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-26 09:22:09 +00:00
641587f938
Disable some VP8 tests on Android.
...
DecodeWithACompleteKeyFrame and FixedTemporalLayersStrategy.
TBR=andresp
BUG=2037
Review URL: https://webrtc-codereview.appspot.com/2283004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4829 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-24 18:43:28 +00:00
b426c469b9
MediaOptimization: Converting a few members to scoped_ptrs
...
For consistency with other parts of the code.
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2275006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4822 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-24 07:41:53 +00:00
bec11ef632
Reformatting media_optimization.cc and .h
...
Ran both tools/refactoring/webrtc_reformat.py and clang-format.
Changing VCMMediaOptimization -> MediaOptimization and
VCMEncodedFrameSample -> EncodedFrameSample.
Aligning the order of methods in .h and .cc files and fixing comments.
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2265007
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4816 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-23 19:54:25 +00:00
98fcd2d4c3
Adding unit tests for default temporal layer strategy.
...
R=mflodman@webrtc.org , stefan@webrtc.org , stefan
Review URL: https://webrtc-codereview.appspot.com/2235005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4810 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-23 11:12:59 +00:00
4f3624d39e
Avoid recursively taking critical section.
...
TEST=trybots
BUG=2261
R=pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2258006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4800 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-20 07:43:17 +00:00
8db81c5112
Fix races in vcm::Process().
...
R=pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2241004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4775 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-18 11:57:34 +00:00
32d640e03d
Fix typo in r4765.
...
Fixes compile error on all platforms.
BUG=
TEST=compile on tryboys
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2231004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4766 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-17 10:36:30 +00:00
da2c4cede0
Fix dangling pointer _encoder in video_sender.cc.
...
When _codecDataBase.SetSendCodec() fails, the encoder may be deleted.
This is however not reflected in _encoder, which then becomes a dangling
pointer to the deleted object.
BUG=2384
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2229004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4765 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-17 09:38:41 +00:00
e401c2e391
Split video coding module unit tests into sender and receiver unit tests.
...
R=mflodman@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2199005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4753 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-16 20:29:13 +00:00