Update code for g_object_set - add proper type casting 58/47458/1 accepted/tizen/mobile/20150904.140144 accepted/tizen/tv/20150904.140353 accepted/tizen/wearable/20150904.140455 submit/tizen/20150904.094343
authorJeongmo Yang <jm80.yang@samsung.com>
Thu, 3 Sep 2015 10:44:38 +0000 (19:44 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Thu, 3 Sep 2015 10:44:38 +0000 (19:44 +0900)
Change-Id: I985b4fdcd1682d8a00eb996f16d0820dab99b97f
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
packaging/libmm-camcorder.spec
src/include/mm_camcorder_util.h
src/mm_camcorder_attribute.c
src/mm_camcorder_audiorec.c
src/mm_camcorder_configure.c
src/mm_camcorder_gstcommon.c
src/mm_camcorder_videorec.c

index 1b6f9ad7809f63e7acc4f08990877fcd111ae5a1..41f1f7369c3a2c7a21c41d6a193565ed989df3e7 100644 (file)
@@ -2,8 +2,8 @@
 
 Name:       libmm-camcorder
 Summary:    Camera and recorder library
-Version:    0.10.6
-Release:    1
+Version:    0.10.7
+Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0
 Source0:    %{name}-%{version}.tar.gz
index 557725cecdc566f822339b241b51f76a93d89ff6..f29b4654e11fe403749f0ae1ec171ded542b9c4b 100644 (file)
@@ -112,7 +112,32 @@ do { \
 #define MMCAMCORDER_G_OBJECT_SET(obj, name, value) \
 do { \
        if (obj) { \
-               if(g_object_class_find_property(G_OBJECT_GET_CLASS(G_OBJECT(obj)), name)) { \
+               GParamSpec *spec = g_object_class_find_property(G_OBJECT_GET_CLASS(G_OBJECT(obj)), name);\
+               if(spec) { \
+                       if (spec->value_type == G_TYPE_INT64) {\
+                               g_object_set(G_OBJECT(obj), name, (gint64)value, NULL); \
+                       } else if (spec->value_type == G_TYPE_UINT64) { \
+                               g_object_set(G_OBJECT(obj), name, (guint64)value, NULL); \
+                       } else if (spec->value_type == G_TYPE_FLOAT) { \
+                               g_object_set(G_OBJECT(obj), name, (float)value, NULL); \
+                       } else if (spec->value_type == G_TYPE_DOUBLE) { \
+                               g_object_set(G_OBJECT(obj), name, (double)value, NULL); \
+                       } else { \
+                               g_object_set(G_OBJECT(obj), name, value, NULL); \
+                       } \
+               } else { \
+                       _mmcam_dbg_warn ("The object doesn't have a property named(%s)", name); \
+               } \
+       } else { \
+               _mmcam_dbg_err("Null object"); \
+       } \
+} while(0);
+
+#define MMCAMCORDER_G_OBJECT_SET_POINTER(obj, name, value) \
+do { \
+       if (obj) { \
+               GParamSpec *spec = g_object_class_find_property(G_OBJECT_GET_CLASS(G_OBJECT(obj)), name);\
+               if(spec) { \
                        g_object_set(G_OBJECT(obj), name, value, NULL); \
                } else { \
                        _mmcam_dbg_warn ("The object doesn't have a property named(%s)", name); \
index a0e1644225ca61e36418353db21df9d0200d0a68..e9014f854392de2da05d29723b0c9bcf52abe703 100644 (file)
@@ -2921,7 +2921,7 @@ bool _mmcamcorder_commit_target_filename(MMHandleType handle, int attr_idx, cons
 
        if (sc->encode_element && sc->encode_element[_MMCAMCORDER_ENCSINK_SINK].gst) {
                _mmcam_dbg_log("new file location set.[%s] filesink %p", filename, sc->encode_element[_MMCAMCORDER_ENCSINK_SINK].gst);
-               MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_SINK].gst, "location", filename);
+               MMCAMCORDER_G_OBJECT_SET_POINTER(sc->encode_element[_MMCAMCORDER_ENCSINK_SINK].gst, "location", filename);
                _mmcam_dbg_log("new file location set.(%s)", filename);
        } else {
                _mmcam_dbg_log("element is not created yet. [%s] will be set later...", filename);
@@ -3217,7 +3217,7 @@ bool _mmcamcorder_commit_display_handle(MMHandleType handle, int attr_idx, const
                } else if (!strcmp(videosink_name, "evasimagesink") ||
                           !strcmp(videosink_name, "evaspixmapsink")) {
                        _mmcam_dbg_log("Commit : Set evas object [%p]", p_handle);
-                       MMCAMCORDER_G_OBJECT_SET(sc->element[_MMCAMCORDER_VIDEOSINK_SINK].gst, "evas-object", p_handle);
+                       MMCAMCORDER_G_OBJECT_SET_POINTER(sc->element[_MMCAMCORDER_VIDEOSINK_SINK].gst, "evas-object", p_handle);
 #ifdef HAVE_WAYLAND
                } else if (!strcmp(videosink_name, "waylandsink")) {
                        MMCamWaylandInfo *wl_info = (MMCamWaylandInfo *)p_handle;
index 4ef36e53b2caaa1f0501cf18e41bed13e44153d0..c94acf6df561bd9677cb6562032900d2d8bb37ec 100644 (file)
@@ -414,7 +414,7 @@ _mmcamcorder_audio_command(MMHandleType handle, int command)
 
                        _mmcam_dbg_log("Record start : set file name using attribute - %s\n ",info->filename);
 
-                       MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_SINK].gst, "location", info->filename);
+                       MMCAMCORDER_G_OBJECT_SET_POINTER(sc->encode_element[_MMCAMCORDER_ENCSINK_SINK].gst, "location", info->filename);
 
                        sc->ferror_send = FALSE;
                        sc->ferror_count = 0;
index d8f31c49343ef741d2141ff9e0d550e82fd582c9..4fa2fba08e7a84e51f2566c5d7c0b43f0816306d 100644 (file)
@@ -2123,7 +2123,7 @@ _mmcamcorder_conf_set_value_element_property( GstElement* gst, type_element* ele
 
                for( i = 0 ; i < element->count_string ; i++ )
                {
-                       MMCAMCORDER_G_OBJECT_SET( gst, element->value_string[i]->name, element->value_string[i]->value );
+                       MMCAMCORDER_G_OBJECT_SET_POINTER( gst, element->value_string[i]->name, element->value_string[i]->value );
 
                        _mmcam_dbg_log( "Element[%s] Set[%s] -> string[%s]",
                                element->element_name,
index e8a4dd6be3f19d102cf23b6987541ca4422cac4a..b309681a43bff2469ff40e0e8c578718f1a9f834 100644 (file)
@@ -465,7 +465,7 @@ int _mmcamcorder_create_audiosrc_bin(MMHandleType handle)
        _MMCAMCORDER_ELEMENT_MAKE(sc, sc->encode_element, _MMCAMCORDER_AUDIOSRC_QUE, "queue", "audiosrc_queue", element_list, err);
        MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_AUDIOSRC_QUE].gst, "max-size-buffers", 0);
        MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_AUDIOSRC_QUE].gst, "max-size-bytes", 0);
-       MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_AUDIOSRC_QUE].gst, "max-size-time", (int64_t)0);
+       MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_AUDIOSRC_QUE].gst, "max-size-time", 0);
 
        if (a_enc != MM_AUDIO_CODEC_VORBIS) {
                _MMCAMCORDER_ELEMENT_MAKE(sc, sc->encode_element, _MMCAMCORDER_AUDIOSRC_VOL, "volume", "audiosrc_volume", element_list, err);
@@ -511,7 +511,7 @@ int _mmcamcorder_create_audiosrc_bin(MMHandleType handle)
        }
 
        if (caps) {
-               MMCAMCORDER_G_OBJECT_SET((sc->encode_element[_MMCAMCORDER_AUDIOSRC_FILT].gst), "caps", caps);
+               MMCAMCORDER_G_OBJECT_SET_POINTER((sc->encode_element[_MMCAMCORDER_AUDIOSRC_FILT].gst), "caps", caps);
                gst_caps_unref(caps);
                caps = NULL;
        } else {
@@ -641,7 +641,7 @@ int _mmcamcorder_create_encodesink_bin(MMHandleType handle, MMCamcorderEncodebin
                /* set appsrc as live source */
                MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_SRC].gst, "is-live", TRUE);
                MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_SRC].gst, "format", 3); /* GST_FORMAT_TIME */
