AnimEncoder API: Init method for default options.

Change-Id: I3ccd7fe782e10c51986b55fc1a515d958ff70752
This commit is contained in:
Urvang Joshi 2015-01-07 14:32:11 -08:00
parent 856f8ec1fd
commit b9489861a3
2 changed files with 27 additions and 2 deletions

View File

@ -150,6 +150,16 @@ static void DefaultEncoderOptions(WebPAnimEncoderOptions* const enc_options) {
enc_options->verbose = 0; enc_options->verbose = 0;
} }
int WebPAnimEncoderOptionsInitInternal(WebPAnimEncoderOptions* enc_options,
int abi_version) {
if (enc_options == NULL ||
WEBP_ABI_IS_INCOMPATIBLE(abi_version, WEBP_MUX_ABI_VERSION)) {
return 0;
}
DefaultEncoderOptions(enc_options);
return 1;
}
#define TRANSPARENT_COLOR 0x00ffffff #define TRANSPARENT_COLOR 0x00ffffff
static void ClearRectangle(WebPPicture* const picture, static void ClearRectangle(WebPPicture* const picture,

View File

@ -399,9 +399,11 @@ WEBP_EXTERN(WebPMuxError) WebPMuxAssemble(WebPMux* mux,
// //
// Code Example: // Code Example:
/* /*
WebPAnimEncoder* enc = WebPAnimEncoderNew(width, height, enc_options); WebPAnimEncoderOptions enc_options;
WebPAnimEncoderOptionsInit(&enc_options);
WebPAnimEncoder* enc = WebPAnimEncoderNew(width, height, &enc_options);
while(<there are more frames>) { while(<there are more frames>) {
WebPAnimEncoderAdd(enc, frame, duration, config); WebPAnimEncoderAdd(enc, frame, duration, &config);
} }
WebPAnimEncoderAssemble(enc, webp_data); WebPAnimEncoderAssemble(enc, webp_data);
WebPAnimEncoderDelete(enc); WebPAnimEncoderDelete(enc);
@ -431,6 +433,19 @@ typedef struct {
uint32_t padding[4]; // Padding for later use. uint32_t padding[4]; // Padding for later use.
} WebPAnimEncoderOptions; } WebPAnimEncoderOptions;
// Internal, version-checked, entry point.
WEBP_EXTERN(int) WebPAnimEncoderOptionsInitInternal(
WebPAnimEncoderOptions*, int);
// Should always be called, to initialize a fresh WebPAnimEncoderOptions
// structure before modification. Returns false in case of version mismatch.
// WebPAnimEncoderOptionsInit() must have succeeded before using the 'options'
// object.
static WEBP_INLINE int WebPAnimEncoderOptionsInit(
WebPAnimEncoderOptions* enc_options) {
return WebPAnimEncoderOptionsInitInternal(enc_options, WEBP_MUX_ABI_VERSION);
}
// Internal, version-checked, entry point. // Internal, version-checked, entry point.
WEBP_EXTERN(WebPAnimEncoder*) WebPAnimEncoderNewInternal( WEBP_EXTERN(WebPAnimEncoder*) WebPAnimEncoderNewInternal(
int, int, const WebPAnimEncoderOptions*, int); int, int, const WebPAnimEncoderOptions*, int);