webrtc/modules/video_coding
Sergey Silkin 64eaa99cfc On-fly calculation of quality metrics.
Calculation of quality metrics required writing of decoded video
to file. There were two drawbacks with that approach. First, frame
drops significantly affected metrics because comparison was done
against the last decoded frame. Second, simulcast/SVC required
writing of multiple files. This might be too much data to dump.

On-fly metrics calculation is done in frame decoded callback.
Calculation time is excluded from encoding/decoding time. If CPU
usage measurement is enabled metrics calculation is disabled since
it affects CPU usage. The results are reported in Stats::PrintSummary.

Bug: webrtc:8524
Change-Id: Id54fb21f2f95deeb93757afaf46bde7d7ae18dac
Reviewed-on: https://webrtc-review.googlesource.com/22560
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20798}
2017-11-20 16:13:59 +00:00
..
codecs On-fly calculation of quality metrics. 2017-11-20 16:13:59 +00:00
include Delete VCMSendStatisticsCallback and corresponding use of ProcessThread 2017-10-26 08:13:55 +00:00
test Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
utility Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
BUILD.gn In generic encoder ensure capture timestamp is preserved. 2017-11-17 16:06:17 +00:00
codec_database.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
codec_database.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
codec_timer.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
codec_timer.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
decoding_state.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
decoding_state.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
decoding_state_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
DEPS Add support for H.264 constrained high profile in VideoProcessor. 2017-10-27 13:30:34 +00:00
encoded_frame.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
encoded_frame.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
fec_rate_table.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
frame_buffer.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
frame_buffer.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
frame_buffer2.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
frame_buffer2.h Move sequence_number_utils.h to rtc_base/ 2017-10-25 12:33:57 +00:00
frame_buffer2_unittest.cc Move sequence_number_utils.h to rtc_base/ 2017-10-25 12:33:57 +00:00
frame_object.cc Move SPS/PPS/IDR requirement from RtpFrameObject to PacketBuffer. 2017-11-06 12:04:46 +00:00
frame_object.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
generic_decoder.cc Reland "Update internal SW codecs to return unique_ptrs" 2017-11-13 14:23:58 +00:00
generic_decoder.h Reland "Update internal SW codecs to return unique_ptrs" 2017-11-13 14:23:58 +00:00
generic_encoder.cc In generic encoder ensure capture timestamp is preserved. 2017-11-17 16:06:17 +00:00
generic_encoder.h In generic encoder ensure capture timestamp is preserved. 2017-11-17 16:06:17 +00:00
generic_encoder_unittest.cc In generic encoder ensure capture timestamp is preserved. 2017-11-17 16:06:17 +00:00
h264_sprop_parameter_sets.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
h264_sprop_parameter_sets.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
h264_sprop_parameter_sets_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
h264_sps_pps_tracker.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
h264_sps_pps_tracker.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
h264_sps_pps_tracker_unittest.cc Move SPS/PPS/IDR requirement from RtpFrameObject to PacketBuffer. 2017-11-06 12:04:46 +00:00
histogram.cc Move sequence_number_utils.h to rtc_base/ 2017-10-25 12:33:57 +00:00
histogram.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
histogram_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
inter_frame_delay.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
inter_frame_delay.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
internal_defines.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
jitter_buffer.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
jitter_buffer.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
jitter_buffer_common.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
jitter_buffer_unittest.cc Remove unused mocks of process thread 2017-09-28 07:57:28 +00:00
jitter_estimator.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
jitter_estimator.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
jitter_estimator_tests.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
media_opt_util.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
media_opt_util.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
media_optimization.cc Remove use of SetEncodingDataInternal in MediaOptimization. 2017-11-13 12:39:48 +00:00
media_optimization.h Remove use of SetEncodingDataInternal in MediaOptimization. 2017-11-13 12:39:48 +00:00
nack_fec_tables.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
nack_module.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
nack_module.h Move sequence_number_utils.h to rtc_base/ 2017-10-25 12:33:57 +00:00
nack_module_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
OWNERS Moving src/webrtc into src/. 2017-09-15 04:25:06 +00:00
packet.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
packet.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
packet_buffer.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
packet_buffer.h Move SPS/PPS/IDR requirement from RtpFrameObject to PacketBuffer. 2017-11-06 12:04:46 +00:00
protection_bitrate_calculator.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
protection_bitrate_calculator.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
protection_bitrate_calculator_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
qp_parser.cc Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
qp_parser.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
receiver.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
receiver.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
receiver_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
rtp_frame_reference_finder.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
rtp_frame_reference_finder.h Move sequence_number_utils.h to rtc_base/ 2017-10-25 12:33:57 +00:00
rtp_frame_reference_finder_unittest.cc Calculate VP9 references to wrap at kPicIdLength instead of 16 bits. 2017-09-28 13:53:38 +00:00
rtt_filter.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
rtt_filter.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
session_info.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
session_info.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
session_info_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
timestamp_map.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
timestamp_map.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
timing.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
timing.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
timing_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
video_codec_initializer.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
video_codec_initializer_unittest.cc Add explicit includes of refcountedobject.h where it is used. 2017-10-06 13:00:14 +00:00
video_coding_impl.cc Delete VCMSendStatisticsCallback and corresponding use of ProcessThread 2017-10-26 08:13:55 +00:00
video_coding_impl.h Delete VCMSendStatisticsCallback and corresponding use of ProcessThread 2017-10-26 08:13:55 +00:00
video_packet_buffer_unittest.cc Move SPS/PPS/IDR requirement from RtpFrameObject to PacketBuffer. 2017-11-06 12:04:46 +00:00
video_receiver.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
video_receiver_unittest.cc Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
video_sender.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
video_sender_unittest.cc Reland "Update internal SW codecs to return unique_ptrs" 2017-11-13 14:23:58 +00:00