Skip to content

Commit

Permalink
Remove 'EXPERIMENTAL' from AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CON…
Browse files Browse the repository at this point in the history
…VERSION.
  • Loading branch information
maryla-uc committed Dec 10, 2024
1 parent 2602d14 commit c4f7bac
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 26 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ The changes are relative to the previous release, unless the baseline is specifi
utility functions.
* Turn on the gain map API. Remove the
AVIF_ENABLE_EXPERIMENTAL_GAIN_MAP compile flag.
Rename AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION to
AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION.

## [1.1.1] - 2024-07-30

Expand Down
6 changes: 3 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -665,8 +665,8 @@ if(AVIF_BUILD_APPS OR (AVIF_BUILD_TESTS AND (AVIF_ENABLE_FUZZTEST OR AVIF_ENABLE
endif()

if(TARGET LibXml2::LibXml2)
set(AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION TRUE)
add_compile_definitions(AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION)
set(AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION TRUE)
add_compile_definitions(AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION)
else()
message(STATUS "libavif: libxml2 not found; avifenc will ignore any gain map in jpeg files")
endif()
Expand All @@ -681,7 +681,7 @@ if(AVIF_BUILD_APPS OR (AVIF_BUILD_TESTS AND (AVIF_ENABLE_FUZZTEST OR AVIF_ENABLE
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
target_link_libraries(avif_apps${suffix} PRIVATE m)
endif()
if(AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION)
if(AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION)
target_link_libraries(avif_apps${suffix} PRIVATE LibXml2::LibXml2)
endif()
target_include_directories(avif_apps${suffix} INTERFACE apps/shared)
Expand Down
20 changes: 10 additions & 10 deletions apps/avifenc.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ typedef struct
avifBool ignoreXMP;
avifBool ignoreColorProfile;

// These settings are only relevant when compiled with AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION.
// These settings are only relevant when compiled with AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION.
avifBool qualityGainMapIsConstrained; // true if qualityGainMap explicitly set by the user
int qualityGainMap;
avifBool ignoreGainMap; // ignore any gain map present in the input file.
Expand Down Expand Up @@ -239,7 +239,7 @@ static void syntaxLong(void)
printf(" --ignore-exif : If the input file contains embedded Exif metadata, ignore it (no-op if absent)\n");
printf(" --ignore-xmp : If the input file contains embedded XMP metadata, ignore it (no-op if absent)\n");
printf(" --ignore-profile,--ignore-icc : If the input file contains an embedded color profile, ignore it (no-op if absent)\n");
#if defined(AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION)
#if defined(AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION)
printf(" --ignore-gain-map : If the input file contains an embedded gain map, ignore it (no-op if absent)\n");
printf(" --qgain-map Q : Set quality for the gain map (%d-%d, where %d is lossless)\n",
AVIF_QUALITY_WORST,
Expand Down Expand Up @@ -524,7 +524,7 @@ static avifBool avifInputReadImage(avifInput * input,
if (avifImageSetViewRect(image, cached->image, &rect) != AVIF_RESULT_OK) {
assert(AVIF_FALSE);
}
#if defined(AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION)
#if defined(AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION)
if (cached->image->gainMap && cached->image->gainMap->image) {
image->gainMap->image = avifImageCreateEmpty();
const avifCropRect gainMapRect = { 0, 0, cached->image->gainMap->image->width, cached->image->gainMap->image->height };
Expand Down Expand Up @@ -1142,7 +1142,7 @@ static avifBool avifEncodeImagesFixedQuality(const avifSettings * settings,
if (settings->overrideQualityAlpha != INVALID_QUALITY) {
encoder->qualityAlpha = settings->overrideQualityAlpha;
}
#if defined(AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION)
#if defined(AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION)
if (settings->qualityGainMap != INVALID_QUALITY) {
encoder->qualityGainMap = settings->qualityGainMap;
}
Expand All @@ -1156,7 +1156,7 @@ static avifBool avifEncodeImagesFixedQuality(const avifSettings * settings,
snprintf(speedStr, sizeof(speedStr), "%d", settings->speed);
}
char gainMapStr[100] = { 0 };
#if defined(AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION)
#if defined(AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION)
if (firstImage->gainMap && firstImage->gainMap->image) {
snprintf(gainMapStr, sizeof(gainMapStr), ", gain map quality [%d (%s)]", encoder->qualityGainMap, qualityString(encoder->qualityGainMap));
}
Expand Down Expand Up @@ -1240,7 +1240,7 @@ static avifBool avifEncodeImagesFixedQuality(const avifSettings * settings,
success = AVIF_TRUE;
byteSizes->colorSizeBytes = encoder->ioStats.colorOBUSize;
byteSizes->alphaSizeBytes = encoder->ioStats.alphaOBUSize;
#if defined(AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION)
#if defined(AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION)
byteSizes->gainMapSizeBytes = avifEncoderGetGainMapSizeBytes(encoder);
#endif

Expand Down Expand Up @@ -1268,7 +1268,7 @@ static avifBool avifEncodeImages(avifSettings * settings,

avifBool hasGainMap = AVIF_FALSE;
avifBool allQualitiesConstrained = settings->qualityIsConstrained && settings->qualityAlphaIsConstrained;
#if defined(AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION)
#if defined(AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION)
hasGainMap = (firstImage->gainMap && firstImage->gainMap->image);
if (hasGainMap) {
allQualitiesConstrained = allQualitiesConstrained && settings->qualityGainMapIsConstrained;
Expand Down Expand Up @@ -1813,7 +1813,7 @@ int main(int argc, char * argv[])
settings.ignoreXMP = AVIF_TRUE;
} else if (!strcmp(arg, "--ignore-profile") || !strcmp(arg, "--ignore-icc")) {
settings.ignoreColorProfile = AVIF_TRUE;
#if defined(AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION)
#if defined(AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION)
} else if (!strcmp(arg, "--ignore-gain-map")) {
settings.ignoreGainMap = AVIF_TRUE;
} else if (!strcmp(arg, "--qgain-map")) {
Expand Down Expand Up @@ -2252,7 +2252,7 @@ int main(int argc, char * argv[])
image->transferCharacteristics = AVIF_TRANSFER_CHARACTERISTICS_SRGB;
}

#if defined(AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION)
#if defined(AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION)
if (image->gainMap && !image->gainMap->altICC.size) {
if (image->gainMap->altColorPrimaries == AVIF_COLOR_PRIMARIES_UNSPECIFIED) {
// Assume the alternate image has the same primaries as the base image.
Expand All @@ -2263,7 +2263,7 @@ int main(int argc, char * argv[])
image->gainMap->altTransferCharacteristics = AVIF_TRANSFER_CHARACTERISTICS_PQ;
}
}
#endif // AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION
#endif // AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION

if (settings.paspPresent) {
image->transformFlags |= AVIF_TRANSFORM_PASP;
Expand Down
12 changes: 6 additions & 6 deletions apps/shared/avifjpeg.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

#include "iccjpeg.h"

#if defined(AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION)
#if defined(AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION)
#include <libxml/parser.h>
#endif

Expand Down Expand Up @@ -286,7 +286,7 @@ static const uint8_t * avifJPEGFindSubstr(const uint8_t * str, size_t strLength,
return AVIF_FALSE; \
} while (0)

#if defined(AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION)
#if defined(AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION)

// Reads a 4-byte unsigned integer in little-endian format from the raw bitstream src.
static uint32_t avifJPEGReadUint32LittleEndian(const uint8_t * src)
Expand Down Expand Up @@ -833,7 +833,7 @@ static avifBool avifJPEGExtractGainMapImage(FILE * f,
}
return AVIF_FALSE;
}
#endif // AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION
#endif // AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION

// Note on setjmp() and volatile variables:
//
Expand Down Expand Up @@ -1023,7 +1023,7 @@ static avifBool avifJPEGReadInternal(FILE * f,
}

avifBool readXMP = !ignoreXMP;
#if defined(AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION)
#if defined(AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION)
readXMP = readXMP || !ignoreGainMap; // Gain map metadata is in XMP.
#endif
if (readXMP) {
Expand Down Expand Up @@ -1172,7 +1172,7 @@ static avifBool avifJPEGReadInternal(FILE * f,
avifImageFixXMP(avif); // Remove one trailing null character if any.
}

#if defined(AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION)
#if defined(AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION)
// The primary XMP block (for the main image) must contain a node with an hdrgm:Version field if and only if a gain map is present.
if (!ignoreGainMap && avifJPEGHasGainMapXMPNode(avif->xmp.data, avif->xmp.size)) {
avifGainMap * gainMap = avifGainMapCreate();
Expand Down Expand Up @@ -1209,7 +1209,7 @@ static avifBool avifJPEGReadInternal(FILE * f,
assert(AVIF_FALSE);
}
}
#endif // AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION
#endif // AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION
jpeg_finish_decompress(&cinfo);
ret = AVIF_TRUE;
cleanup:
Expand Down
4 changes: 2 additions & 2 deletions apps/shared/avifjpeg.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ extern "C" {
// At most sizeLimit pixels will be read or an error returned. At most sizeLimit
// bytes of Exif or XMP metadata will be read or an error returned.
// 'ignoreGainMap' is only relevant for jpeg files that have a gain map
// and only if AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION is ON
// and only if AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION is ON
// (requires libxml2). Otherwise it has no effect.
avifBool avifJPEGRead(const char * inputFilename,
avifImage * avif,
Expand All @@ -28,7 +28,7 @@ avifBool avifJPEGRead(const char * inputFilename,
uint32_t sizeLimit);
avifBool avifJPEGWrite(const char * outputFilename, const avifImage * avif, int jpegQuality, avifChromaUpsampling chromaUpsampling);

#if defined(AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION)
#if defined(AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION)
// Parses XMP gain map metadata. Visible for testing.
avifBool avifJPEGParseGainMapXMP(const uint8_t * xmpData, size_t xmpSize, avifGainMap * gainMap);
#endif
Expand Down
2 changes: 1 addition & 1 deletion apps/shared/avifutil.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ struct y4mFrameIterator;
// In case of a y4m file, sourceTiming and frameIter can be set.
// Returns AVIF_APP_FILE_FORMAT_UNKNOWN in case of error.
// 'ignoreGainMap' is only relevant for jpeg files that have a gain map
// and only if AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION is ON
// and only if AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION is ON
// (requires libxml2). Otherwise it has no effect.
avifAppFileFormat avifReadImage(const char * filename,
avifPixelFormat requestedFormat,
Expand Down
8 changes: 4 additions & 4 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ if(AVIF_ENABLE_GTEST)
add_avif_gtest_with_data(avifencodetest)
add_avif_internal_gtest_with_data(avifgainmaptest avifincrtest_helpers_internal)

if(AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION)
if(AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION)
add_avif_gtest_with_data(avifjpeggainmaptest)
endif()

Expand Down Expand Up @@ -263,7 +263,7 @@ if(AVIF_BUILD_APPS)
${CMAKE_CURRENT_SOURCE_DIR}/data
)

if(AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION)
if(AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION)
add_test(NAME test_cmd_avifgainmaputil COMMAND bash ${CMAKE_CURRENT_SOURCE_DIR}/test_cmd_avifgainmaputil.sh
${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/data
)
Expand All @@ -284,7 +284,7 @@ if(AVIF_BUILD_APPS)
${CMAKE_CURRENT_SOURCE_DIR}/data ${GOLDEN_TESTS_OUTPUT_DIR}
)

if(AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION)
if(AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION)
add_test(NAME test_cmd_gainmap COMMAND bash ${CMAKE_CURRENT_SOURCE_DIR}/test_cmd_gainmap.sh ${CMAKE_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/data
)
Expand Down Expand Up @@ -367,7 +367,7 @@ if(AVIF_CODEC_AVM_ENABLED)
set_tests_properties(avifminitest PROPERTIES DISABLED True)
endif()
set_tests_properties(avifgainmaptest PROPERTIES DISABLED True)
if(AVIF_ENABLE_EXPERIMENTAL_JPEG_GAIN_MAP_CONVERSION)
if(AVIF_ENABLE_JPEG_GAIN_MAP_CONVERSION)
set_tests_properties(avifjpeggainmaptest PROPERTIES DISABLED True)
endif()
if(AVIF_ENABLE_EXPERIMENTAL_SAMPLE_TRANSFORM)
Expand Down

0 comments on commit c4f7bac

Please sign in to comment.