Commit Graph

98 Commits

Author SHA1 Message Date
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
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
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
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
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
6faba6edc9 VCM: Setting buffering delay in timing
Review URL: https://webrtc-codereview.appspot.com/1338004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3921 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-30 15:39:34 +00:00
865ada3a52 Don't reset the last je value and mode
Review URL: https://webrtc-codereview.appspot.com/1369004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3916 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-29 19:09:41 +00:00
5b7120c81b Fix two issues where we might end up busy looping in decoder_render mode.
This happens if
- Next frame is far into the future (> 200 ms).
- Next frame is ready for decode/render but incomplete.

BUG=1696
TESTS=trybots

Review URL: https://webrtc-codereview.appspot.com/1354005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3914 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-29 16:41:30 +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
8392cd9edd VCM/JB: Using last decoded state for waiting for key
relanding 1323006

BUG=

Review URL: https://webrtc-codereview.appspot.com/1354004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3902 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-25 21:30:50 +00:00
dc3cd217b2 VCM/JB: FrameForDecoding->IncompleteFrameForDecoding
- Update complete frame for decoding
- Remove FrameForDecodingNack

This CL should only be committed after issue http://webrtc-codereview.appspot.com/1313007/

Review URL: https://webrtc-codereview.appspot.com/1316007

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3901 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-25 20:27:04 +00:00
df9c0e5ec9 Revert 3892 "VCM/JB: Using last decoded state for waiting for key"
> VCM/JB: Using last decoded state for waiting for key
> 
> Review URL: https://webrtc-codereview.appspot.com/1323006

Although I have no idea why, it appears this might be causing failures in ViEStandardIntegrationTest.RunsFileTestWithoutErrors. I was unable to reproduce locally. This is a trial revert to verify. If the errors continue to happen, I will restore this change.

TBR=mikhal@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1321010

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3896 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-24 02:13:18 +00:00
1248d4effc VCM/JB: Using last decoded state for waiting for key
Review URL: https://webrtc-codereview.appspot.com/1323006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3892 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-23 20:57:06 +00:00
c1f243f8e7 VCM/JB: Skip to the next complete key frame
Review URL: https://webrtc-codereview.appspot.com/1317006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3885 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-22 22:24:38 +00:00
e0e029e8cb Revert 3876
Review URL: https://webrtc-codereview.appspot.com/1341005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3877 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-19 21:11:41 +00:00
ee184b9520 VCM/Receiver: Only update render time when decoding
Review URL: https://webrtc-codereview.appspot.com/1336004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3876 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-19 19:15:47 +00:00
dbd6a6d653 Updating delay for first value
BUG=

Review URL: https://webrtc-codereview.appspot.com/1327005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3865 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-17 16:23:22 +00:00
6e788df19e Remove vim/emacs modelines from .gypi files
BUG=1655

Review URL: https://webrtc-codereview.appspot.com/1326005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3857 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-16 12:40:34 +00:00
56b5f77a2b Add support for multiple streams to RtpPlayer:
- Tests video_rtp_play.cc, video_rtp_play_mt.cc, decode_from_storage.cc rewritten
 - rtp_player.cc/.h rewritten; added interfaces for externally setting up sinks
 - Support for reading .rtp files pulled out into rtp_file_reader namespace
 - Added support for reading .pcap (libpcap/wireshark/tcpdump) files, see pcap_file_reader

BUG=
TEST=trybots

Review URL: https://webrtc-codereview.appspot.com/1201009

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3856 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-16 10:31:56 +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