summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeongmo Yang <jm80.yang@samsung.com>2013-06-04 11:57:38 +0900
committerJeongmo Yang <jm80.yang@samsung.com>2013-06-04 11:57:38 +0900
commit21af7f0bb8f2548dd27e7f48e8ad54d5a3cfe842 (patch)
treeea05f3e3022e6409937309fe1419fcea322cbbfc
parent63ec1223bd30d0158ae4af93d113586e85244fe0 (diff)
downloadrecorder-21af7f0bb8f2548dd27e7f48e8ad54d5a3cfe842.tar.gz
recorder-21af7f0bb8f2548dd27e7f48e8ad54d5a3cfe842.tar.bz2
recorder-21af7f0bb8f2548dd27e7f48e8ad54d5a3cfe842.zip
Support OGG file format, Add new error type for ESD, OUT_OF_STORAGE
-rw-r--r--include/recorder.h19
-rw-r--r--packaging/capi-media-recorder.spec4
-rw-r--r--src/recorder.c55
3 files changed, 53 insertions, 25 deletions
diff --git a/include/recorder.h b/include/recorder.h
index 7b74595..8980d71 100644
--- a/include/recorder.h
+++ b/include/recorder.h
@@ -49,14 +49,16 @@ typedef struct recorder_s *recorder_h;
*/
typedef enum
{
- RECORDER_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */
- RECORDER_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */
- RECORDER_ERROR_INVALID_STATE = RECORDER_ERROR_CLASS | 0x02, /**< Invalid state */
- RECORDER_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY , /**< Out of memory */
- RECORDER_ERROR_DEVICE = RECORDER_ERROR_CLASS | 0x04, /**< Device error */
- RECORDER_ERROR_INVALID_OPERATION = TIZEN_ERROR_INVALID_OPERATION, /**< Internal error */
- RECORDER_ERROR_SOUND_POLICY = RECORDER_ERROR_CLASS | 0x06, /**< Blocked by Audio Session Manager */
- RECORDER_ERROR_SECURITY_RESTRICTED = RECORDER_ERROR_CLASS | 0x07, /**< Restricted by security system policy */
+ RECORDER_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */
+ RECORDER_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */
+ RECORDER_ERROR_INVALID_STATE = RECORDER_ERROR_CLASS | 0x02, /**< Invalid state */
+ RECORDER_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY , /**< Out of memory */
+ RECORDER_ERROR_DEVICE = RECORDER_ERROR_CLASS | 0x04, /**< Device error */
+ RECORDER_ERROR_INVALID_OPERATION = TIZEN_ERROR_INVALID_OPERATION, /**< Internal error */
+ RECORDER_ERROR_SOUND_POLICY = RECORDER_ERROR_CLASS | 0x06, /**< Blocked by Audio Session Manager */
+ RECORDER_ERROR_SECURITY_RESTRICTED = RECORDER_ERROR_CLASS | 0x07, /**< Restricted by security system policy */
+ RECORDER_ERROR_ESD = RECORDER_ERROR_CLASS | 0x0a, /**< ESD situation */
+ RECORDER_ERROR_OUT_OF_STORAGE = RECORDER_ERROR_CLASS | 0x0b, /**< Out of storage */
} recorder_error_e;
/**
@@ -91,6 +93,7 @@ typedef enum
RECORDER_FILE_FORMAT_AMR, /**< AMR file format */
RECORDER_FILE_FORMAT_ADTS, /**< ADTS file format */
RECORDER_FILE_FORMAT_WAV, /**< WAV file format */
+ RECORDER_FILE_FORMAT_OGG, /**< OGG file format */
} recorder_file_format_e;
diff --git a/packaging/capi-media-recorder.spec b/packaging/capi-media-recorder.spec
index 075297d..dda38e8 100644
--- a/packaging/capi-media-recorder.spec
+++ b/packaging/capi-media-recorder.spec
@@ -1,7 +1,7 @@
Name: capi-media-recorder
Summary: A Recorder library in Tizen C API
-Version: 0.1.1
-Release: 3
+Version: 0.1.2
+Release: 0
Group: libdevel
License: Apache-2.0
Source0: %{name}-%{version}.tar.gz
diff --git a/src/recorder.c b/src/recorder.c
index 49d9169..b976cac 100644
--- a/src/recorder.c
+++ b/src/recorder.c
@@ -106,7 +106,6 @@ static int __convert_recorder_error_code(const char *func, int code){
case MM_ERROR_CAMCORDER_DEVICE_OPEN :
case MM_ERROR_CAMCORDER_DEVICE_IO :
case MM_ERROR_CAMCORDER_DEVICE_TIMEOUT :
- case MM_ERROR_CAMCORDER_DEVICE_REG_TROUBLE :
case MM_ERROR_CAMCORDER_DEVICE_WRONG_JPEG :
case MM_ERROR_CAMCORDER_DEVICE_LACK_BUFFER :
ret = RECORDER_ERROR_DEVICE;
@@ -154,6 +153,16 @@ static int __convert_recorder_error_code(const char *func, int code){
errorstr = "ERROR_RESTRICTED";
break;
+ case MM_ERROR_CAMCORDER_DEVICE_REG_TROUBLE:
+ ret = RECORDER_ERROR_ESD;
+ errorstr = "ERROR_ESD";
+ break;
+
+ case MM_ERROR_OUT_OF_STORAGE:
+ ret = RECORDER_ERROR_OUT_OF_STORAGE;
+ errorstr = "OUT_OF_STORAGE";
+ break;
+
default:
ret = RECORDER_ERROR_INVALID_OPERATION;
errorstr = "INVALID_OPERATION";
@@ -274,7 +283,6 @@ static int __mm_recorder_msg_cb(int message, void *param, void *user_data){
switch( errorcode ){
case MM_ERROR_CAMCORDER_DEVICE :
case MM_ERROR_CAMCORDER_DEVICE_TIMEOUT :
- case MM_ERROR_CAMCORDER_DEVICE_REG_TROUBLE :
case MM_ERROR_CAMCORDER_DEVICE_WRONG_JPEG :
recorder_error = RECORDER_ERROR_DEVICE;
break;
@@ -298,6 +306,12 @@ static int __mm_recorder_msg_cb(int message, void *param, void *user_data){
case MM_ERROR_CAMCORDER_MNOTE_MALLOC :
recorder_error = RECORDER_ERROR_OUT_OF_MEMORY;
break;
+ case MM_ERROR_CAMCORDER_DEVICE_REG_TROUBLE:
+ recorder_error = RECORDER_ERROR_ESD;
+ break;
+ case MM_ERROR_OUT_OF_STORAGE:
+ recorder_error = RECORDER_ERROR_OUT_OF_STORAGE;
+ break;
}
if( recorder_error != 0 && handle->user_cb[_RECORDER_EVENT_TYPE_ERROR] )
((recorder_error_cb)handle->user_cb[_RECORDER_EVENT_TYPE_ERROR])(errorcode, handle->state , handle->user_data[_RECORDER_EVENT_TYPE_ERROR]);
@@ -603,22 +617,30 @@ int recorder_get_filename(recorder_h recorder, char **filename){
}
-int recorder_set_file_format(recorder_h recorder, recorder_file_format_e format){
-
- if( recorder == NULL) return __convert_recorder_error_code(__func__, RECORDER_ERROR_INVALID_PARAMETER);
+int recorder_set_file_format(recorder_h recorder, recorder_file_format_e format)
+{
int ret;
- int format_table[5] = { MM_FILE_FORMAT_3GP , // RECORDER_FILE_FORMAT_3GP,
- MM_FILE_FORMAT_MP4 , //RECORDER_FILE_FORMAT_MP4,
- MM_FILE_FORMAT_AMR, //RECORDER_FILE_FORMAT_AMR,
- MM_FILE_FORMAT_AAC, //RECORDER_FILE_FORMAT_ADTS
- MM_FILE_FORMAT_WAV //RECORDER_FILE_FORMAT_WAV
- };
-
- if( format < RECORDER_FILE_FORMAT_3GP || format > RECORDER_FILE_FORMAT_WAV )
+ int format_table[6] = { MM_FILE_FORMAT_3GP, //RECORDER_FILE_FORMAT_3GP
+ MM_FILE_FORMAT_MP4, //RECORDER_FILE_FORMAT_MP4
+ MM_FILE_FORMAT_AMR, //RECORDER_FILE_FORMAT_AMR
+ MM_FILE_FORMAT_AAC, //RECORDER_FILE_FORMAT_ADTS
+ MM_FILE_FORMAT_WAV, //RECORDER_FILE_FORMAT_WAV
+ MM_FILE_FORMAT_OGG //RECORDER_FILE_FORMAT_OGG
+ };
+ recorder_s *handle = (recorder_s *)recorder;
+
+ if (handle == NULL) {
+ return __convert_recorder_error_code(__func__, RECORDER_ERROR_INVALID_PARAMETER);
+ }
+
+ if (format < RECORDER_FILE_FORMAT_3GP || format > RECORDER_FILE_FORMAT_OGG) {
return RECORDER_ERROR_INVALID_PARAMETER;
+ }
+
+ ret = mm_camcorder_set_attributes(handle->mm_handle, NULL,
+ MMCAM_FILE_FORMAT, format_table[format],
+ NULL);
- recorder_s * handle = (recorder_s*)recorder;
- ret = mm_camcorder_set_attributes(handle->mm_handle ,NULL, MMCAM_FILE_FORMAT , format_table[format], NULL);
return __convert_recorder_error_code(__func__, ret);
}
@@ -649,6 +671,9 @@ int recorder_get_file_format(recorder_h recorder, recorder_file_format_e *format
case MM_FILE_FORMAT_WAV:
*format = RECORDER_FILE_FORMAT_WAV;
break;
+ case MM_FILE_FORMAT_OGG:
+ *format = RECORDER_FILE_FORMAT_OGG;
+ break;
default :
ret = MM_ERROR_CAMCORDER_INTERNAL;
break;