class_docstr: Utility to make it easier to write processors which require fixed-sized
  input buffers.
class_docstr_tok: ["Utility","to","make","it","easier","to","write","processors","which","require","fixed-sized","input","buffers","."]
docstr: Returns an iterator over tuples of the form (buffer, eod)
  where buffer is a fixed-sized block of data, and eod indicates whether
  this is the last block.
  In case padding is deactivated the last block may be smaller than
  the buffer size.
code: def process(self, frames, eod):
      """Returns an iterator over tuples of the form (buffer, eod)
      where buffer is a fixed-sized block of data, and eod indicates whether
      this is the last block.
      In case padding is deactivated the last block may be smaller than
      the buffer size.
      """
      src_index = 0
      remaining = len(frames)
  
      while remaining:
          space = self.buffer_size - self.len
          copylen = remaining < space and remaining or space
          src = frames[src_index : src_index + copylen]
          if self.len == 0 and copylen == self.buffer_size:
              # avoid unnecessary copy
              buffer = src
          else:
              buffer = self.buffer
              buffer[self.len : self.len + copylen] = src
  
          remaining -= copylen
          src_index += copylen
          self.len += copylen
  
          if self.len == self.buffer_size:
              yield buffer, (eod and not remaining)
              self.len = 0
  
      if eod and self.len:
          block = self.buffer
          if self.pad:
              self.buffer[self.len : self.buffer_size] = 0
          else:
              block = self.buffer[0 : self.len]
  
          yield block, True
          self.len = 0
  
imports: from .component import Component, MetaComponent, abstract
  from .component import implements, implementations, interfacedoc
  from .api import IProcessor
  from .exceptions import Error, PIDError, ApiError
  from .tools.parameters import HasParam
  import re
  import datetime
  import numpy
  import uuid
  import networkx
  import inspect
  import os
  import csv
  import sys
label_desc: Use image node_id 3 for calling the FixedSizeInputAdapter obj's underlying member method code with example usage: obj.process(frames, eod) without return types