Commit Graph

522 Commits

Author SHA1 Message Date
Aaro Altonen e86205a308 Fix FFmpeg latency test code 2020-05-15 08:16:06 +03:00
Aaro Altonen a2d68b6d15 Fix parameters of parse_csv() 2020-05-15 07:53:43 +03:00
Aaro Altonen c0cb1a7cf2 Deallocate frames in example code 2020-05-15 07:53:15 +03:00
Aaro Altonen d287972f70 Fix latency test for uvgRTP 2020-05-15 07:40:12 +03:00
Aaro Altonen 7b73aede33 Add pull_frame(timeout)
Instead of blocking until the library is destroyed, add ability
to block at most N milliseconds before returning.

The code returns early if a frame is received within the specified
timeframe but will block at most "timeout "milliseconds
2020-05-11 17:36:13 +03:00
Aaro Altonen 037ea2b146 Fix best effort FPS calculations 2020-05-11 11:19:23 +03:00
Aaro Altonen 4bae67527c Set FFmpeg log level to panic 2020-05-11 11:19:14 +03:00
Aaro Altonen 180071db52 Add --unit parameter 2020-05-11 11:18:53 +03:00
Aaro Altonen cbb19076cb Calculate goodput estimate for receiver 2020-05-07 08:41:45 +03:00
Aaro Altonen d40c071167 Add ability to provide a list of executables
--exec can be used to provide a list of executables that should be
used to run the benchmarks
2020-05-06 15:22:25 +03:00
Aaro Altonen d3b2fcc32f Create strict and best effort FPS modes
Strict mode will stop the benchmark script if the frame is not sent
within the timeframe specified by the FPS value.

Best-effort mode tries to keep the FPS steady but if sending the
frame takes longer than it should, it will not exit but keeps
sending until every frame has been sent
2020-05-06 11:30:46 +03:00
Aaro Altonen 7fd1ffba54 Add default address and port to benchmark.pl 2020-05-06 11:22:37 +03:00
Aaro Altonen 867aa02dbd Rename debug() to uvgrtp_debug()
Prevent name clahes with other software, debug is after all
quite a common symbol name
2020-05-06 06:46:13 +03:00
Aaro Altonen 20dec060da Set default addresses for FFmpeg/uvgRTP 2020-05-05 20:28:24 +03:00
Aaro Altonen ac66b7ca7a Use second to last frame to calculate time estimate 2020-05-05 19:37:28 +03:00
Aaro Altonen e62a7bda3a Decrease probesize to 32 2020-05-05 19:33:37 +03:00
Aaro Altonen 0a52fb3d26 Improve the FPS parameter
Make it possible to provide a list of FPS values that should be tested
and add step parameter that tells how the FPS value should be increased
2020-05-05 19:24:40 +03:00
Aaro Altonen 3624456ae2 Fix FFmpeg's and uvgRTP's FPS calculations
If sending takes too long time, the benchmark is stopped
2020-05-05 13:02:12 +03:00
Aaro Altonen e75f0cb6d7 Output everything that was measured to CSV file 2020-05-05 12:47:50 +03:00
Aaro Altonen ec6e847310 Update TOTAL_BYTES 2020-05-05 12:47:34 +03:00
Aaro Altonen e7bcd377d3 Try to infer iter from file name in parse_csv() 2020-05-05 12:11:53 +03:00
Aaro Altonen 977569edb1 Add parse option "all"
Similar to best but instead of printing only the best configuration,
print all configuration that meet the criteria
2020-05-04 12:05:06 +03:00
Aaro Altonen 425d257758 Give frames per second 2020-05-04 11:26:00 +03:00
Aaro Altonen bda503d6cf Give both single and total goodput 2020-05-04 09:23:42 +03:00
Aaro Altonen af5f3130ce Add function for outputting a CSV file of the results
First line has the percentage of frames received and the second
line has the goodput of a single thread for that thread configuration
in megabytes
2020-05-02 21:38:35 +03:00
Aaro Altonen a273763060 Add code for testing latency 2020-05-02 10:59:38 +03:00
Aaro Altonen 0b7d769c61 Improve argument parsing 2020-05-02 10:39:47 +03:00
Aaro Altonen 64ac3d6d59 Add more examples to benchmarks/README.md 2020-05-02 10:39:43 +03:00
Aaro Altonen 81d7f23942 Improve argument parsing 2020-05-01 19:59:34 +03:00
Aaro Altonen 0e1804d8ee Try to infer iter from file names in parse_all() 2020-05-01 19:33:24 +03:00
Aaro Altonen f104127d0f Convert tabs to spaces 2020-05-01 19:32:46 +03:00
Aaro Altonen 01b0240923 Add the number of iterations to file name 2020-05-01 18:26:40 +03:00
Aaro Altonen 737693efd7 Infer role and number of threads from filename 2020-05-01 18:26:12 +03:00
Aaro Altonen f29918602c Try to infer library from path 2020-05-01 15:21:38 +03:00
Aaro Altonen 997924c111 Separate frame loss and packet loss 2020-05-01 12:58:06 +03:00
Aaro Altonen eac06c34cb Add ability to find the best configuration of FPS and threads
By default, the script requires that 99% of the frames/packets have
been received but the limit is adjustable with --threshold parameter
2020-04-30 09:14:07 +03:00
Aaro Altonen daa8b9246a Remove find_best.sh
The same functionality can be found from parse.pl
2020-04-30 07:10:11 +03:00
Aaro Altonen f01b0d3dfd Ignore invalid benchmark runs 2020-04-30 06:58:58 +03:00
Aaro Altonen 3525ee0e3e Fix SRTP example with user-managed keys 2020-04-30 01:49:45 +03:00
Aaro Altonen c2438e3017 Add support for user-managed SRTP session
Because the architecture has changed a bit, the context is initialized
only after add_srtp_ctx() has been called to prevent the user from
sending unencrypted messages.
2020-04-30 01:45:28 +03:00
Aaro Altonen 527b5e5c09 Set correct FPS in FFmpeg send benchmark 2020-04-29 20:47:23 +03:00
Aaro Altonen a41e8b93f3 Fix FFmpeg receiver code
The code bailed out too early
2020-04-29 20:47:10 +03:00
Aaro Altonen 4f021a287b Use iter instead of lines
They're the same thing and as iter is a mandatory parameter,
it's better to use it instead
2020-04-29 20:06:27 +03:00
Aaro Altonen ff8ef9bdaf Add code for parsing FFmpeg's recv benchmark output 2020-04-29 20:06:00 +03:00
Aaro Altonen aca3932cb9 Add code for parsing FFmpeg's send benchmark output 2020-04-29 19:53:35 +03:00
Aaro Altonen 2f8db432be Use the arrival time of last succesful frame 2020-04-29 14:12:25 +03:00
Aaro Altonen e77dde544d Add missing my keyword to generic receiver 2020-04-29 13:39:16 +03:00
Aaro Altonen a40f72ce6a Fix total goodput calculation for sender 2020-04-28 11:38:13 +03:00
Aaro Altonen 7e28da0cbb Calculate average time for the benchmark run 2020-04-28 11:26:33 +03:00
Aaro Altonen 1a24079a4a Print estimate of time even if all frames were not received 2020-04-28 11:19:40 +03:00