2 * Copyright 2014 Google Inc.
3 * Copyright 2015 Xamarin Inc.
4 * Copyright 2017 Microsoft Corporation. All rights reserved.
6 * Use of this source code is governed by a BSD-style license that can be
7 * found in the LICENSE file.
10 #ifndef sk_codec_DEFINED
11 #define sk_codec_DEFINED
15 SK_C_PLUS_PLUS_BEGIN_GUARD
17 SK_C_API size_t sk_codec_min_buffered_bytes_needed(void);
19 SK_C_API sk_codec_t* sk_codec_new_from_stream(sk_stream_t* stream);
20 SK_C_API sk_codec_t* sk_codec_new_from_data(sk_data_t* data);
21 SK_C_API void sk_codec_destroy(sk_codec_t* codec);
22 SK_C_API void sk_codec_get_info(sk_codec_t* codec, sk_imageinfo_t* info);
23 SK_C_API void sk_codec_get_encodedinfo(sk_codec_t* codec, sk_encodedinfo_t* info);
24 SK_C_API sk_codec_origin_t sk_codec_get_origin(sk_codec_t* codec);
25 SK_C_API void sk_codec_get_scaled_dimensions(sk_codec_t* codec, float desiredScale, sk_isize_t* dimensions);
26 SK_C_API bool sk_codec_get_valid_subset(sk_codec_t* codec, sk_irect_t* desiredSubset);
27 SK_C_API sk_encoded_image_format_t sk_codec_get_encoded_format(sk_codec_t* codec);
28 SK_C_API sk_codec_result_t sk_codec_get_pixels(sk_codec_t* codec, const sk_imageinfo_t* info, void* pixels, size_t rowBytes, const sk_codec_options_t* options, sk_pmcolor_t ctable[], int* ctableCount);
29 SK_C_API sk_codec_result_t sk_codec_get_pixels_using_defaults(sk_codec_t* codec, const sk_imageinfo_t* info, void* pixels, size_t rowBytes);
30 SK_C_API sk_codec_result_t sk_codec_start_incremental_decode(sk_codec_t* codec, const sk_imageinfo_t* info, void* pixels, size_t rowBytes, const sk_codec_options_t* options, sk_pmcolor_t ctable[], int* ctableCount);
31 SK_C_API sk_codec_result_t sk_codec_incremental_decode(sk_codec_t* codec, int* rowsDecoded);
32 SK_C_API sk_codec_result_t sk_codec_start_scanline_decode(sk_codec_t* codec, const sk_imageinfo_t* info, const sk_codec_options_t* options, sk_pmcolor_t ctable[], int* ctableCount);
33 SK_C_API int sk_codec_get_scanlines(sk_codec_t* codec, void* dst, int countLines, size_t rowBytes);
34 SK_C_API bool sk_codec_skip_scanlines(sk_codec_t* codec, int countLines);
35 SK_C_API sk_codec_scanline_order_t sk_codec_get_scanline_order(sk_codec_t* codec);
36 SK_C_API int sk_codec_next_scanline(sk_codec_t* codec);
37 SK_C_API int sk_codec_output_scanline(sk_codec_t* codec, int inputScanline);
38 SK_C_API int sk_codec_get_frame_count(sk_codec_t* codec);
39 SK_C_API void sk_codec_get_frame_info(sk_codec_t* codec, sk_codec_frameinfo_t* frameInfo);
40 SK_C_API int sk_codec_get_repetition_count(sk_codec_t* codec);
42 SK_C_PLUS_PLUS_END_GUARD