diff --git a/src/mux/muxedit.c b/src/mux/muxedit.c index 0c4191e1..a486229c 100644 --- a/src/mux/muxedit.c +++ b/src/mux/muxedit.c @@ -306,6 +306,11 @@ WebPMuxError WebPMuxPushFrame(WebPMux* mux, const WebPMuxFrameInfo* frame, if (!(is_frame || (frame->id == WEBP_CHUNK_FRGM))) { return WEBP_MUX_INVALID_ARGUMENT; } +#ifndef WEBP_EXPERIMENTAL_FEATURES + if (frame->id == WEBP_CHUNK_FRGM) { // disabled for now. + return WEBP_MUX_INVALID_ARGUMENT; + } +#endif if (bitstream->bytes == NULL || bitstream->size > MAX_CHUNK_PAYLOAD) { return WEBP_MUX_INVALID_ARGUMENT; diff --git a/src/mux/muxread.c b/src/mux/muxread.c index 8a3ff12f..0e074fb2 100644 --- a/src/mux/muxread.c +++ b/src/mux/muxread.c @@ -223,7 +223,9 @@ WebPMux* WebPMuxCreateInternal(const WebPData* bitstream, int copy_data, MuxImageInit(wpi); // Reset for reading next image. break; case WEBP_CHUNK_ANMF: +#ifdef WEBP_EXPERIMENTAL_FEATURES case WEBP_CHUNK_FRGM: +#endif if (wpi->is_partial_) goto Err; // Previous wpi is still incomplete. if (!MuxImageParse(&chunk, copy_data, wpi)) goto Err; ChunkRelease(&chunk); @@ -378,6 +380,9 @@ static WebPMuxError MuxGetFrameFragmentInternal(const WebPMuxImage* const wpi, const int is_frame = (wpi->header_->tag_ == kChunks[IDX_ANMF].tag); const CHUNK_INDEX idx = is_frame ? IDX_ANMF : IDX_FRGM; const WebPData* frame_frgm_data; +#ifndef WEBP_EXPERIMENTAL_FEATURES + if (!is_frame) return WEBP_MUX_INVALID_ARGUMENT; +#endif assert(wpi->header_ != NULL); // Already checked by WebPMuxGetFrame(). // Get frame/fragment chunk. frame_frgm_data = &wpi->header_->data_;