From: hj kim Date: Wed, 13 May 2020 07:16:40 +0000 (+0900) Subject: Improve __metadata_editor_get_picture_info() and User proper type for picture X-Git-Tag: accepted/tizen/unified/20200605.020426~17 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=156cd91f9757a82141b820bbceaaa42b903995d8;p=platform%2Fcore%2Fapi%2Fmetadata-editor.git Improve __metadata_editor_get_picture_info() and User proper type for picture Change-Id: Id81a6f64b2361d7c97b5fe95f02271b5e16af115 --- diff --git a/include/metadata_editor_private.h b/include/metadata_editor_private.h index 0359416..9a96ed3 100755 --- a/include/metadata_editor_private.h +++ b/include/metadata_editor_private.h @@ -18,12 +18,6 @@ #ifndef __TIZEN_MULTIMEDIA_METADATA_EDITOR_PRIVATE_H__ #define __TIZEN_MULTIMEDIA_METADATA_EDITOR_PRIVATE_H__ -#include -#include - -#include -#include - #include #ifdef __cplusplus @@ -34,7 +28,6 @@ extern "C" { #undef LOG_TAG #endif #define LOG_TAG "CAPI_MEDIA_METADATA_EDITOR" -#define META_SAFE_FREE(src) { if (src) {free(src); src = NULL; } } #define metadata_editor_debug(fmt, arg...) do { \ LOGD("" fmt "", ##arg); \ diff --git a/src/metadata_editor.cpp b/src/metadata_editor.cpp index 1c08288..ce94fca 100755 --- a/src/metadata_editor.cpp +++ b/src/metadata_editor.cpp @@ -620,43 +620,26 @@ static int __metadata_editor_get_picture_type(const char *path, char **type) return METADATA_EDITOR_ERROR_NOT_SUPPORTED; } -static int __metadata_editor_get_picture_info(const char *path, void **picture, size_t *size, char **type) +static int __metadata_editor_get_picture_info(const char *path, char **picture, size_t *size, char **type) { - int ret; + int ret = METADATA_EDITOR_ERROR_NONE; + GError *error = NULL; ret = __metadata_editor_get_picture_type(path, type); if (ret != METADATA_EDITOR_ERROR_NONE) - return METADATA_EDITOR_ERROR_OPERATION_FAILED; + return ret; - //IF ok.. read file - FILE *fin = fopen(path, "rb"); - size_t file_size = 0; - - if (fin) { - while (fgetc(fin) != EOF) - file_size++; - - fclose(fin); - char picture_buffer[file_size] = {0, }; - memset(picture_buffer, 0, file_size * sizeof(char)); - fin = fopen(path, "rb"); - if (fin) { - if(file_size != fread(picture_buffer, 1, file_size, fin)) { - metadata_editor_error("fread error"); - fclose(fin); - return METADATA_EDITOR_ERROR_OPERATION_FAILED; - } - fclose(fin); - } - if (*picture == NULL) { - *picture = malloc(file_size * sizeof(char)); - memset(*picture, 0, file_size * sizeof(char)); - memcpy(*picture, picture_buffer, file_size); - *size = file_size; - } + if (!g_file_get_contents(path, picture, size, &error)) { + metadata_editor_error("Unable to read [%s], error [%s]", path, error->message); + if (error->code == G_FILE_ERROR_NOENT || error->code == G_FILE_ERROR_ISDIR) + ret = METADATA_EDITOR_ERROR_FILE_EXISTS; + else + ret = METADATA_EDITOR_ERROR_PERMISSION_DENIED; + + g_error_free (error); } - return METADATA_EDITOR_ERROR_NONE; + return ret; } extern "C" int metadata_editor_create(metadata_editor_h *metadata) @@ -1397,7 +1380,7 @@ extern "C" int metadata_editor_get_picture(metadata_editor_h metadata, int index } } -static int __append_APIC(ID3v2::Tag *tag, void *picture, size_t size, const char *mime_type) +static int __append_APIC(ID3v2::Tag *tag, const char *picture, size_t size, const char *mime_type) { metadata_editor_retvm_if(!tag, METADATA_EDITOR_ERROR_OPERATION_FAILED, "Error. No ID3v2 tag in file."); @@ -1405,7 +1388,7 @@ static int __append_APIC(ID3v2::Tag *tag, void *picture, size_t size, const char metadata_editor_info("New APIC frame will be added to the ID3v2 tag"); - pictureFrame->setPicture(ByteVector((char*)picture, size)); + pictureFrame->setPicture(ByteVector(picture, size)); pictureFrame->setType(ID3v2::AttachedPictureFrame::FrontCover); pictureFrame->setMimeType(mime_type); @@ -1414,12 +1397,12 @@ static int __append_APIC(ID3v2::Tag *tag, void *picture, size_t size, const char return METADATA_EDITOR_ERROR_NONE; } -static int __append_mp3_picture(metadata_editor_s *metadata, void *picture ,size_t size, const char *mime_type) +static int __append_mp3_picture(metadata_editor_s *metadata, const char *picture ,size_t size, const char *mime_type) { return __append_APIC(dynamic_cast(metadata->file)->ID3v2Tag(true), picture, size, mime_type); } -static int __append_mp4_picture(metadata_editor_s *metadata, void *picture, size_t size, const char *mime_type) +static int __append_mp4_picture(metadata_editor_s *metadata, const char *picture, size_t size, const char *mime_type) { auto tag = dynamic_cast(metadata->file->tag()); metadata_editor_retvm_if(!tag, METADATA_EDITOR_ERROR_OPERATION_FAILED, "Tag does not exist"); @@ -1436,21 +1419,21 @@ static int __append_mp4_picture(metadata_editor_s *metadata, void *picture, size lst = tag->item("covr").toCoverArtList(); } - lst.append(MP4::CoverArt(format, ByteVector((char*)picture, size))); + lst.append(MP4::CoverArt(format, ByteVector(picture, size))); tag->setItem("covr", lst); return METADATA_EDITOR_ERROR_NONE; } #if 0 -static int __append_flac_picture(metadata_editor_s *metadata, void *picture, size_t size, const char *mime_type) +static int __append_flac_picture(metadata_editor_s *metadata, const char *picture, size_t size, const char *mime_type) { FLAC::File *_file = (FLAC::File*) metadata->file; auto frontCover = new FLAC::Picture; metadata_editor_debug_fenter(); - frontCover->setData(ByteVector((char*)picture, size)); + frontCover->setData(ByteVector(picture, size)); frontCover->setType(FLAC::Picture::FrontCover); frontCover->setMimeType(mime_type); @@ -1459,7 +1442,7 @@ static int __append_flac_picture(metadata_editor_s *metadata, void *picture, siz return METADATA_EDITOR_ERROR_NONE; } -static int __append_wav_picture(metadata_editor_s *metadata, void *picture, size_t size, const char *mime_type) +static int __append_wav_picture(metadata_editor_s *metadata, const char *picture, size_t size, const char *mime_type) { return __append_APIC(dynamic_cast(metadata->file->tag()), picture, size, mime_type); } @@ -1468,7 +1451,7 @@ static int __append_wav_picture(metadata_editor_s *metadata, void *picture, size extern "C" int metadata_editor_append_picture(metadata_editor_h metadata, const char *path) { int ret = METADATA_EDITOR_ERROR_NONE; - void *picture = NULL; + char *picture = NULL; size_t size = 0; char *mime_type = NULL; metadata_editor_s *_metadata = (metadata_editor_s*) metadata; @@ -1478,7 +1461,7 @@ extern "C" int metadata_editor_append_picture(metadata_editor_h metadata, const metadata_editor_retvm_if(!path, METADATA_EDITOR_ERROR_INVALID_PARAMETER, "Invalid path"); ret = __metadata_editor_get_picture_info(path, &picture, &size, &mime_type); - metadata_editor_retvm_if(ret != METADATA_EDITOR_ERROR_NONE, METADATA_EDITOR_ERROR_PERMISSION_DENIED, "File does not exist or you have no rights to open it"); + metadata_editor_retvm_if(ret != METADATA_EDITOR_ERROR_NONE, METADATA_EDITOR_ERROR_PERMISSION_DENIED, "File does not exist or you have no rights to open it"); //FixMe!. It should return proper error! switch (_metadata->filetype) { case METADATA_EDITOR_FORMAT_MP3: @@ -1505,7 +1488,7 @@ extern "C" int metadata_editor_append_picture(metadata_editor_h metadata, const } } - META_SAFE_FREE(picture); + g_free(picture); g_free(mime_type); return ret;