#include "src/trace_processor/importers/proto/frame_timeline_event_parser.h"
#include <cinttypes>
#include "perfetto/ext/base/utils.h"
#include "perfetto/protozero/field.h"
#include "src/trace_processor/importers/common/args_tracker.h"
#include "src/trace_processor/importers/common/event_tracker.h"
#include "src/trace_processor/importers/common/flow_tracker.h"
#include "src/trace_processor/importers/common/process_tracker.h"
#include "src/trace_processor/importers/common/slice_tracker.h"
#include "src/trace_processor/importers/common/track_tracker.h"
#include "src/trace_processor/types/trace_processor_context.h"
#include "protos/perfetto/trace/interned_data/interned_data.pbzero.h"
namespace perfetto {
namespace trace_processor {
namespace {
bool IsBadTimestamp(int64_t ts) { … }
}
ExpectedDisplayFrameStartDecoder;
ActualDisplayFrameStartDecoder;
ExpectedSurfaceFrameStartDecoder;
ActualSurfaceFrameStartDecoder;
FrameEndDecoder;
static StringId JankTypeBitmaskToStringId(TraceProcessorContext* context,
int32_t jank_type) { … }
static bool DisplayFrameJanky(int32_t jank_type) { … }
static bool SurfaceFrameJanky(int32_t jank_type) { … }
static bool ValidatePredictionType(TraceProcessorContext* context,
int32_t prediction_type) { … }
static bool ValidatePresentType(TraceProcessorContext* context,
int32_t present_type) { … }
FrameTimelineEventParser::FrameTimelineEventParser(
TraceProcessorContext* context)
: … { … }
void FrameTimelineEventParser::ParseExpectedDisplayFrameStart(
int64_t timestamp,
ConstBytes bufferBlob) { … }
void FrameTimelineEventParser::ParseActualDisplayFrameStart(
int64_t timestamp,
ConstBytes bufferBlob) { … }
void FrameTimelineEventParser::ParseExpectedSurfaceFrameStart(
int64_t timestamp,
ConstBytes bufferBlob) { … }
void FrameTimelineEventParser::ParseActualSurfaceFrameStart(
int64_t timestamp,
ConstBytes bufferBlob) { … }
void FrameTimelineEventParser::ParseFrameEnd(int64_t timestamp,
ConstBytes bufferBlob) { … }
void FrameTimelineEventParser::ParseFrameTimelineEvent(int64_t timestamp,
ConstBytes blob) { … }
}
}