Print error log if we fail to save file 22/301422/1
authorEunki, Hong <eunkiki.hong@samsung.com>
Wed, 15 Nov 2023 11:55:46 +0000 (20:55 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Wed, 15 Nov 2023 12:02:43 +0000 (21:02 +0900)
There was some unknown issue comes when we try to call EncodedToFile API.

To resolve it, let we print error log if we got failed

Change-Id: If17a7d889244f7c1076ed1529133e32a3d224c64
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
dali/internal/imaging/common/loader-jpeg-turbo.cpp
dali/internal/imaging/common/loader-png.cpp
dali/internal/legacy/common/tizen-platform-abstraction.cpp

index 2911341..cfb8fde 100644 (file)
@@ -1032,7 +1032,7 @@ bool EncodeToJpeg(const uint8_t* const pixelBuffer, Vector<uint8_t>& encodedPixe
     }
     default:
     {
-      DALI_LOG_ERROR("Unsupported pixel format for encoding to JPEG.\n");
+      DALI_LOG_ERROR("Unsupported pixel format for encoding to JPEG. Format enum : [%d]\n", pixelFormat);
       return false;
     }
   }
index f482372..9c6d4f1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -436,7 +436,7 @@ bool EncodeToPng(const unsigned char* const pixelBuffer, Vector<unsigned char>&
     }
     default:
     {
-      DALI_LOG_ERROR("Unsupported pixel format for encoding to PNG.\n");
+      DALI_LOG_ERROR("Unsupported pixel format for encoding to PNG. Format enum : [%d]\n", pixelFormat);
       return false;
     }
   }
@@ -444,14 +444,16 @@ bool EncodeToPng(const unsigned char* const pixelBuffer, Vector<unsigned char>&
   const int interlace = PNG_INTERLACE_NONE;
 
   png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
-  if(!png_ptr)
+  if(DALI_UNLIKELY(!png_ptr))
   {
+    DALI_LOG_ERROR("Fail to create png_structp for png version" PNG_LIBPNG_VER_STRING "\n");
     return false;
   }
   /* Allocate/initialize the image information data.  REQUIRED */
   png_infop info_ptr = png_create_info_struct(png_ptr);
-  if(!info_ptr)
+  if(DALI_UNLIKELY(!info_ptr))
   {
+    DALI_LOG_ERROR("Fail to create png_infop\n");
     png_destroy_write_struct(&png_ptr, NULL);
     return false;
   }
@@ -459,8 +461,9 @@ bool EncodeToPng(const unsigned char* const pixelBuffer, Vector<unsigned char>&
   /* Set error handling.  REQUIRED if you aren't supplying your own
    * error handling functions in the png_create_write_struct() call.
    */
-  if(setjmp(png_jmpbuf(png_ptr)))
+  if(DALI_UNLIKELY(setjmp(png_jmpbuf(png_ptr))))
   {
+    DALI_LOG_ERROR("Fail to png_jmpbuf\n");
     png_destroy_write_struct(&png_ptr, &info_ptr);
     return false;
   }
index 89a44c3..75d85a7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -269,6 +269,16 @@ bool SaveFile(const std::string& filename, const unsigned char* buffer, unsigned
     {
       result = true;
     }
+    else
+    {
+      const int bufferLength = 128;
+      char      buffer[bufferLength];
+
+      // Return type of stderror_r is different between system type. We should not use return value.
+      [[maybe_unused]] auto ret = strerror_r(errno, buffer, bufferLength - 1);
+
+      DALI_LOG_ERROR("Can't write to %s: buffer length : %d, error message : [%s]\n", filename.c_str(), length, buffer);
+    }
   }
 
   return result;