/* * Copyright (c) 2026 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef VIDEO_TIMING_SIMULATOR_LOG_CLASSIFIERS_H_ #define VIDEO_TIMING_SIMULATOR_LOG_CLASSIFIERS_H_ #include #include "logging/rtc_event_log/rtc_event_log_parser.h" namespace webrtc::video_timing_simulator { // The enum represents the logging status of RTX original sequence numbers, as // aggregated across the entire log. // // Prior to https://webrtc-review.googlesource.com/c/src/+/442320, RTX // OSN were not logged at all. After that CL, all RTX OSNs should be logged for // all video RTX packets. But since the value is represented as an optional (to // handle both cases), there could also be degenerate cases where RTX OSNs are // logged for some video RTX packets. // // This helper function determines which of three cases holds for a given log. enum class RtxOsnLoggingStatus { kNoRtxOsnLogged, // Log from before the RTX OSN logging change. kSomeRtxOsnLogged, // Degenerate case -- should not happen. kAllRtxOsnLogged, // Log from after the RTX OSN logging change. }; // Returns the RTX OSN logging status for the provided log. If there were no // video RTX packets in the log, the unset value is returned. std::optional GetRtxOsnLoggingStatus( const ParsedRtcEventLog& parsed_log); } // namespace webrtc::video_timing_simulator #endif // VIDEO_TIMING_SIMULATOR_LOG_CLASSIFIERS_H_