#include <memory>
#include "perfetto/ext/base/hash.h"
#include "perfetto/ext/base/string_utils.h"
#include "src/trace_processor/importers/common/args_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/importers/ftrace/v4l2_tracker.h"
#include "protos/perfetto/trace/ftrace/ftrace_event.pbzero.h"
#include "protos/perfetto/trace/ftrace/v4l2.pbzero.h"
#include "v4l2_tracker.h"
namespace perfetto {
namespace trace_processor {
namespace {
FtraceEvent;
V4l2DqbufFtraceEvent;
V4l2QbufFtraceEvent;
Vb2V4l2BufDoneFtraceEvent;
Vb2V4l2BufQueueFtraceEvent;
Vb2V4l2DqbufFtraceEvent;
Vb2V4l2QbufFtraceEvent;
ConstBytes;
}
V4l2Tracker::V4l2Tracker(TraceProcessorContext* context)
: … { … }
V4l2Tracker::~V4l2Tracker() = default;
void V4l2Tracker::ParseV4l2Event(uint64_t fld_id,
int64_t timestamp,
uint32_t pid,
const ConstBytes& bytes) { … }
std::optional<SliceId> V4l2Tracker::AddSlice(StringId buf_name_id,
int64_t timestamp,
uint32_t pid,
const BufferEvent& evt) { … }
void V4l2Tracker::AddArgs(const BufferEvent& evt,
ArgsTracker::BoundInserter* inserter) { … }
V4l2Tracker::BufferEventStringIds::BufferEventStringIds(TraceStorage& storage)
: … { … }
V4l2Tracker::BufferTypeStringIds::BufferTypeStringIds(TraceStorage& storage)
: … { … }
StringId V4l2Tracker::BufferTypeStringIds::Map(uint32_t buf_type) { … }
V4l2Tracker::BufferFieldStringIds::BufferFieldStringIds(TraceStorage& storage)
: … { … }
StringId V4l2Tracker::BufferFieldStringIds::Map(uint32_t field) { … }
V4l2Tracker::TimecodeTypeStringIds::TimecodeTypeStringIds(TraceStorage& storage)
: … { … }
StringId V4l2Tracker::TimecodeTypeStringIds::Map(uint32_t type) { … }
StringId V4l2Tracker::InternBufFlags(uint32_t flags) { … }
StringId V4l2Tracker::InternTcFlags(uint32_t flags) { … }
}
}