dec5ebf106
Move sent key frame stats to send_statistics_proxy class.
...
BUG=
Review URL: https://codereview.webrtc.org/1374673003
Cr-Commit-Position: refs/heads/master@{#10166}
2015-10-05 09:36:20 +00:00
4765070b8d
Rename I420VideoFrame to VideoFrame.
...
This is a mechanical change since it affects so many
files.
I420VideoFrame -> VideoFrame
and reformatted.
Rationale: in the next CL I420VideoFrame will
get an indication of Pixel Format (I420 for
starters) and of storage type: usually
UNOWNED, could be SHMEM, and in the near
future will be possibly TEXTURE. See
https://codereview.chromium.org/1154153003
for the change that happened in Cr.
BUG=4730, chromium:440843
R=jiayl@webrtc.org , niklas.enbom@webrtc.org , pthatcher@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/52629004
Cr-Commit-Position: refs/heads/master@{#9339}
2015-05-30 00:21:56 +00:00
ca667dbfdd
Remove VCM debug recordings.
...
BUG=1695
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/46299004
Cr-Commit-Position: refs/heads/master@{#9233}
2015-05-20 11:47:26 +00:00
5464a6e548
Remove VideoCodingModule::InitializeReceiver.
...
This code is no longer used to reset, so we can just initialize the
object in the constructor.
BUG=4391
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/43249004
Cr-Commit-Position: refs/heads/master@{#9044}
2015-04-21 14:35:34 +00:00
9dbbcfbcb5
Remove VideoCodingModule::InitializeSender.
...
This code is no longer used to reset, so we can just initialize the
object in the constructor.
BUG=4391
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/51619005
Cr-Commit-Position: refs/heads/master@{#9043}
2015-04-21 13:54:56 +00:00
fcf54bdabb
Reland "Avoid critsect for protection- and qm setting callbacks in
...
VideoSender."
The original Cl is uploaded as patch set 1, the fix in ps#2 and I'll rebase in ps#3.
BUG=4534
R=pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/46769004
Cr-Commit-Position: refs/heads/master@{#9000}
2015-04-14 19:28:03 +00:00
9bfe3daf73
Cleanup: Remove i420_video_frame.h header.
...
It is just a pass through to webrtc/video_frame.h. Updated the callers
to include webrtc/video_frame.h instead and removed i420_video_frame.h.
This should fix pbos' TODO in i420_video_frame.h.
Tested on Linux with the following command lines:
$ rm -rf out/
$ ./webrtc/build/gyp_webrtc
$ ninja -C out/Debug
BUG=None
TEST=see above
R=magjed@webrtc.org , pbos@webrtc.org , tommi@webrtc.org
TBR=tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/46819004
Patch from Thiago Farina <tfarina@chromium.org >.
Cr-Commit-Position: refs/heads/master@{#8973}
2015-04-10 10:52:15 +00:00
0828a0c094
Revert "Avoid critsect for protection- and qm setting callbacks in VideoSender."
...
This reverts commit 903c0f2e7649a2b98659286dc228447facd49bb7,
aka #8899 .
TBR=pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/46759004
Cr-Commit-Position: refs/heads/master@{#8901}
2015-03-31 13:29:31 +00:00
903c0f2e76
Avoid critsect for protection- and qm setting callbacks in VideoSender.
...
This CL avoids changing the mentioned callbacks during a call, to avoid
a potential deadlock when acquiring _sendCritSect and calling
_mediaOpt.SetTargetRates.
Moving the critsect revealed a race for the FEC parameters in RtpVideoSender, so the CL grew a bit to avoid this. I also cleaned up some code here at the same time, but tried to keep it at a minimum since this CL had already increased a lot in size.
BUG=769
R=pbos@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/42939004
Cr-Commit-Position: refs/heads/master@{#8899}
2015-03-31 13:07:26 +00:00
cade82c56f
Refactor MediaOptimization protection methods.
...
Makes MediaOptimization::EnableProtectionMethod significantly less
confusing. Also removing some dead methods in VideoSender.
BUG=
R=mflodman@webrtc.org
TBR=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/42339004
Cr-Commit-Position: refs/heads/master@{#8693}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8693 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-12 10:39:43 +00:00
891d48393e
Wire up target_media_bitrate in VideoSendStream.
...
Also wires up target_enc_bitrate in WebRtcVideoEngine2.
BUG=1667,1788
R=mflodman@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/42479004
Cr-Commit-Position: refs/heads/master@{#8515}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8515 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-26 13:16:17 +00:00
d324546ced
Misc. cleanup split out of https://webrtc-codereview.appspot.com/37699004/ :
...
* Move constants into the files/functions that use them
* Declare variables in the narrowest scope possible
* Use correct (expected, actual) order for gtest macros
* Remove unused functions
* Untabify
* 80-column limit
* Avoid C-style casts
* Prefer true typed constants to "enum hack" constants
* Print size_t using the right format macro
* Shorten and simplify code
* Other random cleanup bits and style fixes
BUG=none
TEST=none
R=henrik.lundin@webrtc.org , tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/36179004
Cr-Commit-Position: refs/heads/master@{#8467}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8467 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-23 21:29:45 +00:00
e07710cc91
Make SendCodec() lock-free.
...
Fetching the current codec for sake of gathering stats, is frequently blocked since it's done by acquiring the same lock as is held while encoding frames. This can mean tens of milliseconds.
To improve this, I'm taking advantage of the fact that the codec information is set on the same thread as is used to query the information. This means that locking isn't needed for querying this information. I'm adding checks to make sure debug builds will crash if this isn't followed.
An alternative to this approach could be to add one more lock that is specifically used for the codec information variable. This would also decouple querying codec information from the encoder itself, but still requires a lock.
This patch depends on making ThreadChecker part of rtc_base_approved:
https://webrtc-codereview.appspot.com/40539004/
BUG=2822
R=mflodman@webrtc.org , pthatcher@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/37779004
Cr-Commit-Position: refs/heads/master@{#8435}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8435 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-19 17:43:45 +00:00
4dd40d6b88
Signal threads for faster receiver destruction.
...
Unblocks pending threads (render thread + decoder thread) when
destroying renderers and shutting down decoders.
Speeds up SetLocalDescription significantly (10x or so) under
WebRtcVideoEngine2 but also shutdown times in ~ViEChannel and
~ViEReceiver in general.
BUG=1788
R=mflodman@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/41959004
Cr-Commit-Position: refs/heads/master@{#8387}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8387 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-17 13:23:27 +00:00
16825b1a82
Use int64_t more consistently for times, in particular for RTT values.
...
Existing code was inconsistent about whether to use uint16_t, int, unsigned int,
or uint32_t, and sometimes silently truncated one to another, or truncated
int64_t. Because most core time-handling functions use int64_t, being
consistent about using int64_t unless otherwise necessary minimizes the number
of explicit or implicit casts.
BUG=chromium:81439
TEST=none
R=henrik.lundin@webrtc.org , holmer@google.com , tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/31349004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8045 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-12 21:51:21 +00:00
5570769210
Remove the last getters from VideoReceiveStream stats.
...
R=stefan@webrtc.org
BUG=1667
Review URL: https://webrtc-codereview.appspot.com/32899004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7965 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-19 15:45:03 +00:00
ce4e9a3562
Refactor some receive-side stats.
...
Removes polling of CName as well as receive codec statistics in favor of
internal callbacks keeping a statistics struct up to date.
R=mflodman@webrtc.org , stefan@webrtc.org
BUG=1667
Review URL: https://webrtc-codereview.appspot.com/28259005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7950 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-18 13:50:16 +00:00
4f16c874c6
Simplifying VideoReceiver and JitterBuffer.
...
Removing frame_buffers_ array and dual-receiver mechanism. Also adding
some thread annotations to VCMJitterBuffer.
R=stefan@webrtc.org
BUG=4014
Review URL: https://webrtc-codereview.appspot.com/27239004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7735 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-24 09:06:48 +00:00
4591fbd09f
Use size_t more consistently for packet/payload lengths.
...
See design doc at https://docs.google.com/a/chromium.org/document/d/1I6nmE9D_BmCY-IoV6MDPY2V6WYpEI-dg2apWXTfZyUI/edit?usp=sharing for more information.
This CL was reviewed and approved in pieces in the following CLs:
https://webrtc-codereview.appspot.com/24209004/
https://webrtc-codereview.appspot.com/24229004/
https://webrtc-codereview.appspot.com/24259004/
https://webrtc-codereview.appspot.com/25109004/
https://webrtc-codereview.appspot.com/26099004/
https://webrtc-codereview.appspot.com/27069004/
https://webrtc-codereview.appspot.com/27969004/
https://webrtc-codereview.appspot.com/27989004/
https://webrtc-codereview.appspot.com/29009004/
https://webrtc-codereview.appspot.com/30929004/
https://webrtc-codereview.appspot.com/30939004/
https://webrtc-codereview.appspot.com/31999004/
Committing as TBR to the original reviewers.
BUG=chromium:81439
TEST=none
TBR=pthatcher,henrik.lundin,tina.legrand,stefan,tkchin,glaznev,kjellander,perkj,mflodman,henrika,asapersson,niklas.enbom
Review URL: https://webrtc-codereview.appspot.com/23129004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@7726 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-20 22:28:14 +00:00
a84b0a6dab
Small refactor on ViE to remove redudant conditions and long ifdefs.
...
BUG=3694
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/22069004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6905 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-14 16:46:46 +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
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
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
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
f1e807c0e5
Removing FrameForStorage
...
R=pwestin@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2142004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4688 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-05 22:34:41 +00:00
c4e1ab515b
Added Decoding with errors API to video_coding.h and removed unused DecodeError enum.
...
R=marpan@google.com , mikhal@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1937004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4497 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-06 18:27:41 +00:00
a7e360e89b
Removed lines preventing simultaneous kHardNack and decoding with errors. Also made changes recommended by gcl lint (with the exception of changing non-const references to pointers).
...
Propagated orthogonal API for decoding with errors from VideoCodingModule to VCMJitterBuffer.
Modified VCMJitterBuffer to allow three error modes: kNoErrors, kSelectiveErrors, kWithErrors.
R=marpan@google.com , mikhal@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1846004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4463 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-01 03:15:08 +00:00
d900e8bea8
Proper spacing for end-of-namespace comments.
...
BUG=
R=mflodman@webrtc.org , tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1760006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4293 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-03 15:12:26 +00:00
c3cc375499
Add support for padding in pacer.
...
This improves pacer-based padding by making sure it limits padding according to:
- Never pad more than 800 kbps.
- Padding + media should not go above a given target bitrate.
Also adds appropriate unittests to make sure we reach the given targets.
BUG=1837
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1582005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4168 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-04 09:36:56 +00:00
ef14488d03
Trigger a PLI if the duration of non-decodable frames exceeds a threshold.
...
BUG=1663
R=mikhal@webrtc.org , ronghuawu@chromium.org
Review URL: https://webrtc-codereview.appspot.com/1359004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3975 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-07 19:16:33 +00:00
381da4be9c
VCM: Adding API for the size(duration) of the jitter buffer.
...
Refers to the duration in time of the frames which are ready to be sent to the decoder.
Review URL: https://webrtc-codereview.appspot.com/1319004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3903 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-25 21:45:29 +00:00
7b859cc1e9
Webrtc_Word32 => int32_t in video_coding/main/
...
BUG=
Review URL: https://webrtc-codereview.appspot.com/1279004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3753 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-02 15:54:38 +00:00
abc9d5b6aa
Change VCM interface to take target bitrate in bits per second.
...
This also solves issue 1469.
TESTS=trybots
BUG=1469
Review URL: https://webrtc-codereview.appspot.com/1215004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3681 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-03-18 17:00:51 +00:00
2baf5f5fa0
Refactor webrtc specific Event implementation to an EventFactory.
...
Review URL: https://webrtc-codereview.appspot.com/1187005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3664 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-03-13 08:46:25 +00:00
ef9f76a59d
Adding a receive side API for buffering mode.
...
At the same time, renaming the send side API.
Review URL: https://webrtc-codereview.appspot.com/1104004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3525 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-15 23:22:18 +00:00
becf9c897c
Fix mismatch between different NACK list lengths and packet buffers.
...
This is a second version of http://review.webrtc.org/1065006/ which passes the parameters via methods instead of via constructors.
BUG=1289
Review URL: https://webrtc-codereview.appspot.com/1065007
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3456 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-01 15:09:57 +00:00
a678a3baee
Move video_coding to new Clock interface and remove fake clock implementations from RTP module tests.
...
TEST=video_coding_unittests, video_coding_integrationtests, rtp_rtcp_unittests, trybots
Review URL: https://webrtc-codereview.appspot.com/1044004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3393 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-21 07:42:11 +00:00
9fedff7c17
Switching to I420VideoFrame
...
Review URL: https://webrtc-codereview.appspot.com/922004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2983 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-10-24 18:33:04 +00:00
14b43beb7c
Move src/ -> webrtc/
...
TBR=niklas.enbom@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/915006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@2963 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-10-22 18:19:23 +00:00