return nullptr;
}
- whisper_model_loader loader = {
- .context = &fin,
-
- .read =
- [](void *ctx, void *output, size_t read_size) {
- std::ifstream *fin = (std::ifstream *)ctx;
- fin->read((char *)output, read_size);
- return read_size;
- },
-
- .eof =
- [](void *ctx) {
- std::ifstream *fin = (std::ifstream *)ctx;
- return fin->eof();
- },
-
- .close =
- [](void *ctx) {
- std::ifstream *fin = (std::ifstream *)ctx;
- fin->close();
- }
+ whisper_model_loader loader = {};
+
+ loader.read = [](void * ctx, void * output, size_t read_size) {
+ std::ifstream * fin = (std::ifstream*)ctx;
+ fin->read((char *)output, read_size);
+ return read_size;
+ };
+
+ loader.eof = [](void * ctx) {
+ std::ifstream * fin = (std::ifstream*)ctx;
+ return fin->eof();
+ };
+
+ loader.close = [](void * ctx) {
+ std::ifstream * fin = (std::ifstream*)ctx;
+ fin->close();
};
auto ctx = whisper_init_no_state(&loader);
fprintf(stderr, "%s: loading model from buffer\n", __func__);
- whisper_model_loader loader = {
- .context = &ctx,
+ whisper_model_loader loader = {};
- .read =
- [](void *ctx, void *output, size_t read_size) {
- buf_context *buf = reinterpret_cast<buf_context *>(ctx);
+ fprintf(stderr, "%s: loading model from buffer\n", __func__);
+
+ loader.context = &ctx;
- size_t size_to_copy = buf->current_offset + read_size < buf->size
- ? read_size
- : buf->size - buf->current_offset;
+ loader.read = [](void * ctx, void * output, size_t read_size) {
+ buf_context * buf = reinterpret_cast<buf_context *>(ctx);
- memcpy(output, buf->buffer + buf->current_offset, size_to_copy);
- buf->current_offset += size_to_copy;
+ size_t size_to_copy = buf->current_offset + read_size < buf->size ? read_size : buf->size - buf->current_offset;
- return size_to_copy;
- },
+ memcpy(output, buf->buffer + buf->current_offset, size_to_copy);
+ buf->current_offset += size_to_copy;
- .eof =
- [](void *ctx) {
- buf_context *buf = reinterpret_cast<buf_context *>(ctx);
+ return size_to_copy;
+ };
- return buf->current_offset >= buf->size;
- },
+ loader.eof = [](void * ctx) {
+ buf_context * buf = reinterpret_cast<buf_context *>(ctx);
+
+ return buf->current_offset >= buf->size;
+ };
- .close = [](void * /*ctx*/) {}};
+ loader.close = [](void * /*ctx*/) { };
return whisper_init_no_state(&loader);
}