source.h 1.3 KB

1234567891011121314151617181920212223242526272829303132
  1. #include <stdlib.h>
  2. #include <stdint.h> // uintptr_t
  3. #include <vips/vips.h>
  4. #include <vips/connection.h>
  5. // vips async source
  6. typedef struct _VipsAsyncSource {
  7. VipsSource source; // class designator
  8. uintptr_t readerHandle; // async reader handler
  9. } VipsAsyncSource;
  10. // glib class for vips async source
  11. typedef struct _VipsAsyncSourceClass {
  12. VipsSourceClass parent_class;
  13. } VipsAsyncSourceClass;
  14. // vips async source read functions
  15. int vips_jpegload_source_go(VipsAsyncSource *source, int shrink, VipsImage **out);
  16. int vips_jxlload_source_go(VipsAsyncSource *source, int pages, VipsImage **out);
  17. int vips_pngload_source_go(VipsAsyncSource *source, VipsImage **out, int unlimited);
  18. int vips_webpload_source_go(VipsAsyncSource *source, double scale, int pages, VipsImage **out);
  19. int vips_gifload_source_go(VipsAsyncSource *source, int pages, VipsImage **out);
  20. int vips_svgload_source_go(VipsAsyncSource *source, double scale, VipsImage **out, int unlimited);
  21. int vips_heifload_source_go(VipsAsyncSource *source, VipsImage **out, int thumbnail);
  22. int vips_tiffload_source_go(VipsAsyncSource *source, VipsImage **out);
  23. // creates new vips async source from a reader handle
  24. VipsAsyncSource *vips_new_async_source(uintptr_t readerHandle);
  25. // unreferences the source, which leads to reader close
  26. void unref_source(VipsAsyncSource *source);