Change mm_attr structure 52/101452/5 accepted/tizen/common/20161207.184614 accepted/tizen/ivi/20161208.012254 accepted/tizen/mobile/20161208.011944 accepted/tizen/tv/20161208.012017 accepted/tizen/wearable/20161208.012147 submit/tizen/20161207.075356
authorSeokHoon Lee <andy.shlee@samsung.com>
Thu, 1 Dec 2016 07:42:42 +0000 (16:42 +0900)
committerSeokHoon Lee <andy.shlee@samsung.com>
Thu, 1 Dec 2016 07:59:53 +0000 (16:59 +0900)
[Version] 0.0.10
[Profile] Common
[Issue Type] Change mm_attr structure
[Dependency module] N/A
[Test] [M(T) - Boot=(OK), sdb=(OK), Home=(OK), Touch=(OK), Version=tizen-3.0-mobile_20161129.2]

Signed-off-by: SeokHoon Lee <andy.shlee@samsung.com>
Change-Id: Ie4a2ebd6f8a76c17a60112e15c13f483ba285980

packaging/libmm-streamrecorder.spec
src/include/mm_streamrecorder_attribute.h
src/mm_streamrecorder_attribute.c
src/mm_streamrecorder_gstdispatch.c

index 9a6cd9f..f850b96 100644 (file)
@@ -1,6 +1,6 @@
 Name:       libmm-streamrecorder
 Summary:    Media Stream Recorder library
-Version:    0.0.9
+Version:    0.0.10
 Release:    0
 Group:      Multimedia/Other
 License:    Apache-2.0
index 4f80184..9879e7c 100644 (file)
@@ -100,8 +100,17 @@ typedef struct {
                double value_double;
        } default_value;                /* default value */
        MMStreamRecorderAttrsValidType validity_type;
-       int validity_value1;    /* can be int min, int *array, double *array, or cast to double min. */
-       int validity_value2;    /* can be int max, int count, int count, or cast to double max. */
+       union {
+               int *int_array;
+               int int_min;
+               double *double_array;
+               double double_min;
+       } validity_value_1;
+       union {
+               int int_max;
+               double double_max;
+               int count;
+       } validity_value_2;
        mmf_streamrecorder_commit_func_t attr_commit;
 } mm_streamrecorder_attr_construct_info;
 
index ce9a771..6db79d1 100644 (file)
@@ -48,8 +48,8 @@ mm_streamrecorder_attr_construct_info stream_attrs_const_info[] = {
         MM_ATTRS_FLAG_RW,                      /* Flag */
         {(void *)MM_STREAMRECORDER_VIDEO_TYPE_TBM_BO}, /* Default value */
         MM_ATTRS_VALID_TYPE_INT_RANGE, /* Validity type */
-        MM_STREAMRECORDER_VIDEO_TYPE_TBM_BO,   /* Validity val1 (min, *array,...) */
-        MM_STREAMRECORDER_VIDEO_TYPE_NORMAL_BUFFER,    /* Validity val2 (max, count, ...) */
+        {.int_min = MM_STREAMRECORDER_VIDEO_TYPE_TBM_BO},      /* Validity val1 (min, *array,...) */
+        {.int_max = MM_STREAMRECORDER_VIDEO_TYPE_NORMAL_BUFFER},       /* Validity val2 (max, count, ...) */
         NULL,                                          /* Runtime setting function of the attribute */
         },
        /* 1  */
@@ -59,8 +59,8 @@ mm_streamrecorder_attr_construct_info stream_attrs_const_info[] = {
         MM_ATTRS_FLAG_RW,
         {(void *)MM_STREAMRECORDER_INPUT_FORMAT_NV12},
         MM_ATTRS_VALID_TYPE_INT_RANGE,
-        MM_STREAMRECORDER_INPUT_FORMAT_INVALID,
-        MM_STREAMRECORDER_INPUT_FORMAT_NUM,
+        {.int_min = MM_STREAMRECORDER_INPUT_FORMAT_INVALID},
+        {.int_max = MM_STREAMRECORDER_INPUT_FORMAT_NUM},
         NULL,
         },
        /* 2  */
