Aaro Altonen
afb2eff134
Print the best values in find_best.sh
2020-04-28 11:18:13 +03:00
Aaro Altonen
f7f7562be2
Sort the output properly
...
Sorted output without -V gave incorrect values
2020-04-28 11:18:13 +03:00
Aaro Altonen
cc8f2ec65b
Fix total goodput for single thread benchmark runs
2020-04-28 11:18:13 +03:00
Aaro Altonen
efe71cb25d
Add iter parameter to parse.pl
2020-04-28 11:18:13 +03:00
Aaro Altonen
18c705ad96
Add example code for context configuration
2020-04-28 11:18:13 +03:00
Aaro Altonen
649be450e5
Enable runtime configuration functionality
...
Remove old context configuration flags that are no longer used,
convert configure_ctx() to work as a handler for all RCC_* flags
and use default values in sender/receiver/queue during initialization
2020-04-28 11:18:13 +03:00
Aaro Altonen
c62194aea2
Add ability to specify custom payload type
2020-04-28 11:18:13 +03:00
Aaro Altonen
9dc147f3b8
Ignore a.out files
2020-04-28 11:18:13 +03:00
Aaro Altonen
c2e7eb1bc1
Rename kvzRTP to uvgRTP
2020-04-28 11:18:07 +03:00
Aaro Altonen
94ab632f4b
Set clock rate to 10000 for generic frames
...
If the clock rate is not set (ie. it's zero) it will screw up
the timestamp calculations and may cause problems for the receiver,
especially when fragmentation is enabled
2020-04-27 13:48:49 +03:00
Aaro Altonen
df4c96c072
Removed unused Opus function
2020-04-27 12:57:00 +03:00
Aaro Altonen
29749c3623
Create RCE_INPLACE_ENCRYPTION flag
...
This flag indicates to kvzRTP that the input data given to push_frame()
is writable and the encryption can be done in-place.
By default kvzRTP assumes that the input cannot be modified and creates
a copy of the input data.
2020-04-27 12:22:28 +03:00
Aaro Altonen
a9d1d411ea
Handle RTP_COPY for unique_ptrs too
2020-04-27 12:22:28 +03:00
Aaro Altonen
53270c6966
Add example code for SRTP using ZRTP
2020-04-27 12:22:24 +03:00
Aaro Altonen
a46c904de0
Make sure the HEVC frame is actually too large
...
Failing to check this caused an infrequent error where kvzRTP
started a fragmentation unit but because there was not enough bytes
it couldn't finish it and thus the receiver never returned the frame
to user because it only received the first fragment (which was the full
frame)
2020-04-26 21:04:28 +03:00
Aaro Altonen
98404d9316
Increase the MAX_PAYLOAD to 1443
...
There's 2 bytes left in the budget after all media headers
2020-04-26 21:04:28 +03:00
Aaro Altonen
44276308c8
Update README
2020-04-26 21:04:25 +03:00
Aaro Altonen
c7b8188dcd
Add example code for generic fragmentation
2020-04-24 21:51:12 +03:00
Aaro Altonen
5cedd36641
Add ability to fragment/reconstruct generic frames
2020-04-24 21:51:12 +03:00
Aaro Altonen
63bbd2408b
Remove the SEQ(x) and TS(x) macros
2020-04-24 21:51:12 +03:00
Aaro Altonen
7ebf1410bc
Remove the frames array from HEVC receiver
2020-04-24 21:51:12 +03:00
Aaro Altonen
082372fba1
Merge RTP context configuration flags into one enum
...
Having separate enums for general configuration and media configuration
might be too confusing given that they are passed to kvzRTP using same
variable and the configuration values must not clash with each other
so the second enum's values would have to start from RCE_LAST which
might look weird
2020-04-24 21:51:12 +03:00
Aaro Altonen
ab3746d2c9
Add Visual Studio project files
2020-04-24 21:51:07 +03:00
Aaro Altonen
d8a54f1af1
Ignore tags file
2020-04-24 11:10:26 +03:00
Aaro Altonen
8fdc0193ec
Parse netcat output in benchmark.pl
2020-04-23 12:53:52 +03:00
Aaro Altonen
a9fd4206ed
Clamp the FPS to more sensical values
2020-04-23 12:30:27 +03:00
Aaro Altonen
44b15a68c9
Drop invalid inter frame fragments before frame construction
...
No point in allocating space for the frame and constructing it
from fragments just to drop it a few moments later
2020-04-23 12:30:27 +03:00
Aaro Altonen
796bcf2717
Drop invalid inter/intra frames only if intra delay is enabled
2020-04-23 12:30:27 +03:00
Aaro Altonen
d889893ea4
Create inter frame even if intra is in progress
...
Dropping new inter frames when an intra is in progress is a little
too aggressive considering the intra might be finished by the time
all inter frame packets have been received so basically we would lost
a perfectly valid frame for no reason
2020-04-23 12:30:07 +03:00
Aaro Altonen
127108fafa
Create generic receiver for the benchmarking
...
To test the maximum raw throughput of sender, netcat can be used
to capture the stream which does not care about late frames or
FPS values.
2020-04-23 11:19:46 +03:00
Aaro Altonen
3f97fc28f0
Clamp FPS values to range 0.9375 - 960
...
This is the range where it's possible to reach sensical send/recv goodputs.
Going lower than 0.9375 doesn't even make sense and going higher than 960
will probably result in 90% of frames being dropped because
nobody can packetize and send 4K stream that fast.
2020-04-23 11:19:46 +03:00
Aaro Altonen
7e143288ae
Add ability to pass remote address to benchmark code
2020-04-23 11:19:46 +03:00
Aaro Altonen
29bf2197fb
Convert the benchmark setup to FPS-based
2020-04-23 11:19:46 +03:00
Aaro Altonen
b4c7e84900
Change the default receiver IP for kvzRTP
2020-04-23 11:19:46 +03:00
Aaro Altonen
4050ef0bcb
Add multithreaded FFmpeg benchmark receive code
2020-04-23 11:19:46 +03:00
Aaro Altonen
e8d44bf7d6
Add multithreaded FFmpeg benchmark sender code
2020-04-23 11:19:46 +03:00
Aaro Altonen
098f03faa8
Make sure the file contains correct number of lines
...
If the file contains incorrect amount of lines, the calculations
will yield nonsensical values
2020-04-23 11:19:46 +03:00
Aaro Altonen
b29954ef0e
Add help flag to parse.pl
2020-04-23 11:19:46 +03:00
Aaro Altonen
af3d8be321
Create script for parsing the parsed results
2020-04-23 11:19:46 +03:00
Aaro Altonen
261d2c7bb5
Add ability to parse recv results of multithreaded runs
2020-04-23 11:19:46 +03:00
Aaro Altonen
33b26bcd92
Convert tabs to spaces
2020-04-23 11:19:46 +03:00
Aaro Altonen
9d8f618aab
Add ability to parse send results of multithreaded runs
2020-04-23 11:19:46 +03:00
Aaro Altonen
1a33361927
Pass the correct amount of sleep for the program
2020-04-23 11:19:46 +03:00
Aaro Altonen
f87c3b0e06
Add missing variable
2020-04-23 11:19:46 +03:00
Aaro Altonen
83eade2dee
Use correct variable for the server address
2020-04-23 11:19:46 +03:00
Aaro Altonen
671165a6f7
Fix the start/end loop in benchmark.pl
...
Not sure what happened but the script did not execute all rounds
but stopped very soon after iterations
2020-04-23 11:19:46 +03:00
Aaro Altonen
7824507d91
Free all threads when the benchmark ends
2020-04-23 11:19:46 +03:00
Aaro Altonen
c17b919d9d
Remove dispatcher/receiver start prints
...
These make parsing logs more complex but do not add any value
so no reason to keep them
2020-04-23 11:19:46 +03:00
Aaro Altonen
e2268b92b2
Improve the benchmarking script
...
Now the benchmarking script can run different amount of threads
with different FPS values autonomously
2020-04-23 11:19:46 +03:00
Aaro Altonen
8a508fce31
Make the benchmark threadable
...
Now user can specify how many parallel sender threads there should
be to better simulate real-world conditions.
2020-04-23 11:19:46 +03:00