mirror of
https://github.com/webmproject/libwebp.git
synced 2025-07-14 21:09:55 +02:00
WebPMuxAssemble() returns WebPData*.
Also add an API 'WebPDataFree()' Change-Id: I00dc4c67fd78a541a18aaf0e65b8ef62d9769803
This commit is contained in:
@ -270,7 +270,8 @@ WebPMuxError WebPMuxSetImage(WebPMux* const mux,
|
||||
|
||||
// Add image chunk.
|
||||
ChunkInit(&chunk);
|
||||
err = ChunkAssignDataImageInfo(&chunk, &image_raw, NULL, copy_data, image_tag);
|
||||
err = ChunkAssignDataImageInfo(&chunk, &image_raw, NULL, copy_data,
|
||||
image_tag);
|
||||
if (err != WEBP_MUX_OK) return err;
|
||||
err = ChunkSetNth(&chunk, &wpi.img_, 1);
|
||||
if (err != WEBP_MUX_OK) return err;
|
||||
@ -645,7 +646,7 @@ static WebPMuxError CreateVP8XChunk(WebPMux* const mux) {
|
||||
}
|
||||
|
||||
WebPMuxError WebPMuxAssemble(WebPMux* const mux,
|
||||
uint8_t** output_data, size_t* output_size) {
|
||||
WebPData* const assembled_data) {
|
||||
size_t size = 0;
|
||||
uint8_t* data = NULL;
|
||||
uint8_t* dst = NULL;
|
||||
@ -653,13 +654,10 @@ WebPMuxError WebPMuxAssemble(WebPMux* const mux,
|
||||
int num_loop_chunks;
|
||||
WebPMuxError err;
|
||||
|
||||
if (mux == NULL || output_data == NULL || output_size == NULL) {
|
||||
if (mux == NULL || assembled_data == NULL) {
|
||||
return WEBP_MUX_INVALID_ARGUMENT;
|
||||
}
|
||||
|
||||
*output_data = NULL;
|
||||
*output_size = 0;
|
||||
|
||||
// Remove LOOP chunk if unnecessary.
|
||||
err = WebPMuxNumNamedElements(mux, kChunks[IDX_LOOP].name,
|
||||
&num_loop_chunks);
|
||||
@ -715,8 +713,8 @@ WebPMuxError WebPMuxAssemble(WebPMux* const mux,
|
||||
}
|
||||
|
||||
// Finalize.
|
||||
*output_data = data;
|
||||
*output_size = size;
|
||||
assembled_data->bytes_ = data;
|
||||
assembled_data->size_ = size;
|
||||
|
||||
return err;
|
||||
}
|
||||
|
@ -225,6 +225,16 @@ uint8_t* ChunkListEmit(const WebPChunk* chunk_list, uint8_t* dst) {
|
||||
return dst;
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Life of a WebPData object.
|
||||
|
||||
void WebPDataClear(WebPData* const webp_data) {
|
||||
if (webp_data != NULL) {
|
||||
free((void*)webp_data->bytes_);
|
||||
memset(webp_data, 0, sizeof(*webp_data));
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Life of a MuxImage object.
|
||||
|
||||
|
Reference in New Issue
Block a user