@@ -71,8 +71,8 @@ mm_streamrecorder_attr_construct_info stream_attrs_const_info[] = {
         MM_ATTRS_FLAG_RW,
         {(void *)0},
         MM_ATTRS_VALID_TYPE_INT_RANGE,
-        0,
-        _MMSTREAMRECORDER_MAX_INT,
+        {.int_min = 0},
+        {.int_max = _MMSTREAMRECORDER_MAX_INT},
         NULL,
         },
        /* 3  */
@@ -83,8 +83,8 @@ mm_streamrecorder_attr_construct_info stream_attrs_const_info[] = {
         MM_ATTRS_FLAG_RW,
         {(void *)0},
         MM_ATTRS_VALID_TYPE_INT_RANGE,
-        0,
-        _MMSTREAMRECORDER_MAX_INT,
+        {.int_min = 0},
+        {.int_max = _MMSTREAMRECORDER_MAX_INT},
         NULL,    /*_mmstreamrecorder_commit_video_bitrate, */
         },
        /* 4  */
@@ -95,8 +95,8 @@ mm_streamrecorder_attr_construct_info stream_attrs_const_info[] = {
         MM_ATTRS_FLAG_RW,
         {(void *)0},
         MM_ATTRS_VALID_TYPE_INT_ARRAY,
-        0,
-        0,
+        {.int_array = NULL},
+        {.count = 0},
         NULL,
         },
        /* 5  */
@@ -107,8 +107,8 @@ mm_streamrecorder_attr_construct_info stream_attrs_const_info[] = {
         MM_ATTRS_FLAG_RW,
         {(void *)0},
         MM_ATTRS_VALID_TYPE_INT_ARRAY,
-        0,
-        0,
+        {.int_array = NULL},
+        {.count = 0},
         NULL,
         },
        /* 6  */
@@ -118,9 +118,9 @@ mm_streamrecorder_attr_construct_info stream_attrs_const_info[] = {
         MMF_VALUE_TYPE_INT,
         MM_ATTRS_FLAG_RW,
         {(void *)MM_STREAMRECORDER_AUDIO_FORMAT_PCM_S16_LE},
-        MMF_VALUE_TYPE_INT,
-        MM_STREAMRECORDER_AUDIO_FORMAT_PCM_U8,
-        MM_STREAMRECORDER_AUDIO_FORMAT_PCM_S16_LE,
+        MM_ATTRS_VALID_TYPE_INT_RANGE,
+        {.int_min = MM_STREAMRECORDER_AUDIO_FORMAT_PCM_U8},
+        {.int_max = MM_STREAMRECORDER_AUDIO_FORMAT_PCM_S16_LE},
         _mmstreamrecorder_commit_audio_bitformat,
         },
        /* 7  */
@@ -131,8 +131,8 @@ mm_streamrecorder_attr_construct_info stream_attrs_const_info[] = {
         MM_ATTRS_FLAG_RW,
         {(void *)128000},
         MM_ATTRS_VALID_TYPE_INT_RANGE,
-        0,
-        _MMSTREAMRECORDER_MAX_INT,
+        {.int_min = 0},
+        {.int_max = _MMSTREAMRECORDER_MAX_INT},
         _mmstreamrecorder_commit_audio_bitrate,
         },
        /* 8  */
@@ -143,8 +143,8 @@ mm_streamrecorder_attr_construct_info stream_attrs_const_info[] = {
         MM_ATTRS_FLAG_RW,
         {(void *)0},
         MM_ATTRS_VALID_TYPE_INT_RANGE,
-        0,
-        _MMSTREAMRECORDER_MAX_INT,
+        {.int_min = 0},
+        {.int_max = _MMSTREAMRECORDER_MAX_INT},
         _mmstreamrecorder_commit_audio_samplingrate,
         },
        /* 9  */