-               MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_SRC].gst, "max-bytes", (int64_t)0); /* unlimited */
+               MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_SRC].gst, "max-bytes", 0); /* unlimited */
 
                /* set capsfilter */
                if (sc->info_image->preview_format == MM_PIXEL_FORMAT_ENCODED_H264) {
@@ -679,7 +679,7 @@ int _mmcamcorder_create_encodesink_bin(MMHandleType handle, MMCamcorderEncodebin
                        free(caps_str);
                        caps_str = NULL;
 
-                       MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_FILT].gst, "caps", video_caps);
+                       MMCAMCORDER_G_OBJECT_SET_POINTER(sc->encode_element[_MMCAMCORDER_ENCSINK_FILT].gst, "caps", video_caps);
                        gst_caps_unref(video_caps);
                        video_caps = NULL;
                } else {
@@ -764,7 +764,7 @@ int _mmcamcorder_create_encodesink_bin(MMHandleType handle, MMCamcorderEncodebin
                if (gst_element_venc_name) {
                        _mmcam_dbg_log("video encoder name [%s]", gst_element_venc_name);
 
-                       MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "venc-name", gst_element_venc_name);
+                       MMCAMCORDER_G_OBJECT_SET_POINTER(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "venc-name", gst_element_venc_name);
                        _MMCAMCORDER_ENCODEBIN_ELMGET(sc, _MMCAMCORDER_ENCSINK_VENC, "video-encode", err);
                } else {
                        _mmcam_dbg_err("Fail to get video encoder name");
@@ -776,7 +776,7 @@ int _mmcamcorder_create_encodesink_bin(MMHandleType handle, MMCamcorderEncodebin
                if (auto_color_space) {
                        _mmcam_dbg_log("set video convert element [%s]", videoconvert_name);
 
-                       MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "vconv-name", videoconvert_name);
+                       MMCAMCORDER_G_OBJECT_SET_POINTER(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "vconv-name", videoconvert_name);
                        _MMCAMCORDER_ENCODEBIN_ELMGET(sc, _MMCAMCORDER_ENCSINK_VCONV, "video-convert", err);
 
                        /* set colorspace plugin property setting */
@@ -790,7 +790,7 @@ int _mmcamcorder_create_encodesink_bin(MMHandleType handle, MMCamcorderEncodebin
                                                           NULL);
 
                                        if (video_caps) {
-                                               MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "vcaps", video_caps);
+                                               MMCAMCORDER_G_OBJECT_SET_POINTER(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "vcaps", video_caps);
                                                MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_VCONV].gst, "dst-buffer-num", _MMCAMCORDER_CONVERT_OUTPUT_BUFFER_NUM);
 
                                                gst_caps_unref(video_caps);
@@ -831,7 +831,7 @@ int _mmcamcorder_create_encodesink_bin(MMHandleType handle, MMCamcorderEncodebin
 
                _mmcamcorder_conf_get_value_element_name(AudioencElement, &gst_element_aenc_name);
 
-               MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "aenc-name", gst_element_aenc_name);
+               MMCAMCORDER_G_OBJECT_SET_POINTER(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "aenc-name", gst_element_aenc_name);
                _MMCAMCORDER_ENCODEBIN_ELMGET(sc, _MMCAMCORDER_ENCSINK_AENC, "audio-encode", err);
 
                if (audio_enc == MM_AUDIO_CODEC_AMR && channel == 2) {
@@ -839,7 +839,7 @@ int _mmcamcorder_create_encodesink_bin(MMHandleType handle, MMCamcorderEncodebin
                                                   "channels", G_TYPE_INT, 1,
                                                   NULL);
                        MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "auto-audio-convert", TRUE);
-                       MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "acaps", audio_caps);
+                       MMCAMCORDER_G_OBJECT_SET_POINTER(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "acaps", audio_caps);
                        gst_caps_unref(audio_caps);
                        audio_caps = NULL;
                }
