Updating Xamarin/Microsoft file headers
[platform/upstream/libSkiaSharp.git] / include / c / sk_codec.h
1 /*
2  * Copyright 2014 Google Inc.
3  * Copyright 2015 Xamarin Inc.
4  * Copyright 2017 Microsoft Corporation. All rights reserved.
5  *
6  * Use of this source code is governed by a BSD-style license that can be
7  * found in the LICENSE file.
8  */
9
10 #ifndef sk_codec_DEFINED
11 #define sk_codec_DEFINED
12
13 #include "sk_types.h"
14
15 SK_C_PLUS_PLUS_BEGIN_GUARD
16
17 SK_C_API size_t sk_codec_min_buffered_bytes_needed(void);
18
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);
41
42 SK_C_PLUS_PLUS_END_GUARD
43
44 #endif