Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(241)

Side by Side Diff: third_party/libwebp/webp/encode.h

Issue 653803003: libwebp: update to 0.4.2-rc2 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/libwebp/webp/decode.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 Google Inc. All Rights Reserved. 1 // Copyright 2011 Google Inc. All Rights Reserved.
2 // 2 //
3 // Use of this source code is governed by a BSD-style license 3 // Use of this source code is governed by a BSD-style license
4 // that can be found in the COPYING file in the root of the source 4 // that can be found in the COPYING file in the root of the source
5 // tree. An additional intellectual property rights grant can be found 5 // tree. An additional intellectual property rights grant can be found
6 // in the file PATENTS. All contributing project authors may 6 // in the file PATENTS. All contributing project authors may
7 // be found in the AUTHORS file in the root of the source tree. 7 // be found in the AUTHORS file in the root of the source tree.
8 // ----------------------------------------------------------------------------- 8 // -----------------------------------------------------------------------------
9 // 9 //
10 // WebP encoder: main interface 10 // WebP encoder: main interface
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 struct WebPMemoryWriter { 224 struct WebPMemoryWriter {
225 uint8_t* mem; // final buffer (of size 'max_size', larger than 'size'). 225 uint8_t* mem; // final buffer (of size 'max_size', larger than 'size').
226 size_t size; // final size 226 size_t size; // final size
227 size_t max_size; // total capacity 227 size_t max_size; // total capacity
228 uint32_t pad[1]; // padding for later use 228 uint32_t pad[1]; // padding for later use
229 }; 229 };
230 230
231 // The following must be called first before any use. 231 // The following must be called first before any use.
232 WEBP_EXTERN(void) WebPMemoryWriterInit(WebPMemoryWriter* writer); 232 WEBP_EXTERN(void) WebPMemoryWriterInit(WebPMemoryWriter* writer);
233 233
234 #if WEBP_ENCODER_ABI_VERSION > 0x0202 234 #if WEBP_ENCODER_ABI_VERSION > 0x0203
235 // The following must be called to deallocate writer->mem memory. The 'writer' 235 // The following must be called to deallocate writer->mem memory. The 'writer'
236 // object itself is not deallocated. 236 // object itself is not deallocated.
237 WEBP_EXTERN(void) WebPMemoryWriterClear(WebPMemoryWriter* writer); 237 WEBP_EXTERN(void) WebPMemoryWriterClear(WebPMemoryWriter* writer);
238 #endif 238 #endif
239 // The custom writer to be used with WebPMemoryWriter as custom_ptr. Upon 239 // The custom writer to be used with WebPMemoryWriter as custom_ptr. Upon
240 // completion, writer.mem and writer.size will hold the coded data. 240 // completion, writer.mem and writer.size will hold the coded data.
241 #if WEBP_ENCODER_ABI_VERSION > 0x0202 241 #if WEBP_ENCODER_ABI_VERSION > 0x0203
242 // writer.mem must be freed by calling WebPMemoryWriterClear. 242 // writer.mem must be freed by calling WebPMemoryWriterClear.
243 #else 243 #else
244 // writer.mem must be freed by calling 'free(writer.mem)'. 244 // writer.mem must be freed by calling 'free(writer.mem)'.
245 #endif 245 #endif
246 WEBP_EXTERN(int) WebPMemoryWrite(const uint8_t* data, size_t data_size, 246 WEBP_EXTERN(int) WebPMemoryWrite(const uint8_t* data, size_t data_size,
247 const WebPPicture* picture); 247 const WebPPicture* picture);
248 248
249 // Progress hook, called from time to time to report progress. It can return 249 // Progress hook, called from time to time to report progress. It can return
250 // false to request an abort of the encoding process, or true otherwise if 250 // false to request an abort of the encoding process, or true otherwise if
251 // everything is OK. 251 // everything is OK.
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 WebPPicture* picture, const uint8_t* rgbx, int rgbx_stride); 439 WebPPicture* picture, const uint8_t* rgbx, int rgbx_stride);
440 440
441 // Variants of the above, but taking BGR(A|X) input. 441 // Variants of the above, but taking BGR(A|X) input.
442 WEBP_EXTERN(int) WebPPictureImportBGR( 442 WEBP_EXTERN(int) WebPPictureImportBGR(
443 WebPPicture* picture, const uint8_t* bgr, int bgr_stride); 443 WebPPicture* picture, const uint8_t* bgr, int bgr_stride);
444 WEBP_EXTERN(int) WebPPictureImportBGRA( 444 WEBP_EXTERN(int) WebPPictureImportBGRA(
445 WebPPicture* picture, const uint8_t* bgra, int bgra_stride); 445 WebPPicture* picture, const uint8_t* bgra, int bgra_stride);
446 WEBP_EXTERN(int) WebPPictureImportBGRX( 446 WEBP_EXTERN(int) WebPPictureImportBGRX(
447 WebPPicture* picture, const uint8_t* bgrx, int bgrx_stride); 447 WebPPicture* picture, const uint8_t* bgrx, int bgrx_stride);
448 448
449 // Converts picture->argb data to the YUVA format specified by 'colorspace'. 449 // Converts picture->argb data to the YUV420A format. The 'colorspace'
450 // parameter is deprecated and should be equal to WEBP_YUV420.
450 // Upon return, picture->use_argb is set to false. The presence of real 451 // Upon return, picture->use_argb is set to false. The presence of real
451 // non-opaque transparent values is detected, and 'colorspace' will be 452 // non-opaque transparent values is detected, and 'colorspace' will be
452 // adjusted accordingly. Note that this method is lossy. 453 // adjusted accordingly. Note that this method is lossy.
453 // Returns false in case of error. 454 // Returns false in case of error.
454 WEBP_EXTERN(int) WebPPictureARGBToYUVA(WebPPicture* picture, 455 WEBP_EXTERN(int) WebPPictureARGBToYUVA(WebPPicture* picture,
455 WebPEncCSP colorspace); 456 WebPEncCSP /*colorspace = WEBP_YUV420*/);
456 457
457 // Same as WebPPictureARGBToYUVA(), but the conversion is done using 458 // Same as WebPPictureARGBToYUVA(), but the conversion is done using
458 // pseudo-random dithering with a strength 'dithering' between 459 // pseudo-random dithering with a strength 'dithering' between
459 // 0.0 (no dithering) and 1.0 (maximum dithering). This is useful 460 // 0.0 (no dithering) and 1.0 (maximum dithering). This is useful
460 // for photographic picture. 461 // for photographic picture.
461 WEBP_EXTERN(int) WebPPictureARGBToYUVADithered( 462 WEBP_EXTERN(int) WebPPictureARGBToYUVADithered(
462 WebPPicture* picture, WebPEncCSP colorspace, float dithering); 463 WebPPicture* picture, WebPEncCSP colorspace, float dithering);
463 464
465 #if WEBP_ENCODER_ABI_VERSION > 0x0204
466 // Performs 'smart' RGBA->YUVA420 downsampling and colorspace conversion.
467 // Downsampling is handled with extra care in case of color clipping. This
468 // method is roughly 2x slower than WebPPictureARGBToYUVA() but produces better
469 // YUV representation.
470 // Returns false in case of error.
471 WEBP_EXTERN(int) WebPPictureSmartARGBToYUVA(WebPPicture* picture);
472 #endif
473
464 // Converts picture->yuv to picture->argb and sets picture->use_argb to true. 474 // Converts picture->yuv to picture->argb and sets picture->use_argb to true.
465 // The input format must be YUV_420 or YUV_420A. 475 // The input format must be YUV_420 or YUV_420A.
466 // Note that the use of this method is discouraged if one has access to the 476 // Note that the use of this method is discouraged if one has access to the
467 // raw ARGB samples, since using YUV420 is comparatively lossy. Also, the 477 // raw ARGB samples, since using YUV420 is comparatively lossy. Also, the
468 // conversion from YUV420 to ARGB incurs a small loss too. 478 // conversion from YUV420 to ARGB incurs a small loss too.
469 // Returns false in case of error. 479 // Returns false in case of error.
470 WEBP_EXTERN(int) WebPPictureYUVAToARGB(WebPPicture* picture); 480 WEBP_EXTERN(int) WebPPictureYUVAToARGB(WebPPicture* picture);
471 481
472 // Helper function: given a width x height plane of RGBA or YUV(A) samples 482 // Helper function: given a width x height plane of RGBA or YUV(A) samples
473 // clean-up the YUV or RGB samples under fully transparent area, to help 483 // clean-up the YUV or RGB samples under fully transparent area, to help
(...skipping 25 matching lines...) Expand all
499 // another is provided but they both incur some loss. 509 // another is provided but they both incur some loss.
500 WEBP_EXTERN(int) WebPEncode(const WebPConfig* config, WebPPicture* picture); 510 WEBP_EXTERN(int) WebPEncode(const WebPConfig* config, WebPPicture* picture);
501 511
502 //------------------------------------------------------------------------------ 512 //------------------------------------------------------------------------------
503 513
504 #ifdef __cplusplus 514 #ifdef __cplusplus
505 } // extern "C" 515 } // extern "C"
506 #endif 516 #endif
507 517
508 #endif /* WEBP_WEBP_ENCODE_H_ */ 518 #endif /* WEBP_WEBP_ENCODE_H_ */
OLDNEW
« no previous file with comments | « third_party/libwebp/webp/decode.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698