@@ -155,8 +155,8 @@ mm_streamrecorder_attr_construct_info stream_attrs_const_info[] = {
         MM_ATTRS_FLAG_RW,
         {(void *)0},
         MM_ATTRS_VALID_TYPE_INT_ARRAY,
-        0,
-        0,
+        {.int_array = NULL},
+        {.count = 0},
         _mmstreamrecorder_commit_video_encoder,
         },
        /* 10  */
@@ -167,8 +167,8 @@ mm_streamrecorder_attr_construct_info stream_attrs_const_info[] = {
         MM_ATTRS_FLAG_RW,
         {(void *)0},
         MM_ATTRS_VALID_TYPE_INT_ARRAY,
-        0,
-        0,
+        {.int_array = NULL},
+        {.count = 0},
         _mmstreamrecorder_commit_audio_encoder,
         },
        /* 11  */
@@ -179,8 +179,8 @@ mm_streamrecorder_attr_construct_info stream_attrs_const_info[] = {
         MM_ATTRS_FLAG_RW,
         {(void *)2},
         MM_ATTRS_VALID_TYPE_INT_RANGE,
-        0,
-        _MMSTREAMRECORDER_MAX_INT,
+        {.int_min = 0},
+        {.int_max = _MMSTREAMRECORDER_MAX_INT},
         _mmstreamrecorder_commit_audio_channel,
         },
        /* 12  */
@@ -191,8 +191,8 @@ mm_streamrecorder_attr_construct_info stream_attrs_const_info[] = {
         MM_ATTRS_FLAG_RW,
         {(void *)0},
         MM_ATTRS_VALID_TYPE_INT_ARRAY,
-        0,
-        0,
+        {.int_array = NULL},
+        {.count = 0},
         NULL,
         },
        /* 13  */
@@ -203,8 +203,8 @@ mm_streamrecorder_attr_construct_info stream_attrs_const_info[] = {
         MM_ATTRS_FLAG_RW,
         {NULL},
         MM_ATTRS_VALID_TYPE_NONE,
-        0,
-        0,
+        {0},
+        {0},
         NULL,
         },
        /* 14  */
@@ -215,8 +215,8 @@ mm_streamrecorder_attr_construct_info stream_attrs_const_info[] = {
         MM_ATTRS_FLAG_RW,
         {(void *)FALSE},
         MM_ATTRS_VALID_TYPE_NONE,
-        0,
-        _MMSTREAMRECORDER_MAX_INT,
+        {0},
+        {_MMSTREAMRECORDER_MAX_INT},
         _mmstreamrecorder_commit_video_enable,
         },
        /* 15  */
@@ -227,8 +227,8 @@ mm_streamrecorder_attr_construct_info stream_attrs_const_info[] = {
         MM_ATTRS_FLAG_RW,
         {(void *)FALSE},
         MM_ATTRS_VALID_TYPE_NONE,
-        0,
-        _MMSTREAMRECORDER_MAX_INT,
+        {0},
+        {_MMSTREAMRECORDER_MAX_INT},
         _mmstreamrecorder_commit_audio_enable,
         },
        /* 16 */
@@ -239,8 +239,8 @@ mm_streamrecorder_attr_construct_info stream_attrs_const_info[] = {
         MM_ATTRS_FLAG_RW,
         {(void *)MM_STREAMRECORDER_MODE_MEDIABUFFER},
         MM_ATTRS_VALID_TYPE_NONE,
-        0,
-        _MMSTREAMRECORDER_MAX_INT,
+        {0},
+        {_MMSTREAMRECORDER_MAX_INT},
         NULL,
         },
        /*17*/
@@ -251,8 +251,8 @@ mm_streamrecorder_attr_construct_info stream_attrs_const_info[] = {
         MM_ATTRS_FLAG_RW,
         {(void *)0},
         MM_ATTRS_VALID_TYPE_INT_RANGE,
-        0,
-        _MMSTREAMRECORDER_MAX_INT,
+        {.int_min = 0},
+        {.int_max = _MMSTREAMRECORDER_MAX_INT},
         NULL,
        },
        /*18*/
