Index: webrtc/call/rtc_event_log.h |
diff --git a/webrtc/call/rtc_event_log.h b/webrtc/call/rtc_event_log.h |
index 518308bf2d2c3577c707837a835cbc6234fb671f..bea57b01cd11eb4729b83f1967cb6258862ac7c2 100644 |
--- a/webrtc/call/rtc_event_log.h |
+++ b/webrtc/call/rtc_event_log.h |
@@ -26,6 +26,7 @@ namespace rtclog { |
class EventStream; |
} // namespace rtclog |
+class Clock; |
class RtcEventLogImpl; |
enum class MediaType; |
@@ -36,30 +37,40 @@ class RtcEventLog { |
public: |
virtual ~RtcEventLog() {} |
- static std::unique_ptr<RtcEventLog> Create(); |
+ // Factory method to create an RtcEventLog object. |
+ static std::unique_ptr<RtcEventLog> Create(const Clock* clock); |
- // Sets the time that events are stored in the internal event buffer |
- // before the user calls StartLogging. The default is 10 000 000 us = 10 s |
- virtual void SetBufferDuration(int64_t buffer_duration_us) = 0; |
- |
- // Starts logging for the specified duration to the specified file. |
- // The logging will stop automatically after the specified duration. |
+ // Starts logging a maximum of max_size_bytes bytes to the specified file. |
// If the file already exists it will be overwritten. |
- // If the file cannot be opened, the RtcEventLog will not start logging. |
- virtual void StartLogging(const std::string& file_name, int duration_ms) = 0; |
- |
- // Starts logging until either the 10 minute timer runs out or the StopLogging |
- // function is called. The RtcEventLog takes ownership of the supplied |
- // rtc::PlatformFile. |
- virtual bool StartLogging(rtc::PlatformFile log_file) = 0; |
- |
+ // If max_size_bytes <= 0, logging will be active until StopLogging is called. |
+ // The function has no effect and returns false if we can't start a new log |
+ // e.g. because we are already logging or the file cannot be opened. |
+ virtual bool StartLogging(const std::string& file_name, |
+ int64_t max_size_bytes) = 0; |
+ |
+ // Same as above. The RtcEventLog takes ownership of the file if the call |
+ // is successful, i.e. if it returns true. |
+ virtual bool StartLogging(rtc::PlatformFile platform_file, |
+ int64_t max_size_bytes) = 0; |
+ |
+ // Deprecated. Pass an explicit file size limit. |
+ bool StartLogging(const std::string& file_name) { |
+ return StartLogging(file_name, 10000000); |
+ } |
+ |
+ // Deprecated. Pass an explicit file size limit. |
+ bool StartLogging(rtc::PlatformFile platform_file) { |
+ return StartLogging(platform_file, 10000000); |
+ } |
+ |
+ // Stops logging to file and waits until the thread has finished. |
virtual void StopLogging() = 0; |
- // Logs configuration information for webrtc::VideoReceiveStream |
+ // Logs configuration information for webrtc::VideoReceiveStream. |
virtual void LogVideoReceiveStreamConfig( |
const webrtc::VideoReceiveStream::Config& config) = 0; |
- // Logs configuration information for webrtc::VideoSendStream |
+ // Logs configuration information for webrtc::VideoSendStream. |
virtual void LogVideoSendStreamConfig( |
const webrtc::VideoSendStream::Config& config) = 0; |
@@ -76,7 +87,7 @@ class RtcEventLog { |
const uint8_t* packet, |
size_t length) = 0; |
- // Logs an audio playout event |
+ // Logs an audio playout event. |
virtual void LogAudioPlayout(uint32_t ssrc) = 0; |
// Logs a bitrate update from the bandwidth estimator based on packet loss. |
@@ -86,6 +97,11 @@ class RtcEventLog { |
// Reads an RtcEventLog file and returns true when reading was successful. |
// The result is stored in the given EventStream object. |
+ // The order of the events in the EventStream is implementation defined. |
+ // The current implementation writes a LOG_START event, then the old |
+ // configurations, then the remaining events in timestamp order and finally |
+ // a LOG_END event. However, this might change without further notice. |
+ // TODO(terelius): Change result type to a vector? |
static bool ParseRtcEventLog(const std::string& file_name, |
rtclog::EventStream* result); |
}; |