From aa32cd12a19d2e6e754fad5a3c183ead05fa5ead Mon Sep 17 00:00:00 2001 From: Jeongmo Yang Date: Thu, 16 Dec 2021 21:28:32 +0900 Subject: [PATCH] Use "format" field instead of videoinfo - The gst_video_info_from_caps() could be failed when caps is not fixed. But, the "format" field is fixed and available, so we can use it. [Version] 0.10.250 [Issue Type] Improvement Change-Id: I2d663e699ad71ca6ced9ddc13232faa0ddd7d0bf Signed-off-by: Jeongmo Yang --- packaging/libmm-camcorder.spec | 2 +- src/mm_camcorder_util.c | 20 +++++++++----------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/packaging/libmm-camcorder.spec b/packaging/libmm-camcorder.spec index d1d3d1f..71aadbf 100755 --- a/packaging/libmm-camcorder.spec +++ b/packaging/libmm-camcorder.spec @@ -1,6 +1,6 @@ Name: libmm-camcorder Summary: Camera and recorder library -Version: 0.10.249 +Version: 0.10.250 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/mm_camcorder_util.c b/src/mm_camcorder_util.c index 5b83204..b3ab5a5 100644 --- a/src/mm_camcorder_util.c +++ b/src/mm_camcorder_util.c @@ -1531,7 +1531,7 @@ int _mmcamcorder_get_pixel_format(GstCaps *caps) { gchar *caps_string = NULL; const char *media_type; - GstVideoInfo vinfo; + const char *format; mmf_return_val_if_fail(caps != NULL, MM_PIXEL_FORMAT_INVALID); @@ -1558,18 +1558,16 @@ int _mmcamcorder_get_pixel_format(GstCaps *caps) else if (!strcmp(media_type, "video/x-vp9")) return MM_PIXEL_FORMAT_ENCODED_VP9; - if (gst_video_info_from_caps(&vinfo, caps)) { - if (GST_VIDEO_INFO_IS_YUV(&vinfo)) - return _mmcamcorder_get_pixtype(gst_video_format_to_fourcc(GST_VIDEO_INFO_FORMAT(&vinfo))); - else if (GST_VIDEO_INFO_IS_RGB(&vinfo)) - return MM_PIXEL_FORMAT_RGB888; - } + format = gst_structure_get_string(gst_caps_get_structure(caps, 0), "format"); + if (!format) { + caps_string = gst_caps_to_string(caps); + MMCAM_LOG_ERROR("unsupported caps[%s]", caps_string); + g_free(caps_string); - caps_string = gst_caps_to_string(caps); - MMCAM_LOG_ERROR("unsupported caps[%s]", caps_string); - g_free(caps_string); + return MM_PIXEL_FORMAT_INVALID; + } - return MM_PIXEL_FORMAT_INVALID; + return _mmcamcorder_get_pixtype(GST_STR_FOURCC(format)); } -- 2.34.1