Complex Event Detection (CED) is emerging as a key capability for many monitoring applications such as intrusion detection, sensorbased activity & phenomena tracking, and network monitoring. Existing CED solutions commonly assume centralized availability and processing of all relevant events, and thus incur significant overhead in distributed settings. In this paper, we present and evaluate communication efficient techniques that can efficiently perform CED across distributed event sources.
Our techniques are plan-based: we generate multi-step event acquisition and processing plans that leverage temporal relationships among events and event occurrence statistics to minimize event transmission costs, while meeting application-specific latency expectations. We present an optimal but exponential-time dynamic programming algorithm and two polynomial-time heuristic algorithms, as well as their extensions for detecting multiple complex events with common sub-expressions. We characterize the behavior and performance of our solutions via extensive experimentation on synthetic and real-world data sets using our prototype implementation.
GStreamer::Event(3pm) User Contributed Perl Documentation GStreamer::Event(3pm)NAME
GStreamer::Event - Structure describing events that are passed up and down a pipeline
DESCRIPTION
The various event types are represented as subclasses:
GStreamer::Event::FlushStart
GStreamer::Event::FlushStop
GStreamer::Event::EOS
GStreamer::Event::NewSegment
GStreamer::Event::Tag
GStreamer::Event::BufferSize
GStreamer::Event::QOS
GStreamer::Event::Seek
GStreamer::Event::Navigation
GStreamer::Event::Custom::UP
GStreamer::Event::Custom::DS
GStreamer::Event::Custom::DS::OOB
GStreamer::Event::Custom::Both
GStreamer::Event::Custom::Both::OOB
To create a new event, you call the constructor of the corresponding class.
To check if an event is of a certain type, use the type method:
if ($event -> type eq "newsegment") {
# ...
}
elsif ($event -> type eq "eos") {
# ...
}
To get to the content of an event, call the corresponding accessor:
if ($event -> type eq "newsegment") {
my $update = $event -> update;
my $rate = $event -> rate;
my $format = $event -> format;
my $start_value = $event -> start_value;
my $stop_value = $event -> stop_value;
my $stream_time = $event -> stream_time;
# ...
}
elsif ($event -> type eq "tag") {
my $tag = $event -> tag;
# ...
}
METHODS
structure = $event->get_structure
eventtype = $event->type
ENUMS AND FLAGS
enum GStreamer::EventType
o 'unknown' / 'GST_EVENT_UNKNOWN'
o 'flush-start' / 'GST_EVENT_FLUSH_START'
o 'flush-stop' / 'GST_EVENT_FLUSH_STOP'
o 'eos' / 'GST_EVENT_EOS'
o 'newsegment' / 'GST_EVENT_NEWSEGMENT'
o 'tag' / 'GST_EVENT_TAG'
o 'buffersize' / 'GST_EVENT_BUFFERSIZE'
o 'sink-message' / 'GST_EVENT_SINK_MESSAGE'
o 'qos' / 'GST_EVENT_QOS'
o 'seek' / 'GST_EVENT_SEEK'
o 'navigation' / 'GST_EVENT_NAVIGATION'
o 'latency' / 'GST_EVENT_LATENCY'
o 'step' / 'GST_EVENT_STEP'
o 'custom-upstream' / 'GST_EVENT_CUSTOM_UPSTREAM'
o 'custom-downstream' / 'GST_EVENT_CUSTOM_DOWNSTREAM'
o 'custom-downstream-oob' / 'GST_EVENT_CUSTOM_DOWNSTREAM_OOB'
o 'custom-both' / 'GST_EVENT_CUSTOM_BOTH'
o 'custom-both-oob' / 'GST_EVENT_CUSTOM_BOTH_OOB'
SEE ALSO
GStreamer
COPYRIGHT
Copyright (C) 2005-2011 by the gtk2-perl team.
This software is licensed under the LGPL. See GStreamer for a full notice.
perl v5.14.2 2012-03-01 GStreamer::Event(3pm)