@@ -263,8 +263,8 @@ mm_streamrecorder_attr_construct_info stream_attrs_const_info[] = {
         MM_ATTRS_FLAG_RW,
         {(void *)0},
         MM_ATTRS_VALID_TYPE_INT_RANGE,
-        0,
-        _MMSTREAMRECORDER_MAX_INT,
+        {.int_min = 0},
+        {.int_max = _MMSTREAMRECORDER_MAX_INT},
         NULL,
        },
 
@@ -288,28 +288,28 @@ static int __mmstreamrecorder_set_conf_to_valid_info(MMHandleType handle)
 
        /* Video width */
        total_count = _mmstreamrecorder_get_available_format(handle, KEYWORD_VIDEO_WIDTH, &format);
-       stream_attrs_const_info[MM_STR_VIDEO_RESOLUTION_WIDTH].validity_value1 = (int)format;
-       stream_attrs_const_info[MM_STR_VIDEO_RESOLUTION_WIDTH].validity_value2 = (int)total_count;
+       stream_attrs_const_info[MM_STR_VIDEO_RESOLUTION_WIDTH].validity_value_1.int_array = format;
+       stream_attrs_const_info[MM_STR_VIDEO_RESOLUTION_WIDTH].validity_value_2.count = total_count;
 
        /* Video height */
        total_count = _mmstreamrecorder_get_available_format(handle, KEYWORD_VIDEO_HEIGHT,  &format);
-       stream_attrs_const_info[MM_STR_VIDEO_RESOLUTION_HEIGHT].validity_value1 = (int)format;
-       stream_attrs_const_info[MM_STR_VIDEO_RESOLUTION_HEIGHT].validity_value2 = (int)total_count;
+       stream_attrs_const_info[MM_STR_VIDEO_RESOLUTION_HEIGHT].validity_value_1.int_array = format;
+       stream_attrs_const_info[MM_STR_VIDEO_RESOLUTION_HEIGHT].validity_value_2.count = total_count;
 
        /* Audio encoder */
        total_count = _mmstreamrecorder_get_available_format(handle, KEYWORD_AUDIO_ENCODERS, &format);
-       stream_attrs_const_info[MM_STR_AUDIO_ENCODER].validity_value1 = (int)format;
-       stream_attrs_const_info[MM_STR_AUDIO_ENCODER].validity_value2 = (int)total_count;
+       stream_attrs_const_info[MM_STR_AUDIO_ENCODER].validity_value_1.int_array = format;
+       stream_attrs_const_info[MM_STR_AUDIO_ENCODER].validity_value_2.count = total_count;
 
        /*Video encoder*/
        total_count = _mmstreamrecorder_get_available_format(handle, KEYWORD_VIDEO_ENCODERS, &format);
-       stream_attrs_const_info[MM_STR_VIDEO_ENCODER].validity_value1 = (int)format;
-       stream_attrs_const_info[MM_STR_VIDEO_ENCODER].validity_value2 = (int)total_count;
+       stream_attrs_const_info[MM_STR_VIDEO_ENCODER].validity_value_1.int_array = format;
+       stream_attrs_const_info[MM_STR_VIDEO_ENCODER].validity_value_2.count = total_count;
 
        /* File Format */
        total_count = _mmstreamrecorder_get_available_format(handle, KEYWORD_FILE_FORMATS, &format);
-       stream_attrs_const_info[MM_STR_FILE_FORMAT].validity_value1 = (int)format;
-       stream_attrs_const_info[MM_STR_FILE_FORMAT].validity_value2 = (int)total_count;
+       stream_attrs_const_info[MM_STR_FILE_FORMAT].validity_value_1.int_array = format;
+       stream_attrs_const_info[MM_STR_FILE_FORMAT].validity_value_2.count = total_count;
 
        return MM_ERROR_NONE;
 }
@@ -320,39 +320,39 @@ static int __mmstreamrecorder_release_conf_valid_info(MMHandleType handle)
 
        _mmstreamrec_dbg_log("START");
 
