From: Jeongmo Yang Date: Fri, 30 Aug 2024 04:40:53 +0000 (+0900) Subject: Update recommend format when default format is not supported X-Git-Tag: accepted/tizen/unified/20240902.161420^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=403246b855bfa62ef8bb91ca923bd23f03ff9091;p=platform%2Fcore%2Fmultimedia%2Flibmm-camcorder.git Update recommend format when default format is not supported - In general, recommend formats in configuration are same with default format. When device capability is supported and it does not support default format in configuration, camera handle creation will be failed because of preview format setting failure. It can be resolved by recommend format replacement. - Minor change : Support MM_PIXEL_FORMAT_ENCODED(JPEG) as preview format. [Version] 1.2.6 [Issue Type] Update Change-Id: I9edfe92b2669e8d91a4bbc68b89838dea8eeb1b1 Signed-off-by: Jeongmo Yang --- diff --git a/packaging/libmm-camcorder.spec b/packaging/libmm-camcorder.spec index 8895732..fdae282 100755 --- a/packaging/libmm-camcorder.spec +++ b/packaging/libmm-camcorder.spec @@ -1,6 +1,6 @@ Name: libmm-camcorder Summary: Camera and recorder library -Version: 1.2.5 +Version: 1.2.6 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/mm_camcorder_capability.c b/src/mm_camcorder_capability.c index f9e5e15..cb1cfb4 100644 --- a/src/mm_camcorder_capability.c +++ b/src/mm_camcorder_capability.c @@ -443,6 +443,21 @@ int _mmcamcorder_capability_update_preview_format_list(MMHandleType handle) return ret; } + if (!is_current_supported) { + MMCAM_LOG_WARNING("update recommend format[%s] for invalid ini", + g_format_string_table[default_mm_format]); + + /* update new default format as recommend format */ + ret = mm_camcorder_set_attributes(handle, NULL, + MMCAM_RECOMMEND_PREVIEW_FORMAT_FOR_CAPTURE, default_mm_format, + MMCAM_RECOMMEND_PREVIEW_FORMAT_FOR_RECORDING, default_mm_format, + NULL); + if (ret != MM_ERROR_NONE) { + MMCAM_LOG_ERROR("update recommend format failed[0x%x]", ret); + return ret; + } + } + MMCAM_LOG_INFO("done"); return _mmcamcorder_capability_update_preview_resolution_list(handle); diff --git a/src/mm_camcorder_gstcommon.c b/src/mm_camcorder_gstcommon.c index ba7ce50..b0a5662 100644 --- a/src/mm_camcorder_gstcommon.c +++ b/src/mm_camcorder_gstcommon.c @@ -857,6 +857,7 @@ int _mmcamcorder_create_preview_elements(MMHandleType handle) case MM_PIXEL_FORMAT_ENCODED_H264: decoder_conf_name = "VideodecoderElementH264"; break; + case MM_PIXEL_FORMAT_ENCODED: /* fall through */ case MM_PIXEL_FORMAT_ENCODED_MJPEG: decoder_conf_name = "VideodecoderElementMJPEG"; break; diff --git a/src/mm_camcorder_util.c b/src/mm_camcorder_util.c index 423b330..788bf0f 100644 --- a/src/mm_camcorder_util.c +++ b/src/mm_camcorder_util.c @@ -2027,6 +2027,7 @@ GstCaps *_mmcamcorder_get_video_caps(MMHandleType handle, MMPixelFormatType form #endif /* _MMCAMCORDER_PRODUCT_TV */ NULL); break; + case MM_PIXEL_FORMAT_ENCODED: /* fall through */ case MM_PIXEL_FORMAT_ENCODED_MJPEG: #ifdef _MMCAMCORDER_PRODUCT_TV caps = gst_caps_new_empty_simple("video/x-jpeg");