From 7ece324274c1012b34fb41dbee67eb5f51924f03 Mon Sep 17 00:00:00 2001 From: Nanang Izzuddin Date: Wed, 20 Jan 2010 01:02:37 +0000 Subject: Ticket #969: - implemented progressive discard algorithm, discard rate is calculated from ratio of effective size to effective burst level. - updated jbuf to clarify prefetch and burst level distinction, previously they are stored in same var, i.e: prefetch, while the semantic is actually different. - updated STABLE_HISTORY_LIMIT in jbuf, it is now 20 (was 100), to adjust burst level faster. - added test case of periodic-spike-burst-case in jbtest.dat for testing the new algorithm. - updated stream to limit the rate of jbuf empty/lost log messages, it will only log first empty/lost event, then log again once jbuf returning normal frame (also counter of previous empty/lost frames). - minor updates on jbuf.c: variable names, logs, added burst to jbuf state. - minor updates on jbuf_test.c: handle comment in test session header, seq jump is now 20 (was 5000). git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3065 74dad513-b988-da41-8d7b-12977e46ad98 --- pjmedia/build/Jbtest.dat | 241 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 239 insertions(+), 2 deletions(-) (limited to 'pjmedia/build') diff --git a/pjmedia/build/Jbtest.dat b/pjmedia/build/Jbtest.dat index 3e2169c4..41eb0ed7 100644 --- a/pjmedia/build/Jbtest.dat +++ b/pjmedia/build/Jbtest.dat @@ -1,3 +1,47 @@ +# +# ====================================================================== +# Jitter Buffer test data, containing one or more test sessions +# ====================================================================== +# +# A test session format: +# +# 1. Session title, started with '=', example: +# = Bursty environment +# +# 2. Session setting, started with '%', followed by params: +# - mode, possible values: 'adaptive' or 'fixed' +# - initial prefetch, in frames +# - minimum prefetch (for adaptive mode only), in frames +# - maximum prefetch (for adaptive mode only), in frames +# Example: +# %adaptive 0 0 40 +# %fixed 10 +# +# 3. Success conditions, started with '!', followed by condition name +# and its maximum tolerable value, in frames unit. Recognized condition +# names are: burst, discard, lost, empty, delay. These conditions will +# be verified with jitter buffer statistics after all session test data +# are executed. +# Example: +# !delay 10 <- maximum average delay of jbuf is 10 frames +# +# 4. Session test data, containing sequence of jitter buffer events, +# an event is represented by a character as follow: +# - P: PUT a frame into jitter buffer +# - G: GET a frame from jitter buffer +# - L: generate a Lost frame, i.e: sequence jump by 1 +# - R: sequence Restart +# - J: sequence Jump by 20 +# - D: generate a Duplicated frame +# - O: generate an Old/late (and perhaps also duplicated) frame +# Example: +# PGPGPGPGPG <- ideal condition, PUT and GET one after another +# +# 5. End of session test data, marked by '.' +# +# ====================================================================== +# + = Ideal condition %adaptive 0 0 10 !burst 1 @@ -302,10 +346,10 @@ PGGGGPPPGPPGPPPGGPGG PGPGPPGGPPGGPPPGGGPG PGGGGPPPGPPGPPPGGPGG = Fixed mode prefetch 10, PUT burst at the beginning %fixed 10 !burst 1 -!discard 35 <- frames discarded for delay adaptation +!discard 50 <- frames discarded for delay adaptation !lost 0 !empty 0 -!delay 30 <- average delay +!delay 20 <- average delay, twice of minimal prefetch PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG @@ -322,3 +366,196 @@ PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPGPGPGPGPGPG PGPGPGPGPG . + += Large PUT burst at beginning, then normal with burst level 10 and periodic burst spikes +%adaptive 0 0 40 +!burst 10 +!discard 300 <- not so relevant for long period session with many delay adjustments needed (i.e: for first burst and periodic spikes) +!lost 0 +!empty 60 <- delay adjustment effect, as there is actually no drift +!delay 20 <- twice of burst level average +PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP +PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP +PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP +PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP +GGGGGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGG GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP +GGGGGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGG GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP +GGGGGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGG GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP +GGGGGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGG GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPP PPPPPPPPPP +GGGGGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGG GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +PPPPPPPPPP GGGGGGGGGG PPPPPPPPPP GGGGGGGGGG +. -- cgit v1.2.3