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
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
fdcb42dac4
Fix potential crash when depacketizing VP8.
...
Caused by a missing check for H264 when reading the RTPVideoTypeHeader union.
R=asapersson@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/14049004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6825 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-08-05 13:21:18 +00:00
2ec560606b
Add H.264 packetization.
...
This also includes:
- Creating new packetizer and depacketizer interfaces.
- Moved VP8 packetization was H264 packetization and depacketization to these interfaces. This is a work in progress and should be continued to get this 100% generic. This also required changing the return type for RtpFormatVp8::NextPacket(), which now returns bool instead of the index of the first partition.
- Created a Create() factory method for packetizers and depacketizers.
R=niklas.enbom@webrtc.org , pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/21009004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@6804 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-31 14:59:24 +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
3c5a9242fe
Don't force cont' when enabling kWithErrors
...
BUG=
R=pbos@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2047004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4669 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-03 20:45:36 +00:00
2b810bf77b
Removing non decodable count from session info: This value isn't used, and therfore can be removed. This is a step towards the refactor of the session info to use maps.
...
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2143004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4667 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-03 19:09:49 +00:00
f31a47abdc
VCM:Accounting for bounds when inserting packets. We currently receive indicators to the first and last packets of the frame, but not have any sanity to verify that all packets are indeed within the bounds (when available). This cl attempts to fix that,
...
BUG=
R=marpan@google.com
Review URL: https://webrtc-codereview.appspot.com/2077004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4614 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-26 17:10:11 +00:00
dbf6a81cb5
Follow-up changes to kSelectiveErrors
...
Committing cl for agalusza (cl 1992004)
TEST = trybots
R=marpan@google.com
Review URL: https://webrtc-codereview.appspot.com/2085004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4587 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-21 20:40:47 +00:00
822fbd8b68
Update talk to 50918584.
...
Together with Stefan's http://review.webrtc.org/1960004/ .
R=mallinath@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/2048004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4556 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-15 23:38:54 +00:00
d177c10e2d
Added logic for kSelectiveErrors to VCMJitterBuffer and corresponding unit tests.
...
R=marpan@google.com , mikhal@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1943004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4503 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-08 01:12:33 +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
d818dcb939
Sets up framework for decoding with errors: collects frame sizes (in number of packets) in JB and passes this information to VCMSessionInfo with rtt_ms as FrameData.
...
R=marpan@google.com , mikhal@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1841004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4424 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-29 21:48:11 +00:00
aa4d96a134
Revert r4301
...
R=mikhal@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1809004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4357 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-16 19:25:04 +00:00
a4407329d4
Include files from webrtc/.. paths in video_coding/.
...
BUG=1662
R=tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1783006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4348 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-16 12:32:05 +00:00
66b2e5c05a
Breaking out receive-stats, rtp-payload-registry and rtp-receiver from the
...
rtp_rtcp implementation.
This refactoring significantly reduces the receive-side RTP parser and receiver
complexity, and makes it possible to implement RTX correctly by having two
instances of receive-statistics.
With this change the dead-or-alive and packet timeout APIs are removed.
TEST=trybots, vie_auto_test, voe_auto_test
BUG=1811
R=mflodman@webrtc.org , pbos@webrtc.org , xians@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1745004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4301 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-05 14:30:48 +00:00
4cf1a8af69
Removes kStateFree and kStateDecoding, added a free_frames_ list which simplifies finding a free frame.
...
The idea is to have all frames not in use be stored in free_frames_, and whenever a packet from a new frame arrives we can just pop a frame from free_frames_. When a frame is grabbed for decoding it will be removed from all lists, and will be added to free_frames_ when it's returned to the jitter buffer.
We should be able to remove the state enum completely later, as their state is defined by the list they are in. But I'll keep it around for now to simplify the cl.
TEST=try bots and vie_auto_test --automated
R=mikhal@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1721004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4273 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-27 15:20:14 +00:00
885cd13356
Start NACKing as soon as we have the first packet of a key frame.
...
BUG=1605
Review URL: https://webrtc-codereview.appspot.com/1307007
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3855 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-16 09:38:26 +00:00
7bc465bd21
Fix issues with incorrect wrap checks when having big buffers and high bitrate.
...
Introduces shared functions for timestamp and sequence number wrap checks.
BUG=1607
TESTS=trybots
Review URL: https://webrtc-codereview.appspot.com/1291005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3833 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-11 17:48:02 +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
a64300af50
Refactor NACK list creation to build the NACK list as packets arrive.
...
Also fixes a timer bug related to NACKing in the RTP module which could cause packets to only be NACKed twice if there's frequent packet losses.
Note that I decided to remove any selective NACKing for now as I don't think the gain of doing it is big enough compared to the added complexity. The same reasoning for empty packets. None of them will be retransmitted by a smart sender since the sender would know that they aren't needed.
BUG=1420
TEST=video_coding_unittests, vie_auto_test, video_coding_integrationtests, trybots
Review URL: https://webrtc-codereview.appspot.com/1115006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3599 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-03-04 15:24:40 +00:00
bf535b9b6b
Optimize NACK list creation.
...
- No longer looping through all frame buffers.
- Keeping track of the current nack list index when building the list.
- Don't look for changes in the NACK list if the size has increased.
Review URL: https://webrtc-codereview.appspot.com/1076005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3420 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-28 08:48:13 +00:00
bd941d3f4c
Fixes two bugs related to padding in the jitter buffer.
...
- Pad packets (empty) were often NACKed even though they were received.
- Padding only frames (empty) were didn't properly update the decoding state,
and would therefore be NACKed even though they were received.
This is a recommit of r3183. Extensive testing suggest that this may have been caused by virtual machine flakiness.
TBR=mflodman@webrtc.org
BUG=1150
Review URL: https://webrtc-codereview.appspot.com/971011
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3200 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-29 14:37:18 +00:00
7d5dacc985
Revert 3183 - Fixes two bugs related to padding in the jitter buffer.
...
- Pad packets (empty) were often NACKed even though they were received.
- Padding only frames (empty) were didn't properly update the decoding state,
and would therefore be NACKed even though they were received.
http://webrtc-cb-linux-master.cbf.corp.google.com:8010/builders/Win32Release/builds/1704/steps/video_coding_unittests/logs/stdio
TEST=trybots
BUG=1150
Review URL: https://webrtc-codereview.appspot.com/929031
TBR=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/971010
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3187 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-28 22:04:45 +00:00
e4fb44c29d
Fixes two bugs related to padding in the jitter buffer.
...
- Pad packets (empty) were often NACKed even though they were received.
- Padding only frames (empty) were didn't properly update the decoding state,
and would therefore be NACKed even though they were received.
TEST=trybots
BUG=1150
Review URL: https://webrtc-codereview.appspot.com/929031
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3183 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-28 19:36:20 +00:00
891d55eb35
Revert 3181 - Fixes two bugs related to padding in the jitter buffer.
...
- Pad packets (empty) were often NACKed even though they were received.
- Padding only frames (empty) didn't properly update the decoding state,
and would therefore be NACKed even though they were received.
Broke [Builder Win32Debug] (http://webrtc-cb-linux-master.cbf.corp.google.com:8010/builders/Win32Debug/builds/1728 )
TEST=trybots
BUG=1150
Review URL: https://webrtc-codereview.appspot.com/966026
TBR=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/939031
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3182 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-28 17:45:01 +00:00
d42e51ce7c
Fixes two bugs related to padding in the jitter buffer.
...
- Pad packets (empty) were often NACKed even though they were received.
- Padding only frames (empty) didn't properly update the decoding state,
and would therefore be NACKed even though they were received.
TEST=trybots
BUG=1150
Review URL: https://webrtc-codereview.appspot.com/966026
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3181 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-28 16:40:28 +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