char * _media_svc_get_title_from_filename(const char *filename)
{
- /* No MMHandleType in media-svc.c */
return __media_svc_get_title_from_filename(filename);
}
}
content_info->media_meta.title = __media_svc_find_and_get_value(root, "title");
+ /* In the case of PDF, if there is no title, it may not be a metadata block. Search for the next xml block*/
if (is_pdf && !content_info->media_meta.title) {
xmlFreeDoc(doc);
return FALSE;
int _media_svc_extract_book_metadata(media_svc_content_info_s *content_info)
{
+ int ret = MS_MEDIA_ERR_NONE;
+
media_svc_retvm_if(!content_info, MS_MEDIA_ERR_INVALID_PARAMETER, "content info is NULL");
if (g_str_has_suffix(content_info->mime_type, "epub+zip"))
- return __media_svc_get_epub_metadata(content_info);
+ ret = __media_svc_get_epub_metadata(content_info);
else
- return __media_svc_get_pdf_metadata(content_info);
+ ret = __media_svc_get_pdf_metadata(content_info);
+
+ media_svc_retvm_if(ret != MS_MEDIA_ERR_NONE, ret, "failed to extract metadata");
+ if (!content_info->media_meta.title || strlen(content_info->media_meta.title) == 0) {
+ g_free(content_info->media_meta.title);
+ content_info->media_meta.title = __media_svc_get_title_from_filename(content_info->file_name);
+ }
+
+ return MS_MEDIA_ERR_NONE;
}
void _media_svc_destroy_content_info(media_svc_content_info_s *content_info)
break;
case MEDIA_SVC_MEDIA_TYPE_BOOK:
ret = _media_svc_extract_book_metadata(&content_info);
- /* The 'TITLE' should always be filled in */
- if (!content_info.media_meta.title || strlen(content_info.media_meta.title) == 0) {
- g_free(content_info.media_meta.title);
- content_info.media_meta.title = _media_svc_get_title_from_filename(content_info.file_name);
- }
break;
default:
/* The 'TITLE' should always be filled in */
break;
case MEDIA_SVC_MEDIA_TYPE_BOOK:
ret = _media_svc_extract_book_metadata(&content_info);
- /* The 'TITLE' should always be filled in */
- if (!content_info.media_meta.title || strlen(content_info.media_meta.title) == 0) {
- g_free(content_info.media_meta.title);
- content_info.media_meta.title = _media_svc_get_title_from_filename(content_info.file_name);
- }
break;
default:
/* The 'TITLE' should always be filled in */
break;
case MEDIA_SVC_MEDIA_TYPE_BOOK:
ret = _media_svc_extract_book_metadata(&content_info);
- /* The 'TITLE' should always be filled in */
- if (!content_info.media_meta.title || strlen(content_info.media_meta.title) == 0) {
- g_free(content_info.media_meta.title);
- content_info.media_meta.title = _media_svc_get_title_from_filename(content_info.file_name);
- }
break;
default:
/* The 'TITLE' should always be filled in */