@@ -684,37 +684,25 @@ Java_com_radzivon_bartoshyk_avif_coder_HeifCoder_decodeImpl(JNIEnv *env, jobject
684684 if (hasICC) {
685685 convertUseDefinedColorSpace (dstARGB, stride, imageWidth, imageHeight, profile.data (),
686686 profile.size (),
687- useBitmapHalf16Floats);
688- colorSpaceName = " SRGB" ;
689- } else if (colorSpaceName && strcmp (colorSpaceName, " BT2020_PQ" ) == 0 &&
690- osVersion < colorSpaceRequiredVersion) {
687+ useBitmapHalf16Floats, &stride);
688+ } else if (colorSpaceName && strcmp (colorSpaceName, " BT2020_PQ" ) == 0 ) {
691689 convertUseDefinedColorSpace (dstARGB, stride, imageWidth, imageHeight, &bt2020PQ[0 ],
692690 sizeof (bt2020PQ),
693- useBitmapHalf16Floats);
694- colorSpaceName = " SRGB" ;
695- colorSpaceRequiredVersion = 29 ;
696- } else if (colorSpaceName && strcmp (colorSpaceName, " BT2020" ) == 0 &&
697- osVersion < colorSpaceRequiredVersion) {
691+ useBitmapHalf16Floats, &stride);
692+ } else if (colorSpaceName && strcmp (colorSpaceName, " BT2020" ) == 0 ) {
698693 convertUseDefinedColorSpace (dstARGB, stride, imageWidth, imageHeight, &bt2020[0 ],
699694 sizeof (bt2020),
700- useBitmapHalf16Floats);
701- colorSpaceName = " SRGB" ;
702- } else if (colorSpaceName && strcmp (colorSpaceName, " DISPLAY_P3" ) == 0 &&
703- osVersion < colorSpaceRequiredVersion) {
695+ useBitmapHalf16Floats, &stride);
696+ } else if (colorSpaceName && strcmp (colorSpaceName, " DISPLAY_P3" ) == 0 ) {
704697 convertUseDefinedColorSpace (dstARGB, stride, imageWidth, imageHeight, &displayP3[0 ],
705698 sizeof (displayP3),
706- useBitmapHalf16Floats);
707- colorSpaceName = " SRGB" ;
708- } else if (colorSpaceName && strcmp (colorSpaceName, " LINEAR_SRGB" ) == 0 &&
709- osVersion < colorSpaceRequiredVersion) {
699+ useBitmapHalf16Floats, &stride);
700+ } else if (colorSpaceName && strcmp (colorSpaceName, " LINEAR_SRGB" ) == 0 ) {
710701 convertUseDefinedColorSpace (dstARGB, stride, imageWidth, imageHeight, &linearSRGB[0 ],
711- sizeof (linearSRGB), useBitmapHalf16Floats);
712- colorSpaceName = " SRGB" ;
713- } else if (colorSpaceName && strcmp (colorSpaceName, " BT709" ) == 0 &&
714- osVersion < colorSpaceRequiredVersion) {
702+ sizeof (linearSRGB), useBitmapHalf16Floats, &stride);
703+ } else if (colorSpaceName && strcmp (colorSpaceName, " BT709" ) == 0 ) {
715704 convertUseDefinedColorSpace (dstARGB, stride, imageWidth, imageHeight, &bt709[0 ],
716- sizeof (bt709), useBitmapHalf16Floats);
717- colorSpaceName = " SRGB" ;
705+ sizeof (bt709), useBitmapHalf16Floats, &stride);
718706 }
719707
720708 if (!alphaPremultiplied) {
@@ -754,26 +742,5 @@ Java_com_radzivon_bartoshyk_avif_coder_HeifCoder_decodeImpl(JNIEnv *env, jobject
754742 return static_cast <jobject>(nullptr );
755743 }
756744
757- if ((dataSpace != -1 || colorSpaceName != nullptr ) && osVersion >= 29 ) {
758- if (osVersion >= colorSpaceRequiredVersion) {
759- jclass cls = env->FindClass (" android/graphics/ColorSpace" );
760- jmethodID staticMethodGetColorSpace = env->GetStaticMethodID (cls, " get" ,
761- " (Landroid/graphics/ColorSpace$Named;)Landroid/graphics/ColorSpace;" );
762- jclass colorSpaceNameCls = env->FindClass (" android/graphics/ColorSpace$Named" );
763- jfieldID colorSpaceNameFieldID = env->GetStaticFieldID (colorSpaceNameCls,
764- colorSpaceName,
765- " Landroid/graphics/ColorSpace$Named;" );
766- jobject colorSpaceNameObj = env->GetStaticObjectField (colorSpaceNameCls,
767- colorSpaceNameFieldID);
768- jobject colorSpace = env->CallStaticObjectMethod (cls, staticMethodGetColorSpace,
769- colorSpaceNameObj);
770- jmethodID setColorSpaceMethod = env->GetMethodID (bitmapClass, " setColorSpace" ,
771- " (Landroid/graphics/ColorSpace;)V" );
772- if (setColorSpaceMethod) {
773- env->CallVoidMethod (bitmapObj, setColorSpaceMethod, colorSpace);
774- }
775- }
776- }
777-
778745 return bitmapObj;
779746}
0 commit comments