summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-x.gitignore26
-rwxr-xr-xCMakeLists.txt7
-rwxr-xr-xcapi-media-recorder.pc.in2
-rwxr-xr-xdebian/changelog24
-rwxr-xr-xdebian/control6
-rwxr-xr-xinclude/recorder.h37
-rwxr-xr-xinclude/recorder_private.h1
-rwxr-xr-xpackaging/capi-media-recorder.spec10
-rwxr-xr-xsrc/recorder.c66
9 files changed, 125 insertions, 54 deletions
diff --git a/.gitignore b/.gitignore
deleted file mode 100755
index f884ceb..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,26 +0,0 @@
-CMakeCache.txt
-*/CMakeFiles/*
-*.cmake
-CMakeFiles*
-*.a
-*.so
-Testing
-cmake.depends
-cmake.check_depends
-cmake.check_cache
-core
-core.*
-gmon.out
-install_manifest.txt
-*~
-.kdev_include_paths
-src.kdev4
-.cproject
-.project
-tet_captured
-tet_lock
-*.pc
-*-test
-*-test_*
-*tester.c
-TC/config
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 19f4344..11ae346 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -24,9 +24,7 @@ SET(submodule "recorder")
# for package file
SET(dependents "dlog mm-camcorder capi-media-camera")
-
-# for deb
-SET(deb_dependents "libdlog-0 libmm-camcorder capi-media-camera")
+SET(pc_dependents "capi-base-common capi-media-camera")
SET(fw_name "${project_prefix}-${service}-${submodule}")
@@ -78,9 +76,8 @@ INSTALL(
)
SET(PC_NAME ${fw_name})
-SET(PC_REQUIRED ${dependents})
+SET(PC_REQUIRED ${pc_dependents})
SET(PC_LDFLAGS -l${fw_name})
-SET(PC_CFLAGS -I\${includedir}/${service})
CONFIGURE_FILE(
${fw_name}.pc.in
diff --git a/capi-media-recorder.pc.in b/capi-media-recorder.pc.in
index 773d667..5d02f8d 100755
--- a/capi-media-recorder.pc.in
+++ b/capi-media-recorder.pc.in
@@ -11,5 +11,5 @@ Description: @PACKAGE_DESCRIPTION@
Version: @VERSION@
Requires: @PC_REQUIRED@
Libs: -L${libdir} @PC_LDFLAGS@
-Cflags: -I${includedir} @PC_CFLAGS@
+Cflags: -I${includedir}
diff --git a/debian/changelog b/debian/changelog
index 2c8d9ed..9c2af03 100755
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,27 @@
+capi-media-recorder (0.1.0-8) unstable; urgency=low
+
+ * update dependency
+ * Git: slp-source.sec.samsung.net:slp/api/recorder
+ * Tag: capi-media-recorder_0.1.0-8
+
+ -- Seungkeun Lee <sngn.lee@samsung.com> Wed, 14 Mar 2012 12:06:14 +0900
+
+capi-media-recorder (0.1.0-7) unstable; urgency=low
+
+ * new API added : mute , audio_level
+ * Git: slp-source.sec.samsung.net:slp/api/recorder
+ * Tag: capi-media-recorder_0.1.0-7
+
+ -- Seungkeun Lee <sngn.lee@samsung.com> Thu, 08 Mar 2012 17:43:04 +0900
+
+capi-media-recorder (0.1.0-6) unstable; urgency=low
+
+ * add static , change internal function name
+ * Git: slp-source.sec.samsung.net:slp/api/recorder
+ * Tag: capi-media-recorder_0.1.0-6
+
+ -- Seungkeun Lee <sngn.lee@samsung.com> Mon, 20 Feb 2012 15:52:26 +0900
+
capi-media-recorder (0.1.0-5) unstable; urgency=low
* add so version
diff --git a/debian/control b/debian/control
index 2cb8739..7e8b397 100755
--- a/debian/control
+++ b/debian/control
@@ -3,16 +3,16 @@ Source: capi-media-recorder
Section: libs
Priority: extra
Maintainer: Seungkeun Lee <sngn.lee@samsung.com>, Kangho Hur<kagho.hur@samsung.com>
-Build-Depends: debhelper (>= 5), libmm-camcorder-dev, libmm-common-dev, capi-media-camera-dev
+Build-Depends: debhelper (>= 5), libmm-camcorder-dev, libmm-common-dev, capi-media-camera-dev, dlog-dev
Package: capi-media-recorder
Architecture: any
-Depends: ${shilbs:Depends}, ${misc:Depends}
+Depends: ${shlibs:Depends}, ${misc:Depends}
Description: A Camera library in Tizen Native API
Package: capi-media-recorder-dev
Architecture: any
-Depends: ${shlibs:Depends}, ${misc:Depends}, capi-media-recorder (= ${Source-Version}), dlog-dev, capi-base-common-dev, capi-media-camera-dev, libmm-camcorder-dev
+Depends: ${shlibs:Depends}, ${misc:Depends}, capi-media-recorder (= ${Source-Version}), capi-base-common-dev, capi-media-camera-dev
Description: A Camera library in Tizen Native API (DEV)
Package: capi-media-recorder-dbg
diff --git a/include/recorder.h b/include/recorder.h
index fbb02dc..ddfc345 100755
--- a/include/recorder.h
+++ b/include/recorder.h
@@ -407,6 +407,18 @@ int recorder_cancel(recorder_h recorder);
*/
int recorder_get_state(recorder_h recorder, recorder_state_e *state);
+/**
+ * @brief Gets the peak audio input level that was sampled since the last call to this function.
+ * @remarks 0 dB indicates maximum input level, -300dB indicates minimum input level
+ * @param[in] recorder The handle to the recorder.
+ * @param[out] level The audio input level in dB
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #RECORDER_ERROR_NONE Successful
+ * @retval #RECORDER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #RECORDER_ERROR_INVALID_STATE Invalid state
+ * @pre The recorder state must be #RECORDER_STATE_RECORDING or #RECORDER_STATE_PAUSED
+ */
+int recorder_get_audio_level(recorder_h recorder, double *dB);
/**
* @brief Sets the file path to record
@@ -869,6 +881,31 @@ int recorder_attr_get_audio_encoder_bitrate(recorder_h recorder, int *bitrate);
*/
int recorder_attr_get_video_encoder_bitrate(recorder_h recorder, int *bitrate);
+
+
+/**
+ * @brief Sets the mute state of recorder
+ * @param[in] recorder The handle to media recorder
+ * @param[in] enable The mute state
+ * @return 0 on success, otherwise a negative error value.
+ * @retval #RECORDER_ERROR_NONE Successful
+ * @retval #RECORDER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @see recorder_attr_is_muted()
+ */
+int recorder_attr_set_mute(recorder_h recorder, bool enable);
+
+/**
+ * @brief Gets the mute state of recorder
+ * @param[in] recorder The handle to media recorder
+ * @return true if the recorder is not recording any sound,\nelse false
+ * @retval #RECORDER_ERROR_NONE Successful
+ * @retval #RECORDER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @see recorder_attr_set_mute()
+ */
+bool recorder_attr_is_muted(recorder_h recorder);
+
+
+
/**
* @}
*/
diff --git a/include/recorder_private.h b/include/recorder_private.h
index d66cce8..1f349b2 100755
--- a/include/recorder_private.h
+++ b/include/recorder_private.h
@@ -46,6 +46,7 @@ typedef struct _recorder_s{
int state;
_recorder_type_e type;
int origin_preview_format;
+ double last_max_input_level;
} recorder_s;
diff --git a/packaging/capi-media-recorder.spec b/packaging/capi-media-recorder.spec
index e51c401..34cd470 100755
--- a/packaging/capi-media-recorder.spec
+++ b/packaging/capi-media-recorder.spec
@@ -1,7 +1,7 @@
Name: capi-media-recorder
Summary: A Camera library in Tizen Native API
Version: 0.1.0
-Release: 1
+Release: 8
Group: TO_BE/FILLED_IN
License: Apache-2.0
Source0: %{name}-%{version}.tar.gz
@@ -27,9 +27,8 @@ Requires: %{name} = %{version}-%{release}
%build
-FULLVER=%{version}
-MAJORVER=`echo ${FULLVER} | cut -d '.' -f 1`
-cmake . -DCMAKE_INSTALL_PREFIX=/usr -DFULLVER=${FULLVER} -DMAJORVER=${MAJORVER}
+MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
+cmake . -DCMAKE_INSTALL_PREFIX=/usr -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
make %{?jobs:-j%jobs}
@@ -44,10 +43,11 @@ rm -rf %{buildroot}
%files
-%{_libdir}/libcapi-media-recorder.so*
+%{_libdir}/libcapi-media-recorder.so.*
%files devel
%{_includedir}/media/recorder.h
%{_libdir}/pkgconfig/*.pc
+%{_libdir}/libcapi-media-recorder.so
diff --git a/src/recorder.c b/src/recorder.c
index f79e502..f315072 100755
--- a/src/recorder.c
+++ b/src/recorder.c
@@ -11,7 +11,7 @@
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
-* limitations under the License.
+* limitations under the License.
*/
@@ -33,6 +33,8 @@
#endif
#define LOG_TAG "TIZEN_N_RECORDER"
+#define LOWSET_DECIBEL -300.0
+
/*
* camera_private
@@ -194,7 +196,7 @@ static int __mm_recorder_msg_cb(int message, void *param, void *user_data){
recorder_s * handle = (recorder_s*)user_data;
MMMessageParamType *m = (MMMessageParamType*)param;
- recorder_state_e previous_state;
+ recorder_state_e previous_state;
switch(message){
case MM_MESSAGE_CAMCORDER_STATE_CHANGED:
@@ -253,9 +255,10 @@ static int __mm_recorder_msg_cb(int message, void *param, void *user_data){
}
break;
}
-
-
-
+ case MM_MESSAGE_CAMCORDER_CURRENT_VOLUME:
+ if( handle->last_max_input_level < m->rec_volume_dB )
+ handle->last_max_input_level = m->rec_volume_dB;
+ break;
}
return 1;
@@ -284,7 +287,8 @@ int recorder_create_videorecorder( camera_h camera, recorder_h* recorder){
}
memset(handle, 0 , sizeof(recorder_s));
-
+ handle->last_max_input_level = LOWSET_DECIBEL;
+
handle->mm_handle = ((camera_s*)camera)->mm_handle;
handle->camera = camera;
handle->state = RECORDER_STATE_CREATED;
@@ -302,8 +306,8 @@ int recorder_create_videorecorder( camera_h camera, recorder_h* recorder){
preview_format = MM_PIXEL_FORMAT_NV12;
ret = mm_camcorder_get_attributes(handle->mm_handle, NULL, MMCAM_RECOMMEND_PREVIEW_FORMAT_FOR_RECORDING, &preview_format, NULL);
- ret = mm_camcorder_set_attributes(handle->mm_handle, NULL,
- MMCAM_MODE , MM_CAMCORDER_MODE_VIDEO,
+ ret = mm_camcorder_set_attributes(handle->mm_handle, NULL,
+ MMCAM_MODE , MM_CAMCORDER_MODE_VIDEO,
MMCAM_CAMERA_FORMAT, preview_format,
(void*)NULL);
return __convert_recorder_error_code(__func__, ret);
@@ -326,6 +330,7 @@ int recorder_create_audiorecorder( recorder_h* recorder){
}
memset(handle, 0 , sizeof(recorder_s));
+ handle->last_max_input_level = LOWSET_DECIBEL;
ret = mm_camcorder_create(&handle->mm_handle, &info);
if( ret != MM_ERROR_NONE){
@@ -333,8 +338,8 @@ int recorder_create_audiorecorder( recorder_h* recorder){
LOGE("[%s] mm_camcorder_create fail", __func__);
return __convert_recorder_error_code(__func__, ret);
}
- ret = mm_camcorder_set_attributes(handle->mm_handle, NULL,
- MMCAM_MODE , MM_CAMCORDER_MODE_AUDIO,
+ ret = mm_camcorder_set_attributes(handle->mm_handle, NULL,
+ MMCAM_MODE , MM_CAMCORDER_MODE_AUDIO,
(void*)NULL);
if( ret != MM_ERROR_NONE){
@@ -383,12 +388,12 @@ int recorder_destroy( recorder_h recorder){
handle = (recorder_s *) recorder;
if( handle->type == _RECORDER_TYPE_VIDEO ){
//camera object mode change
- ret = mm_camcorder_set_attributes(handle->mm_handle, NULL,
- MMCAM_MODE , MM_CAMCORDER_MODE_IMAGE,
+ ret = mm_camcorder_set_attributes(handle->mm_handle, NULL,
+ MMCAM_MODE , MM_CAMCORDER_MODE_IMAGE,
MMCAM_CAMERA_FORMAT, handle->origin_preview_format,
- MMCAM_IMAGE_ENCODER , MM_IMAGE_CODEC_JPEG,
+ MMCAM_IMAGE_ENCODER , MM_IMAGE_CODEC_JPEG,
MMCAM_CAPTURE_FORMAT, MM_PIXEL_FORMAT_ENCODED,
- MMCAM_CAPTURE_COUNT, 1,
+ MMCAM_CAPTURE_COUNT, 1,
(void*)NULL);
mm_camcorder_set_message_callback(handle->mm_handle, __mm_camera_message_callback, (void*)handle->camera);
@@ -490,6 +495,18 @@ int recorder_cancel( recorder_h recorder){
return __convert_recorder_error_code(__func__, ret);
}
+int recorder_get_audio_level(recorder_h recorder, double *level){
+ if( recorder == NULL || level == NULL ) return __convert_recorder_error_code(__func__, RECORDER_ERROR_INVALID_PARAMETER);
+ recorder_s *handle = (recorder_s*)recorder;
+
+ if( handle->state < RECORDER_STATE_RECORDING )
+ return RECORDER_ERROR_INVALID_STATE;
+
+ *level = handle->last_max_input_level ;
+ handle->last_max_input_level = LOWSET_DECIBEL;
+ return RECORDER_ERROR_NONE;
+}
+
int recorder_set_filename(recorder_h recorder, const char *filename){
if( recorder == NULL) return __convert_recorder_error_code(__func__, RECORDER_ERROR_INVALID_PARAMETER);
@@ -969,3 +986,24 @@ int recorder_foreach_supported_video_encoder(recorder_h recorder, recorder_suppo
}
+
+int recorder_attr_set_mute(recorder_h recorder, bool enable){
+ if( recorder == NULL) return __convert_recorder_error_code(__func__, RECORDER_ERROR_INVALID_PARAMETER);
+ recorder_s * handle = (recorder_s*)recorder;
+ int ret = mm_camcorder_set_attributes(handle->mm_handle ,NULL, MMCAM_AUDIO_VOLUME , enable ? 0.0 : 1.0 , NULL);
+ return __convert_recorder_error_code(__func__, ret);;
+}
+
+bool recorder_attr_is_muted(recorder_h recorder){
+ if( recorder == NULL){
+ __convert_recorder_error_code(__func__, RECORDER_ERROR_INVALID_PARAMETER);
+ return false;
+ }
+ recorder_s * handle = (recorder_s*)recorder;
+ double volume = 1.0;
+ mm_camcorder_get_attributes(handle->mm_handle ,NULL, MMCAM_AUDIO_VOLUME , &volume , NULL);
+ if( volume == 0.0 )
+ return true;
+ else
+ return false;
+}