Filter items out that are not in rangeRangeFilter passes through items received on its "inbox" inbox where item[0] lies within one or more of a specfied set of ranges of value. Items that don't match this are discarded. Example UsageReading all video frames from a YUV4MPEG format video file, but only passing on video frames 25-49 and 100-199 inclusive further along the pipeline: Pipeline( RateControlledFileReader("myvideo.yuv4mpeg",readmode="bytes"), YUV4MPEGToFrame(), TagWithSequenceNumber(), RangeFilter(ranges=[ (25,49), (100,199) ]), ... ).run() BehaviourAt initialisation, specify a list of value ranges that RangeFilter should allow. The list should be of the form: [ (low,high), (low,high), (low, high), ... ] The ranges specified are inclusive. Send an item to the "inbox" inbox of the form (value, ....). If the value matches one or more of the ranges specified, then the whole item (including the value) will immediately be sent on out of the "outbox" outbox. RangeFilter can therefore be used to select slices through sequence numbered or timestamped data. If the size limited inbox is full, this component will pause until it is able to send out the data,. If a producerFinished message is received on the "control" inbox, this component will complete parsing any data pending in its inbox, and finish sending any resulting data to its outbox. It will then send the producerFinished message on out of its "signal" outbox and terminate. If a shutdownMicroprocess message is received on the "control" inbox, this component will immediately send it on out of its "signal" outbox and immediately terminate. It will not complete processing, or sending on any pending data. Kamaelia.Util.RangeFilter.RangeFilterclass RangeFilter(Axon.Component.component)RangeFilter(ranges) -> new RangeFilter component. Filters out items of the form (value, ...) not within at least one of a specified value set of range. Items within range are passed through. Keyword arguments: - ranges -- list of (low,high) pairs representing ranges of value. Ranges are inclusive. Outboxes
Methods defined hereWarning! You should be using the inbox/outbox interface, not these methods (except construction). This documentation is designed as a roadmap as to their functionalilty for maintainers and new component developers. __init__(self, ranges)x.__init__(...) initializes x; see x.__class__.__doc__ for signature canStop(self)Checks for any shutdown messages arriving at the "control" inbox, and returns true if the component should terminate when it has finished processing any pending data. handleControl(self)Collects any new shutdown messages arriving at the "control" inbox, and ensures self.shutdownMsg contains the highest priority one encountered so far. inRange(self, index)Returns one of the ranges that the specified index falls within, otherwise returns None. main(self)Main loop mustStop(self)Checks for any shutdown messages arriving at the "control" inbox, and returns true if the component should terminate immediately. waitSend(self, data, boxname)Generator. Sends data out of the "outbox" outbox. If the destination is full (noSpaceInBox exception) then it waits until there is space. It keeps retrying until it succeeds. If the component is ordered to immediately terminate then "STOP" is raised as an exception. FeedbackGot a problem with the documentation? Something unclear that could be clearer? Want to help improve it? Constructive criticism is very welcome - especially if you can suggest a better rewording! Please leave you feedback here in reply to the documentation thread in the Kamaelia blog. -- Automatic documentation generator, 05 Jun 2009 at 03:01:38 UTC/GMT |
Kamaelia
is an open source project originated from and guided by BBC
Research. For more information browse the site or get in
contact.
This is an ongoing community based development site. As a result the contents of this page is the opinions of the contributors of the pages involved not the organisations involved. Specificially, this page may contain personal views which are not the views of the BBC. (the site is powered by a wiki engine)
(C) Copyright 2008 Kamaelia Contributors, including the British Broadcasting Corporation, All Rights Reserved.