| 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);
|
| };
|
|
|