@@ -847,7 +847,7 @@ int _mmcamcorder_create_encodesink_bin(MMHandleType handle, MMCamcorderEncodebin
                if (audio_enc == MM_AUDIO_CODEC_OGG) {
                        audio_caps = gst_caps_new_empty_simple("audio/x-raw");
                        MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "auto-audio-convert", TRUE);
-                       MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "acaps", audio_caps);
+                       MMCAMCORDER_G_OBJECT_SET_POINTER(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "acaps", audio_caps);
                        gst_caps_unref(audio_caps);
                        audio_caps = NULL;
                        _mmcam_dbg_log("***** MM_AUDIO_CODEC_OGG : setting audio/x-raw-int ");
@@ -859,7 +859,7 @@ int _mmcamcorder_create_encodesink_bin(MMHandleType handle, MMCamcorderEncodebin
                                                &use_aenc_queue);
                if (use_aenc_queue) {
                        _MMCAMCORDER_ENCODEBIN_ELMGET(sc, _MMCAMCORDER_ENCSINK_AENC_QUE, "use-aenc-queue", err);
-                       MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_AENC_QUE].gst,"max-size-time", (int64_t)0);
+                       MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_AENC_QUE].gst,"max-size-time", 0);
                        MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_AENC_QUE].gst,"max-size-buffers", 0);
                }
        }
