mirror of
https://github.com/webmproject/libwebp.git
synced 2025-09-21 10:12:01 +02:00
Mux: make a few methods static
Change-Id: I8a8b0b403116c89933e84c93502a8230026f819e
This commit is contained in:
@@ -43,9 +43,16 @@ static void DeleteAllChunks(WebPChunk** const chunk_list) {
|
||||
}
|
||||
}
|
||||
|
||||
// Delete all images in 'wpi_list'.
|
||||
static void DeleteAllImages(WebPMuxImage** const wpi_list) {
|
||||
while (*wpi_list != NULL) {
|
||||
*wpi_list = MuxImageDelete(*wpi_list);
|
||||
}
|
||||
}
|
||||
|
||||
static void MuxRelease(WebPMux* const mux) {
|
||||
if (mux == NULL) return;
|
||||
MuxImageDeleteAll(&mux->images_);
|
||||
DeleteAllImages(&mux->images_);
|
||||
DeleteAllChunks(&mux->vp8x_);
|
||||
DeleteAllChunks(&mux->iccp_);
|
||||
DeleteAllChunks(&mux->anim_);
|
||||
@@ -273,7 +280,7 @@ WebPMuxError WebPMuxSetImage(WebPMux* mux, const WebPData* bitstream,
|
||||
|
||||
if (mux->images_ != NULL) {
|
||||
// Only one 'simple image' can be added in mux. So, remove present images.
|
||||
MuxImageDeleteAll(&mux->images_);
|
||||
DeleteAllImages(&mux->images_);
|
||||
}
|
||||
|
||||
MuxImageInit(&wpi);
|
||||
@@ -630,6 +637,35 @@ static WebPMuxError MuxCleanup(WebPMux* const mux) {
|
||||
return WEBP_MUX_OK;
|
||||
}
|
||||
|
||||
// Total size of a list of chunks.
|
||||
static size_t ChunkListDiskSize(const WebPChunk* chunk_list) {
|
||||
size_t size = 0;
|
||||
while (chunk_list != NULL) {
|
||||
size += ChunkDiskSize(chunk_list);
|
||||
chunk_list = chunk_list->next_;
|
||||
}
|
||||
return size;
|
||||
}
|
||||
|
||||
// Total size of a list of images.
|
||||
static size_t ImageListDiskSize(const WebPMuxImage* wpi_list) {
|
||||
size_t size = 0;
|
||||
while (wpi_list != NULL) {
|
||||
size += MuxImageDiskSize(wpi_list);
|
||||
wpi_list = wpi_list->next_;
|
||||
}
|
||||
return size;
|
||||
}
|
||||
|
||||
// Write out the given list of images into 'dst'.
|
||||
static uint8_t* ImageListEmit(const WebPMuxImage* wpi_list, uint8_t* dst) {
|
||||
while (wpi_list != NULL) {
|
||||
dst = MuxImageEmit(wpi_list, dst);
|
||||
wpi_list = wpi_list->next_;
|
||||
}
|
||||
return dst;
|
||||
}
|
||||
|
||||
WebPMuxError WebPMuxAssemble(WebPMux* mux, WebPData* assembled_data) {
|
||||
size_t size = 0;
|
||||
uint8_t* data = NULL;
|
||||
@@ -647,10 +683,10 @@ WebPMuxError WebPMuxAssemble(WebPMux* mux, WebPData* assembled_data) {
|
||||
if (err != WEBP_MUX_OK) return err;
|
||||
|
||||
// Allocate data.
|
||||
size = ChunksListDiskSize(mux->vp8x_) + ChunksListDiskSize(mux->iccp_)
|
||||
+ ChunksListDiskSize(mux->anim_) + MuxImageListDiskSize(mux->images_)
|
||||
+ ChunksListDiskSize(mux->exif_) + ChunksListDiskSize(mux->xmp_)
|
||||
+ ChunksListDiskSize(mux->unknown_) + RIFF_HEADER_SIZE;
|
||||
size = ChunkListDiskSize(mux->vp8x_) + ChunkListDiskSize(mux->iccp_)
|
||||
+ ChunkListDiskSize(mux->anim_) + ImageListDiskSize(mux->images_)
|
||||
+ ChunkListDiskSize(mux->exif_) + ChunkListDiskSize(mux->xmp_)
|
||||
+ ChunkListDiskSize(mux->unknown_) + RIFF_HEADER_SIZE;
|
||||
|
||||
data = (uint8_t*)malloc(size);
|
||||
if (data == NULL) return WEBP_MUX_MEMORY_ERROR;
|
||||
@@ -660,7 +696,7 @@ WebPMuxError WebPMuxAssemble(WebPMux* mux, WebPData* assembled_data) {
|
||||
dst = ChunkListEmit(mux->vp8x_, dst);
|
||||
dst = ChunkListEmit(mux->iccp_, dst);
|
||||
dst = ChunkListEmit(mux->anim_, dst);
|
||||
dst = MuxImageListEmit(mux->images_, dst);
|
||||
dst = ImageListEmit(mux->images_, dst);
|
||||
dst = ChunkListEmit(mux->exif_, dst);
|
||||
dst = ChunkListEmit(mux->xmp_, dst);
|
||||
dst = ChunkListEmit(mux->unknown_, dst);
|
||||
|
Reference in New Issue
Block a user