Modify video thumbnail extraction 22/316322/5 accepted/tizen_unified_x_asan accepted/tizen/unified/20241216.010859 accepted/tizen/unified/x/20241218.032905 accepted/tizen/unified/x/asan/20241224.004639
authorMinje Ahn <minje.ahn@samsung.com>
Fri, 13 Dec 2024 01:06:55 +0000 (10:06 +0900)
committerMinje Ahn <minje.ahn@samsung.com>
Fri, 13 Dec 2024 05:05:37 +0000 (14:05 +0900)
Modified to extract only when a video thumbnail is requested.

Change-Id: I19559f8b3ed3e1c22de48d600f6cc022b5f5b2bc
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
packaging/capi-media-metadata-extractor.spec
src/metadata_extractor.c

index 009ec2f6b985e5145b394396119f0abb8a6bdec8..d53b6e5ca10a5fe4f3ecc7165ab34ecefa426409 100644 (file)
@@ -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
index 8aa1a2edaa68f2f5cd079ca391894e3c5383a105..9cba6b6442223f29a4207580c72e05bdfb0b38b5 100644 (file)
@@ -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;