From 2465a7798a6440670eb0de72c6d29754d3f849eb Mon Sep 17 00:00:00 2001 From: Minje Ahn Date: Fri, 13 Dec 2024 10:06:55 +0900 Subject: [PATCH] Modify video thumbnail extraction Modified to extract only when a video thumbnail is requested. Change-Id: I19559f8b3ed3e1c22de48d600f6cc022b5f5b2bc Signed-off-by: Minje Ahn --- packaging/capi-media-metadata-extractor.spec | 2 +- src/metadata_extractor.c | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/packaging/capi-media-metadata-extractor.spec b/packaging/capi-media-metadata-extractor.spec index 009ec2f..d53b6e5 100644 --- a/packaging/capi-media-metadata-extractor.spec +++ b/packaging/capi-media-metadata-extractor.spec @@ -1,6 +1,6 @@ Name: capi-media-metadata-extractor Summary: A media metadata extractor library in Tizen Native API -Version: 0.2.1 +Version: 0.2.2 Release: 0 Group: Multimedia/API License: Apache-2.0 diff --git a/src/metadata_extractor.c b/src/metadata_extractor.c index 8aa1a2e..9cba6b6 100644 --- a/src/metadata_extractor.c +++ b/src/metadata_extractor.c @@ -29,7 +29,7 @@ typedef enum { static int __metadata_extractor_check_and_extract_meta(metadata_extractor_s *metadata, metadata_extractor_type_e metadata_type, bool extract_albumart); static int __metadata_extractor_get_stream_info(metadata_extractor_s *metadata, const char *path); -static int __metadata_extractor_create_content_attrs(metadata_extractor_s *metadata, const char *path); +static int __metadata_extractor_create_content_attrs(metadata_extractor_s *metadata, const char *path, bool extract_thumbnail); static int __metadata_extractor_create_tag_attr(metadata_extractor_s *metadata, const char *path, bool extract_albumart); static int __metadata_extractor_create_content_attrs_from_buffer(metadata_extractor_s *metadata, const void *buffer, int size); static int __metadata_extractor_create_tag_attrs_from_buffer(metadata_extractor_s *metadata, const void *buffer, int size, bool extract_albumart); @@ -82,7 +82,7 @@ static int __metadata_extractor_check_and_extract_meta(metadata_extractor_s *met else { metadata_extractor_debug("Extract Content attrs"); if (metadata->path != NULL) { - ret = __metadata_extractor_create_content_attrs(metadata, metadata->path); + ret = __metadata_extractor_create_content_attrs(metadata, metadata->path, extract_albumart); if (ret != METADATA_EXTRACTOR_ERROR_NONE) return ret; } else if (metadata->buffer != NULL) { @@ -153,12 +153,15 @@ static int __get_content_attrs(metadata_extractor_s *metadata, MMHandleType cont return METADATA_EXTRACTOR_ERROR_NONE; } -static int __metadata_extractor_create_content_attrs(metadata_extractor_s *metadata, const char *path) +static int __metadata_extractor_create_content_attrs(metadata_extractor_s *metadata, const char *path, bool extract_thumbnail) { int ret = METADATA_EXTRACTOR_ERROR_NONE; MMHandleType content = 0; - ret = mm_file_create_content_attrs(&content, path); + if (extract_thumbnail) + ret = mm_file_create_content_attrs(&content, path); + else + ret = mm_file_create_content_attrs_simple(&content, path); metadata_extractor_retvm_if(ret != FILEINFO_ERROR_NONE, __metadata_extractor_error_capi(ret), "Fail mm_file_create_content_attrs(%d)", ret); return __get_content_attrs(metadata, content); @@ -873,7 +876,13 @@ int metadata_extractor_get_frame(metadata_extractor_h metadata, void **frame, in metadata_extractor_retvm_if(!_metadata->path && !_metadata->buffer, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Invalid parameter"); metadata_extractor_retvm_if(!size, METADATA_EXTRACTOR_ERROR_INVALID_PARAMETER, "Invalid parameter"); - ret = __metadata_extractor_check_and_extract_meta(_metadata, METADATA_TYPE_ATTR, false); + // metadata_extractor_get_metadata() does not extract video thumbnail. So, re-create handle here. + if (_metadata->attr_h) { + mm_file_destroy_content_attrs(_metadata->attr_h); + _metadata->attr_h = NULL; + } + + ret = __metadata_extractor_check_and_extract_meta(_metadata, METADATA_TYPE_ATTR, true); if (ret != METADATA_EXTRACTOR_ERROR_NONE) return ret; -- 2.34.1