-       allocated_memory = (int *)(stream_attrs_const_info[MM_STR_VIDEO_RESOLUTION_WIDTH].validity_value1);
+       allocated_memory = (int *)(stream_attrs_const_info[MM_STR_VIDEO_RESOLUTION_WIDTH].validity_value_1.int_array);
        if (allocated_memory) {
                free(allocated_memory);
-               stream_attrs_const_info[MM_STR_VIDEO_RESOLUTION_WIDTH].validity_value1 = (int)NULL;
-               stream_attrs_const_info[MM_STR_VIDEO_RESOLUTION_WIDTH].validity_value2 = (int)0;
+               stream_attrs_const_info[MM_STR_VIDEO_RESOLUTION_WIDTH].validity_value_1.int_array = NULL;
+               stream_attrs_const_info[MM_STR_VIDEO_RESOLUTION_WIDTH].validity_value_2.count = 0;
        }
 
-       allocated_memory = (int *)(stream_attrs_const_info[MM_STR_VIDEO_RESOLUTION_HEIGHT].validity_value1);
+       allocated_memory = (int *)(stream_attrs_const_info[MM_STR_VIDEO_RESOLUTION_HEIGHT].validity_value_1.int_array);
        if (allocated_memory) {
                free(allocated_memory);
-               stream_attrs_const_info[MM_STR_VIDEO_RESOLUTION_HEIGHT].validity_value1 = (int)NULL;
-               stream_attrs_const_info[MM_STR_VIDEO_RESOLUTION_HEIGHT].validity_value2 = (int)0;
+               stream_attrs_const_info[MM_STR_VIDEO_RESOLUTION_HEIGHT].validity_value_1.int_array = NULL;
+               stream_attrs_const_info[MM_STR_VIDEO_RESOLUTION_HEIGHT].validity_value_2.count = 0;
        }
 
-       allocated_memory = (int *)(stream_attrs_const_info[MM_STR_AUDIO_ENCODER].validity_value1);
+       allocated_memory = (int *)(stream_attrs_const_info[MM_STR_AUDIO_ENCODER].validity_value_1.int_array);
        if (allocated_memory) {
                free(allocated_memory);
-               stream_attrs_const_info[MM_STR_AUDIO_ENCODER].validity_value1 = (int)NULL;
-               stream_attrs_const_info[MM_STR_AUDIO_ENCODER].validity_value2 = (int)0;
+               stream_attrs_const_info[MM_STR_AUDIO_ENCODER].validity_value_1.int_array = NULL;
+               stream_attrs_const_info[MM_STR_AUDIO_ENCODER].validity_value_2.count = 0;
        }
 
-       allocated_memory = (int *)(stream_attrs_const_info[MM_STR_VIDEO_ENCODER].validity_value1);
+       allocated_memory = (int *)(stream_attrs_const_info[MM_STR_VIDEO_ENCODER].validity_value_1.int_array);
        if (allocated_memory) {
                free(allocated_memory);
-               stream_attrs_const_info[MM_STR_VIDEO_ENCODER].validity_value1 = (int)NULL;
-               stream_attrs_const_info[MM_STR_VIDEO_ENCODER].validity_value2 = (int)0;
+               stream_attrs_const_info[MM_STR_VIDEO_ENCODER].validity_value_1.int_array = NULL;
+               stream_attrs_const_info[MM_STR_VIDEO_ENCODER].validity_value_2.count = 0;
        }
 
-       allocated_memory = (int *)(stream_attrs_const_info[MM_STR_FILE_FORMAT].validity_value1);
+       allocated_memory = (int *)(stream_attrs_const_info[MM_STR_FILE_FORMAT].validity_value_1.int_array);
        if (allocated_memory) {
                free(allocated_memory);
-               stream_attrs_const_info[MM_STR_FILE_FORMAT].validity_value1 = (int)NULL;
-               stream_attrs_const_info[MM_STR_FILE_FORMAT].validity_value2 = (int)0;
+               stream_attrs_const_info[MM_STR_FILE_FORMAT].validity_value_1.int_array = NULL;
+               stream_attrs_const_info[MM_STR_FILE_FORMAT].validity_value_2.count = 0;
        }
        _mmstreamrec_dbg_log("DONE");
 
