30fb7b83d5
Add a log message to see video delay break down
...
Shows video delay in terms of:
1. Min playout delay
2. Jitter delay
3. Max decode time
4. Render delay
R=mikhal@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1674004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4242 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-18 21:37:09 +00:00
50fb4afade
Revert r4145 "Revert 4127 "Switch frame list implementation to std::map.""
...
TBR=tnakamura@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1678004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4233 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-17 07:33:58 +00:00
c8b29a2feb
Revert r4146 "Revert 4104 "Refactor jitter buffer to use separate lists for de...""
...
TBR=tnakamura@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1677004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4232 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-17 07:13:16 +00:00
63e988856e
Merge more tests into modules_{unit,integration}tests.
...
A new test target named 'modules_integrationtests' is created
and the following test targets were merged into it:
* audio_coding_module_test
* test_fec
* video_coding_integrationtests
* vp8_integrationtests
A couple of other targets were merged into modules_unittests:
* audio_coding_unittests
* audioproc_unittest
* common_unittests
* video_coding_unittests
* video_processing_unittests
* vp8_unittests
I wasn't able to merge audio_decoder_unittests and neteq_unittests due to
conflicts with different defines in these tests.
Some tests that have special requirements aren't merged into
modules_integrationtests yet. I took the opportunity to rename them
since the bot configs will need to be update anyway:
* audio_device_test_api -> audio_device_integrationtests
* video_capture_module_test -> video_capture_integrationtests
* video_render_module_test -> video_render_integrationtests
Exclude files were added for modules_integrationtests to make sure
the memcheck and tsan bots doesn't tests that are too slow
(audio_coding_module_test and vp8_integrationtests were previously
disabled on those bots).
Suppressions for AudioCodingModuleTest needed to be added to get
modules_integrationtests to pass memcheck (even if the test is
excluded from execution).
BUG=1843
TEST=local execution on Linux and trybots (passing except the merged tests of course)
R=andrew@webrtc.org , tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1656004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4228 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-14 20:09:44 +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
e001b57d84
Do not hold a lock when calling VCMReceiveCallback::FrameToRender.
...
DecodedImageCallback is allowed to be called on a thread different from decoding thread. To avoid the deadlock in VCMDecodedFrameCallback::Decoded, VCMDecodedFrameCallback::_critSect should not be held while calling VCMReceiveCallback::FrameToRender.
BUG=1832
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1570004
Patch from Wu-Cheng Li <wuchengli@chromium.org >.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4162 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-04 03:29:37 +00:00
b1bba167f4
Prevent excessive logging in jitter buffer
...
Jitter buffer logs a message when it is going to recycle frames. This adds a
lot of noise even in normal operation. This change make sure only critical
cases are logged.
R=mikhal@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1580007
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4150 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-31 18:52:16 +00:00
694cdc6e84
Revert 4104 "Refactor jitter buffer to use separate lists for de..."
...
Reason - leading suspect of video frame corruption tracked in http://b/9216252
Note that if this turns out to not be the cause, be sure to re-revert both this change and r4145.
> Refactor jitter buffer to use separate lists for decodable and incomplete frames.
>
> This changes the design of the jitter buffer to keeping track of decodable frames from the point when packets are inserted in the buffer, instead of searching for decodable frames when they are needed.
>
> To accomplish this the frame_list_, which previously contained all frames (incomplete or complete, continuous or not), is split into a list of decodable_frames_ (complete, continuous) and a list of incomplete_frames_ (either incomplete or non-continuous). These frame lists are updated every time a packet is inserted.
>
> This is another step in the direction of doing most of the work in the jitter buffer only once, when packets are inserted, instead of doing it every time we look for a frame or try to get a nack list.
>
> BUG=1798
> TEST=vie_auto_test, trybots
> R=mikhal@webrtc.org
>
> Review URL: https://webrtc-codereview.appspot.com/1522005
TBR=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1586007
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4146 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-31 16:09:48 +00:00
4d9c07ad6d
Revert 4127 "Switch frame list implementation to std::map."
...
We want to revert r4104 for b/9216252, but because r4127 was built on top of r4104, we need to revert r4127 first. We'll un/re-revert this if we discover that r4104 is not to blame.
> Switch frame list implementation to std::map.
>
> This reduces the complexity of insert and find (by timestamp) from linear to logarithmic, which has a big impact on large frame lists.
>
> BUG=1726
> TEST=trybots, vie_auto_test --automated
> R=mikhal@webrtc.org
>
> Review URL: https://webrtc-codereview.appspot.com/1561005
TBR=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1590005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4145 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-31 16:06:01 +00:00
adc64a7216
VCM/Timing: Setting clear names to members & methods
...
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1524004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4140 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-30 16:20:18 +00:00
046bc448d5
Fixes the frameRate stats by grouping the frames by timestamp.
...
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1536004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4138 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-29 16:33:46 +00:00
a5cb98cbbd
Breaking out RTP header parsing from the RTP module.
...
This is the first step in order to move bandwidth estimation closer to the network. The goal is to have RTP header parsing and bandwidth estimation before voice and video engine, and have a joint estimate for audio and video.
Moving bandwidth estimation before the RTP module is also required for RTX.
TEST=vie_auto_test, voe_auto_test, trybots.
BUG=1811
R=andresp@webrtc.org , henrika@webrtc.org , mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1545004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4129 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-29 12:12:51 +00:00
ace7ad2302
Switch frame list implementation to std::map.
...
This reduces the complexity of insert and find (by timestamp) from linear to logarithmic, which has a big impact on large frame lists.
BUG=1726
TEST=trybots, vie_auto_test --automated
R=mikhal@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1561005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4127 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-29 07:41:48 +00:00
7f3f8bc5a6
Refactor jitter buffer to use separate lists for decodable and incomplete frames.
...
This changes the design of the jitter buffer to keeping track of decodable frames from the point when packets are inserted in the buffer, instead of searching for decodable frames when they are needed.
To accomplish this the frame_list_, which previously contained all frames (incomplete or complete, continuous or not), is split into a list of decodable_frames_ (complete, continuous) and a list of incomplete_frames_ (either incomplete or non-continuous). These frame lists are updated every time a packet is inserted.
This is another step in the direction of doing most of the work in the jitter buffer only once, when packets are inserted, instead of doing it every time we look for a frame or try to get a nack list.
BUG=1798
TEST=vie_auto_test, trybots
R=mikhal@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1522005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4104 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-27 07:02:45 +00:00
c74c3c2447
Adds integration test for RTX and fixes bugs found.
...
BUG=1811
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1529004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4096 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-23 13:48:22 +00:00
a7dc37d568
Log the type of recycled frames.
...
Also correct the logging of incoming key frame packets.
BUG=1814
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1537004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4090 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-23 07:21:05 +00:00
8c49c1eab3
Log a message when a key frame packet is received
...
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1518004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4089 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-22 21:18:59 +00:00
2eaf98b38b
Refactor VCM/Timing.
...
No changes in functionality.
R=marpan@google.com
Review URL: https://webrtc-codereview.appspot.com/1514004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4081 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-21 17:58:43 +00:00
3417eb49f6
Consolidate GetFrame and InsertPacket and move NACK list processing to after a packet has been successfully inserted.
...
TEST=trybots
BUG=1799
R=mikhal@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1509004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4080 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-21 15:25:53 +00:00
9f557c140e
Improve wraparound handling in the render time extrapolator.
...
This was actually working as intended, but as r3970 changed when render timestamps were extrapolated to when a frame was taken out for decoding, the wraparound could have happened in the Update() step before it had happened in the ExtrapolateLocalTime() step. This causes render timestamps to be generated 13 hours into the future.
TEST=trybots
BUG=1787
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1497004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4055 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-17 12:55:07 +00:00
14d7700d00
Moved command line parsing to internal tools and moved back the mic volume thingie.
...
BUG=
R=henrika@webrtc.org , kjellander@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1491004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4054 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-17 11:52:08 +00:00
fe307e1332
Add one unit test for NACKing a key frame
...
Adding a test case that wasn't covered. This new test is passing.
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1475004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4051 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-16 21:19:59 +00:00
b3e5acfb66
Cleanup traces in WebRTC
...
Remove some unused traces and add a trace counter for encoded video size.
R=holmer@google.com , mflodman@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1476004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4050 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-16 21:13:02 +00:00
b9bb3d1e7d
Avoid resetting encoder on identical settings.
...
BUG=1681
R=holmer@google.com , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1481005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4049 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-16 18:40:48 +00:00
890f6092e6
Bugfix: VCM would report wrong sentBitrate
...
issue: https://code.google.com/p/webrtc/issues/detail?id=1755
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1484004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4048 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-16 15:38:44 +00:00
2038214c77
Log too long non-decodable duration events.
...
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1488004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4043 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-16 11:39:06 +00:00
cb20a5b2d7
VCM/JB: Bug fix in ExtractAndSetDecode
...
BUG=1771
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1466005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4035 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-15 17:10:44 +00:00
1673481ed7
Fixes a bug where the render buffer size (and indirectly the non-continuous duration) was computed incorrectly.
...
BUG=1769
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1473004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4026 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-14 12:00:47 +00:00
7bfb3a3227
Add more tracing for key frames.
...
R=mallinath@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1428004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4015 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-13 22:59:00 +00:00
43bf6ce322
Revert 4008 "Avoid resetting video encoder for similar configs."
...
> Avoid resetting video encoder for similar configs.
>
> BUG=1681
> R=holmer@google.com , mflodman@webrtc.org , stefan@webrtc.org
>
> Review URL: https://webrtc-codereview.appspot.com/1442006
TBR=pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1431005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4010 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-13 15:39:26 +00:00
aa4efd1535
Avoid resetting video encoder for similar configs.
...
BUG=1681
R=holmer@google.com , mflodman@webrtc.org , stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1442006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4008 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-13 11:27:16 +00:00
1e3c794688
Use 2 threads for HD, or 1 for VGA or less.
...
BUG=1739
TEST=try bots
Review URL: https://webrtc-codereview.appspot.com/1438005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3996 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-09 18:43:38 +00:00
d98e784f5f
Fix VCMProcessTimer::TimeUntilProcess() unsigned-integer underflow problem.
...
BUG=1665
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1341004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3979 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-08 06:38:53 +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
8f86cc8712
VCM/Receiver: Return null when can't extract frame.
...
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1435004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3974 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-07 18:05:21 +00:00
474e915272
Relanding 3962: VCM/JB: Porting jitter_buffer_test to gtest
...
TBR=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1434004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3971 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-07 16:55:03 +00:00
759b041019
Relanding r3952: VCM: Updating receiver logic
...
BUG=r1734
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1433004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3970 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-07 16:36:00 +00:00
9c7685f9a6
VCM/JB: Break and skip to key if possible
...
BUG=1734
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1421004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3969 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-07 16:07:52 +00:00
3004c79c6a
Fix clang errors in non-GYP_DEFINES=clang=1 build
...
BUG=1623
R=stefan@webrtc.org , tina.legrand@webrtc.org , tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1368004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3968 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-07 12:36:21 +00:00
d3a1959678
Fix jitter buffer unittest.
...
TBR=mflodman@webrtc.org
BUG=1737
Review URL: https://webrtc-codereview.appspot.com/1430005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3967 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-07 12:35:58 +00:00
a5dee33639
Correctly add packets to nack list when sequence number wraps.
...
BUG=1737
R=mflodman@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1427004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3966 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-07 11:11:17 +00:00
4ce19b1664
Revert r3952 "VCM: Updating receiver logic"
...
TBR=phoglund@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1410005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3963 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-06 13:16:51 +00:00
273759048c
Revert r3956 "VCM/JB: Porting jitter_buffer_test to gtest."
...
TBR=phoglund@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1408005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3962 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-06 13:12:58 +00:00
45f2da0920
VCM/JB: Porting jitter_buffer_test to gtest.
...
Tests were not modified, but ported as is.
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1391004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3956 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-03 22:22:46 +00:00
d3cd565ecf
VCM: Updating receiver logic
...
R=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1363005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3952 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-03 17:54:18 +00:00
77f6b2175e
Revert 3934 "Revert 3933 "Remove traces of deprecated WebRtc_Wor..."
...
> Revert 3933 "Remove traces of deprecated WebRtc_Word types."
>
> > Remove traces of deprecated WebRtc_Word types.
> >
> > BUG=314
> > R=tommi@webrtc.org
> >
> > Review URL: https://webrtc-codereview.appspot.com/1385004
>
> TBR=pbos@webrtc.org
>
> Review URL: https://webrtc-codereview.appspot.com/1386004
TBR=pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1397004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3948 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-03 12:02:11 +00:00
68e5a68f07
Revert 3933 "Remove traces of deprecated WebRtc_Word types."
...
> Remove traces of deprecated WebRtc_Word types.
>
> BUG=314
> R=tommi@webrtc.org
>
> Review URL: https://webrtc-codereview.appspot.com/1385004
TBR=pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1386004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3934 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-02 09:30:12 +00:00
265a5d298a
Remove traces of deprecated WebRtc_Word types.
...
BUG=314
R=tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1385004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3933 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-02 09:11:20 +00:00
4980679d35
Fixes two bugs in receive statistics.
...
- Reported bitrate wasn't reset correctly when no frames had been received.
- Internal framerate estimate wasn't reset when no frames had been received.
BUG=1713
Review URL: https://webrtc-codereview.appspot.com/1377004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3924 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-30 22:05:07 +00:00
d35964a1ce
Fixing AV sync.
...
Increased 2 const to allow for a bigger difference in AV sync.
BUG=1711
Re-wrote the ComputeDelays to be readable and remove the possibilities of returning values lower than base_target_delay_ms
R=mflodman@webrtc.org , mikhal@webrtc.org , niklas.enbom@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1367004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3922 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-30 16:06:10 +00:00