MCPcopy Create free account
hub / github.com/0xShug0/audio.cpp / select_capacity_for_run

Method select_capacity_for_run

src/framework/runtime/session.cpp:389–428  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

387}
388
389int64_t GraphCapacityController::select_capacity_for_run(
390 const IGraphCapacityAdapter & adapter,
391 int64_t request_size) const {
392 if (request_size <= 0) {
393 throw std::runtime_error("graph capacity request size must be positive");
394 }
395 const auto prepared_capacities = sorted_prepared_capacities(adapter);
396 switch (mode_) {
397 case GraphCapacityMode::Fixed: {
398 const int64_t capacity = adapter.fixed_capacity();
399 if (capacity <= 0) {
400 throw std::runtime_error("fixed graph capacity must be positive");
401 }
402 if (request_size > capacity) {
403 throw std::runtime_error("request exceeds fixed graph capacity");
404 }
405 return capacity;
406 }
407 case GraphCapacityMode::Tiered: {
408 const int64_t prepared_capacity = select_smallest_prepared_fitting_capacity(prepared_capacities, request_size);
409 if (prepared_capacity > 0) {
410 return prepared_capacity;
411 }
412 return adapter.canonical_capacity_for_request(request_size);
413 }
414 case GraphCapacityMode::Grow:
415 if (!prepared_capacities.empty() && prepared_capacities.back() >= request_size) {
416 return prepared_capacities.back();
417 }
418 return adapter.canonical_capacity_for_request(request_size);
419 case GraphCapacityMode::Double:
420 if (!prepared_capacities.empty() && prepared_capacities.back() >= request_size) {
421 return prepared_capacities.back();
422 }
423 return adapter.canonical_capacity_for_request(checked_double_capacity_request(request_size));
424 case GraphCapacityMode::Unsupported:
425 throw std::runtime_error("graph capacity mode is unsupported");
426 }
427 throw std::runtime_error("unknown graph capacity mode");
428}
429
430SessionPreparationRequest build_preparation_request(const AudioBuffer & audio) {
431 SessionPreparationRequest request;

Callers 2

Tested by

no test coverage detected