diff options
author | Jeongmo Yang <jm80.yang@samsung.com> | 2013-06-04 11:57:38 +0900 |
---|---|---|
committer | Jeongmo Yang <jm80.yang@samsung.com> | 2013-06-04 11:57:38 +0900 |
commit | 21af7f0bb8f2548dd27e7f48e8ad54d5a3cfe842 (patch) | |
tree | ea05f3e3022e6409937309fe1419fcea322cbbfc | |
parent | 63ec1223bd30d0158ae4af93d113586e85244fe0 (diff) | |
download | recorder-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.h | 19 | ||||
-rw-r--r-- | packaging/capi-media-recorder.spec | 4 | ||||
-rw-r--r-- | src/recorder.c | 55 |
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; |