def data_callback(data_type, buffer, the_end, options = {})
      return unless @marks.has_key? data_type
      callback(data_type, buffer, @marks[data_type], the_end)
      unless options[:clear]
        @marks[data_type] = 0
      else
        @marks.delete data_type
      end
    end
def data_callback(data_type, buffer, the_end, options = {})
      return unless @marks.has_key? data_type
      callback(data_type, buffer, @marks[data_type], the_end)
      unless options[:clear]
        @marks[data_type] = 0
      else
        @marks.delete data_type
      end
    end
Issues a data callback,
 The only valid options is :clear,
 which, if true, will reset the appropriate mark to 0,
 If not specified, the mark will be removed.