@@ -789,18 +789,32 @@ MMHandleType _mmstreamrecorder_alloc_attribute(MMHandleType handle)
 
                switch (stream_attrs_const_info[idx].validity_type) {
                case MM_ATTRS_VALID_TYPE_INT_ARRAY:
-                       if (stream_attrs_const_info[idx].validity_value1 && stream_attrs_const_info[idx].validity_value2 > 0)
-                               mmf_attrs_set_valid_array(attrs, idx, (const int *)(stream_attrs_const_info[idx].validity_value1), stream_attrs_const_info[idx].validity_value2, (int)(stream_attrs_const_info[idx].default_value.value_int));
+                       if (stream_attrs_const_info[idx].validity_value_1.int_array &&
+                                       stream_attrs_const_info[idx].validity_value_2.count > 0)
+                               mmf_attrs_set_valid_array(attrs, idx,
+                                               (const int *)(stream_attrs_const_info[idx].validity_value_1.int_array),
+                                               stream_attrs_const_info[idx].validity_value_2.count,
+                                               stream_attrs_const_info[idx].default_value.value_int);
                        break;
                case MM_ATTRS_VALID_TYPE_INT_RANGE:
-                       mmf_attrs_set_valid_range(attrs, idx, stream_attrs_const_info[idx].validity_value1, stream_attrs_const_info[idx].validity_value2, (int)(stream_attrs_const_info[idx].default_value.value_int));
+                       mmf_attrs_set_valid_range(attrs, idx,
+                                       stream_attrs_const_info[idx].validity_value_1.int_min,
+                                       stream_attrs_const_info[idx].validity_value_2.int_max,
+                                       stream_attrs_const_info[idx].default_value.value_int);
                        break;
                case MM_ATTRS_VALID_TYPE_DOUBLE_ARRAY:
-                       if (stream_attrs_const_info[idx].validity_value1 && stream_attrs_const_info[idx].validity_value2 > 0)
-                               mmf_attrs_set_valid_double_array(attrs, idx, (const double *)(stream_attrs_const_info[idx].validity_value1), stream_attrs_const_info[idx].validity_value2, (double)(stream_attrs_const_info[idx].default_value.value_double));
+                       if (stream_attrs_const_info[idx].validity_value_1.double_array &&
+                                       stream_attrs_const_info[idx].validity_value_2.count > 0)
+                               mmf_attrs_set_valid_double_array(attrs, idx,
+                                               (const double *)(stream_attrs_const_info[idx].validity_value_1.double_array),
+                                               stream_attrs_const_info[idx].validity_value_2.count,
+                                               stream_attrs_const_info[idx].default_value.value_double);
                        break;
                case MM_ATTRS_VALID_TYPE_DOUBLE_RANGE:
-                       mmf_attrs_set_valid_double_range(attrs, idx, (double)(stream_attrs_const_info[idx].validity_value1), (double)(stream_attrs_const_info[idx].validity_value2), (double)(stream_attrs_const_info[idx].default_value.value_double));
+                       mmf_attrs_set_valid_double_range(attrs, idx,
+                                       stream_attrs_const_info[idx].validity_value_1.double_min,
+                                       stream_attrs_const_info[idx].validity_value_2.double_max,
+                                       stream_attrs_const_info[idx].default_value.value_double);
                        break;
                case MM_ATTRS_VALID_TYPE_NONE:
                        break;
index d572501..06d1b82 100644 (file)
@@ -323,9 +323,9 @@ MSG_CALLBACK_DONE:
                MMStreamRecordingReport *report = (MMStreamRecordingReport *)item->param.data;
                if (report) {
                        SAFE_FREE(report->recording_filename);
+                       SAFE_FREE(report);
                        item->param.data = NULL;
                }
-               SAFE_FREE(report);
        }
        SAFE_FREE(item);