@@ -874,7 +874,7 @@ int _mmcamcorder_create_encodesink_bin(MMHandleType handle, MMCamcorderEncodebin
 
                _mmcamcorder_conf_get_value_element_name(ImageencElement, &gst_element_ienc_name);
 
-               MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "ienc-name", gst_element_ienc_name);
+               MMCAMCORDER_G_OBJECT_SET_POINTER(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "ienc-name", gst_element_ienc_name);
                _MMCAMCORDER_ENCODEBIN_ELMGET(sc, _MMCAMCORDER_ENCSINK_IENC, "image-encode", err);
        }
 
@@ -889,7 +889,7 @@ int _mmcamcorder_create_encodesink_bin(MMHandleType handle, MMCamcorderEncodebin
 
                _mmcamcorder_conf_get_value_element_name(MuxElement, &gst_element_mux_name);
 
-               MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "mux-name", gst_element_mux_name);
+               MMCAMCORDER_G_OBJECT_SET_POINTER(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "mux-name", gst_element_mux_name);
                _MMCAMCORDER_ENCODEBIN_ELMGET(sc, _MMCAMCORDER_ENCSINK_MUX, "mux", err);
 
                _mmcamcorder_conf_set_value_element_property(sc->encode_element[_MMCAMCORDER_ENCSINK_MUX].gst, MuxElement);
@@ -919,7 +919,7 @@ int _mmcamcorder_create_encodesink_bin(MMHandleType handle, MMCamcorderEncodebin
                } else {
                        _mmcam_dbg_warn("video bitrate is too small[%d], so skip setting. Use DEFAULT value.", v_bitrate);
                }
-               /*MMCAMCORDER_G_OBJECT_SET ((sc->encode_element[_MMCAMCORDER_ENCSINK_VENC].gst),"hw-accel", v_hw);*/
+
                _mmcamcorder_conf_set_value_element_property(sc->encode_element[_MMCAMCORDER_ENCSINK_VENC].gst, VideoencElement);
        }
 
@@ -1239,7 +1239,7 @@ int _mmcamcorder_videosink_window_set(MMHandleType handle, type_element* Videosi
                   !strcmp(videosink_name, "evaspixmapsink")) {
                _mmcam_dbg_log("videosink : %s, handle : %p", videosink_name, overlay);
                if (overlay) {
-                       MMCAMCORDER_G_OBJECT_SET(vsink, "evas-object", overlay);
+                       MMCAMCORDER_G_OBJECT_SET_POINTER(vsink, "evas-object", overlay);
                        MMCAMCORDER_G_OBJECT_SET(vsink, "origin-size", !do_scaling);
                } else {
                        _mmcam_dbg_err("display handle(eavs object) is NULL");
@@ -1303,7 +1303,7 @@ int _mmcamcorder_videosink_window_set(MMHandleType handle, type_element* Videosi
                MMCAMCORDER_G_OBJECT_SET(vsink, "display-geometry-method", display_geometry_method);
                MMCAMCORDER_G_OBJECT_SET(vsink, "display-mode", display_mode);
                MMCAMCORDER_G_OBJECT_SET(vsink, "visible", visible);
-               MMCAMCORDER_G_OBJECT_SET(vsink, "zoom", (float)zoom_level);
+               MMCAMCORDER_G_OBJECT_SET(vsink, "zoom", zoom_level);
 
                if (display_geometry_method == MM_DISPLAY_METHOD_CUSTOM_ROI) {
                        g_object_set(vsink,
@@ -2273,7 +2273,7 @@ bool _mmcamcorder_set_videosrc_caps(MMHandleType handle, unsigned int fourcc, in
 
                _mmcam_dbg_log("vidoesrc new caps set. %"GST_PTR_FORMAT, caps);
 
-               MMCAMCORDER_G_OBJECT_SET(sc->element[_MMCAMCORDER_VIDEOSRC_FILT].gst, "caps", caps);
+               MMCAMCORDER_G_OBJECT_SET_POINTER(sc->element[_MMCAMCORDER_VIDEOSRC_FILT].gst, "caps", caps);
                gst_caps_unref(caps);
                caps = NULL;
        }
index 6a61fac48cd1eef6900bb72b2fb514afb6b5f373..e0b09b4a8e15ef684c6ff91c053c96611d1f67f0 100644 (file)
@@ -2061,7 +2061,7 @@ int _mmcamcorder_video_prepare_record(MMHandleType handle)
 
        _mmcam_dbg_log("Record file name [%s]", info->filename);
 
-       MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_SINK].gst, "location", info->filename);
+       MMCAMCORDER_G_OBJECT_SET_POINTER(sc->encode_element[_MMCAMCORDER_ENCSINK_SINK].gst, "location", info->filename);
        MMCAMCORDER_G_OBJECT_SET(sc->encode_element[_MMCAMCORDER_ENCSINK_ENCBIN].gst, "block", 0);
 
        /* Adjust display FPS */