@@ -271,32 +271,6 @@ static aom_img_fmt_t avifImageCalcAOMFmt(const avifImage * image, avifBool alpha
271271 return fmt ;
272272}
273273
274- static avifBool aomOptionParseInt (const char * str , int * val )
275- {
276- char * endptr ;
277- const long rawval = strtol (str , & endptr , 10 );
278-
279- if (str [0 ] != '\0' && endptr [0 ] == '\0' && rawval >= INT_MIN && rawval <= INT_MAX ) {
280- * val = (int )rawval ;
281- return AVIF_TRUE ;
282- }
283-
284- return AVIF_FALSE ;
285- }
286-
287- static avifBool aomOptionParseUInt (const char * str , unsigned int * val )
288- {
289- char * endptr ;
290- const unsigned long rawval = strtoul (str , & endptr , 10 );
291-
292- if (str [0 ] != '\0' && endptr [0 ] == '\0' && rawval <= UINT_MAX ) {
293- * val = (unsigned int )rawval ;
294- return AVIF_TRUE ;
295- }
296-
297- return AVIF_FALSE ;
298- }
299-
300274struct aomOptionEnumList
301275{
302276 const char * name ;
@@ -367,50 +341,6 @@ static avifBool avifProcessAOMOptionsPreInit(avifCodec * codec, avifBool alpha,
367341 return AVIF_TRUE ;
368342}
369343
370- typedef enum
371- {
372- AVIF_AOM_OPTION_NUL = 0 ,
373- AVIF_AOM_OPTION_STR ,
374- AVIF_AOM_OPTION_INT ,
375- AVIF_AOM_OPTION_UINT ,
376- AVIF_AOM_OPTION_ENUM ,
377- } aomOptionType ;
378-
379- struct aomOptionDef
380- {
381- const char * name ;
382- int controlId ;
383- aomOptionType type ;
384- // If type is AVIF_AOM_OPTION_ENUM, this must be set. Otherwise should be NULL.
385- const struct aomOptionEnumList * enums ;
386- };
387-
388- static const struct aomOptionEnumList tuningEnum [] = { //
389- { "psnr" , AOM_TUNE_PSNR }, //
390- { "ssim" , AOM_TUNE_SSIM }, //
391- { NULL , 0 }
392- };
393-
394- static const struct aomOptionDef aomOptionDefs [] = {
395- // Adaptive quantization mode
396- { "aq-mode" , AV1E_SET_AQ_MODE , AVIF_AOM_OPTION_UINT , NULL },
397- // Constant/Constrained Quality level
398- { "qp-level" , AOME_SET_QP , AVIF_AOM_OPTION_UINT , NULL },
399- // Enable delta quantization in chroma planes
400- { "enable-chroma-deltaq" , AV1E_SET_ENABLE_CHROMA_DELTAQ , AVIF_AOM_OPTION_INT , NULL },
401- // Bias towards block sharpness in rate-distortion optimization of transform coefficients
402- { "sharpness" , AOME_SET_SHARPNESS , AVIF_AOM_OPTION_UINT , NULL },
403- // Tune distortion metric
404- { "tune" , AOME_SET_TUNING , AVIF_AOM_OPTION_ENUM , tuningEnum },
405- // Film grain test vector
406- { "film-grain-test" , AV1E_SET_FILM_GRAIN_TEST_VECTOR , AVIF_AOM_OPTION_INT , NULL },
407- // Film grain table file
408- { "film-grain-table" , AV1E_SET_FILM_GRAIN_TABLE , AVIF_AOM_OPTION_STR , NULL },
409-
410- // Sentinel
411- { NULL , 0 , AVIF_AOM_OPTION_NUL , NULL }
412- };
413-
414344static avifBool avifProcessAOMOptionsPostInit (avifCodec * codec , avifBool alpha )
415345{
416346 for (uint32_t i = 0 ; i < codec -> csOptions -> count ; ++ i ) {
@@ -451,46 +381,6 @@ static avifBool avifProcessAOMOptionsPostInit(avifCodec * codec, avifBool alpha)
451381 if (!strcmp (key , "tune" )) {
452382 codec -> internal -> tuningSet = AVIF_TRUE ;
453383 }
454-
455- avifBool match = AVIF_FALSE ;
456- for (int j = 0 ; aomOptionDefs [j ].name ; ++ j ) {
457- if (avifKeyEqualsName (entry -> key , aomOptionDefs [j ].name , alpha )) {
458- match = AVIF_TRUE ;
459- avifBool success = AVIF_FALSE ;
460- int valInt ;
461- unsigned int valUInt ;
462- switch (aomOptionDefs [j ].type ) {
463- case AVIF_AOM_OPTION_NUL :
464- success = AVIF_FALSE ;
465- break ;
466- case AVIF_AOM_OPTION_STR :
467- success = aom_codec_control (& codec -> internal -> encoder , aomOptionDefs [j ].controlId , entry -> value ) == AOM_CODEC_OK ;
468- break ;
469- case AVIF_AOM_OPTION_INT :
470- success = aomOptionParseInt (entry -> value , & valInt ) &&
471- aom_codec_control (& codec -> internal -> encoder , aomOptionDefs [j ].controlId , valInt ) == AOM_CODEC_OK ;
472- break ;
473- case AVIF_AOM_OPTION_UINT :
474- success = aomOptionParseUInt (entry -> value , & valUInt ) &&
475- aom_codec_control (& codec -> internal -> encoder , aomOptionDefs [j ].controlId , valUInt ) == AOM_CODEC_OK ;
476- break ;
477- case AVIF_AOM_OPTION_ENUM :
478- success = aomOptionParseEnum (entry -> value , aomOptionDefs [j ].enums , & valInt ) &&
479- aom_codec_control (& codec -> internal -> encoder , aomOptionDefs [j ].controlId , valInt ) == AOM_CODEC_OK ;
480- break ;
481- }
482- if (!success ) {
483- return AVIF_FALSE ;
484- }
485- if (aomOptionDefs [j ].controlId == AOME_SET_TUNING ) {
486- codec -> internal -> tuningSet = AVIF_TRUE ;
487- }
488- break ;
489- }
490- }
491- if (!match ) {
492- return AVIF_FALSE ;
493- }
494384 }
495385 return AVIF_TRUE ;
496386}
0 commit comments