LibAudio: Add a sample count hinting mechanism to audio encoding

This commit is contained in:
kleines Filmröllchen 2023-08-18 21:08:59 +02:00 committed by Andrew Kaster
parent 0960a92670
commit b4b411b8a3
Notes: sideshowbarker 2024-07-17 03:18:29 +09:00
2 changed files with 7 additions and 0 deletions

View file

@ -24,6 +24,10 @@ public:
// This method makes sure that all samples are encoded and written out.
// This method is called in the destructor, but since this can error, you should call this function yourself before disposing of the decoder.
virtual ErrorOr<void> finalize() = 0;
// Provides a hint about the total number of samples to the encoder, improving some encoder's performance in various aspects.
// Note that the hint does not have to be fully correct; wrong hints never cause errors, not even indirectly.
virtual void sample_count_hint([[maybe_unused]] size_t sample_count) { }
};
}

View file

@ -141,6 +141,9 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
return 1;
}
if (writer.has_value())
(*writer)->sample_count_hint(input_loader->total_samples());
if (output != "-"sv)
out("Writing: \033[s");