Name: libmm-camcorder
Summary: Camera and recorder library
-Version: 0.10.246
+Version: 0.10.247
Release: 0
Group: Multimedia/Libraries
License: Apache-2.0
int recreate_decoder; /**< Flag of decoder element recreation for encoded preview format */
gboolean is_network; /**< Flag for network camera */
const char *network_hal_name; /**< Name of network camera HAL library */
+ int default_encoded_preview_bitrate; /**< Default bitrate for encoded preview */
_MMCamcorderInfoConverting caminfo_convert[CAMINFO_CONVERT_NUM]; /**< converting structure of camera info */
_MMCamcorderEnumConvert enum_conv[ENUM_CONVERT_NUM]; /**< enum converting list that is modified by ini info */
-----------------------------------------------------------------------*/
#define MMCAMCORDER_DEFAULT_CAMERA_WIDTH 640
#define MMCAMCORDER_DEFAULT_CAMERA_HEIGHT 480
-#define MMCAMCORDER_DEFAULT_ENCODED_PREVIEW_BITRATE (1024*1024*10)
#define MMCAMCORDER_DEFAULT_ENCODED_PREVIEW_GOP_INTERVAL 1000
#define MMCAMCORDER_DEFAULT_REPLAY_GAIN_REFERENCE_LEVEL 89.0
"encoded-preview-bitrate",
MM_ATTRS_TYPE_INT,
MM_ATTRS_FLAG_RW,
- {(void*)MMCAMCORDER_DEFAULT_ENCODED_PREVIEW_BITRATE},
+ {(void*)0},
MM_ATTRS_VALID_TYPE_INT_RANGE,
{.int_min = 0},
{.int_max = _MMCAMCORDER_MAX_INT},
bool _mmcamcorder_commit_encoded_preview_bitrate(MMHandleType handle, int attr_idx, const MMAttrsValue *value)
{
int current_state = MM_CAMCORDER_STATE_NONE;
- int preview_format = MM_PIXEL_FORMAT_NV12;
mmf_return_val_if_fail(handle && value, FALSE);
MMCAM_LOG_INFO("Commit : encoded preview bitrate - %d", value->value.i_val);
- /* check preview format */
- mm_camcorder_get_attributes(handle, NULL, MMCAM_CAMERA_FORMAT, &preview_format, NULL);
- if (!_mmcamcorder_is_encoded_preview_pixel_format(preview_format)) {
- MMCAM_LOG_ERROR("current preview format[%d] is not encoded format", preview_format);
- return FALSE;
- }
-
/* check state */
current_state = _mmcamcorder_get_state(handle);
if (current_state < MM_CAMCORDER_STATE_READY) {
| LOCAL VARIABLE DEFINITIONS |
-----------------------------------------------------------------------*/
#define DEFAULT_AUDIO_BUFFER_INTERVAL 50
+#define DEFAULT_ENCODED_PREVIEW_BITRATE (1024*1024*4)
#define MMCAMCORDER_CONF_FILEPATH_LENGTH 128
#define MMCAMCORDER_BUFFER_LINE_MAX 256
/* [VideoInput] matching table */
static conf_info_table conf_main_video_input_table[] = {
- { "VideosrcElement", CONFIGURE_VALUE_ELEMENT, {&_videosrc_element_default} },
- { "UseVideoscale", CONFIGURE_VALUE_INT, {.value_int = 0} },
- { "VideoscaleElement", CONFIGURE_VALUE_ELEMENT, {&_videoscale_element_default} },
- { "UseZeroCopyFormat", CONFIGURE_VALUE_INT, {.value_int = 0} },
- { "DeviceCount", CONFIGURE_VALUE_INT, {.value_int = MM_VIDEO_DEVICE_NUM} },
- { "SupportMediaPacketPreviewCb", CONFIGURE_VALUE_INT, {.value_int = 0} },
- { "SupportUserBuffer", CONFIGURE_VALUE_INT, {.value_int = 0} },
- { "MeasurePreviewFPS", CONFIGURE_VALUE_INT, {.value_int = 0} },
- { "SupportExtraPreview", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "VideosrcElement", CONFIGURE_VALUE_ELEMENT, {&_videosrc_element_default} },
+ { "UseVideoscale", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "VideoscaleElement", CONFIGURE_VALUE_ELEMENT, {&_videoscale_element_default} },
+ { "UseZeroCopyFormat", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "DeviceCount", CONFIGURE_VALUE_INT, {.value_int = MM_VIDEO_DEVICE_NUM} },
+ { "SupportMediaPacketPreviewCb", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "SupportUserBuffer", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "MeasurePreviewFPS", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "SupportExtraPreview", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "DefaultEncodedPreviewBitrate", CONFIGURE_VALUE_INT, {.value_int = DEFAULT_ENCODED_PREVIEW_BITRATE} },
};
/* [AudioInput] matching table */
&hcamcorder->recreate_decoder);
}
- if (_mmcamcorder_is_encoded_preview_pixel_format(sc->info_image->preview_format)) {
- int preview_bitrate = 0;
- int gop_interval = 0;
- mm_camcorder_get_attributes(handle, NULL,
- MMCAM_ENCODED_PREVIEW_BITRATE, &preview_bitrate,
- MMCAM_ENCODED_PREVIEW_GOP_INTERVAL, &gop_interval,
- NULL);
-
- /* set encoded preview bitrate */
- if (!_mmcamcorder_set_encoded_preview_bitrate(handle, preview_bitrate))
- MMCAM_LOG_WARNING("_mmcamcorder_set_encoded_preview_bitrate failed");
-
- /* set encoded preview iframe interval */
- if (sc->info_image->preview_format == MM_PIXEL_FORMAT_ENCODED_H264) {
- if (!_mmcamcorder_set_encoded_preview_gop_interval(handle, gop_interval))
- MMCAM_LOG_WARNING("_mmcamcorder_set_encoded_preview_gop_interval failed");
- }
- }
-
if (display_surface_type != MM_DISPLAY_SURFACE_NULL &&
_mmcamcorder_is_encoded_preview_pixel_format(sc->info_image->preview_format)) {
switch (sc->info_image->preview_format) {
"MeasurePreviewFPS",
&hcamcorder->measure_preview_fps);
+ _mmcamcorder_conf_get_value_int((MMHandleType)hcamcorder, hcamcorder->conf_main,
+ CONFIGURE_CATEGORY_MAIN_VIDEO_INPUT,
+ "DefaultEncodedPreviewBitrate",
+ &hcamcorder->default_encoded_preview_bitrate);
+
ret = mm_camcorder_get_attributes((MMHandleType)hcamcorder, NULL,
MMCAM_CAMERA_WIDTH, &resolution_width,
MMCAM_CAMERA_HEIGHT, &resolution_height,
return MM_ERROR_CAMCORDER_INTERNAL;
}
- MMCAM_LOG_INFO("ZC %d, UB %d, VC %d, MPPC %d, EP %d, MPFPS %d",
+ MMCAM_LOG_INFO("ZC %d, UB %d, VC %d, MPPC %d, EP %d, MPFPS %d, DEPB %d",
hcamcorder->use_zero_copy_format, hcamcorder->support_user_buffer,
hcamcorder->use_videoconvert, hcamcorder->support_media_packet_preview_cb,
- hcamcorder->support_extra_preview, hcamcorder->measure_preview_fps);
+ hcamcorder->support_extra_preview, hcamcorder->measure_preview_fps,
+ hcamcorder->default_encoded_preview_bitrate);
MMCAM_LOG_INFO("res : %d X %d, Default FPS by resolution : %d",
resolution_width, resolution_height, fps_info.int_array.def);
MMCAM_CAPTURE_SOUND_ENABLE, play_capture_sound,
MMCAM_PLATFORM_PRIVILEGE_CAMERA, platform_privilege_camera,
platform_privilege_camera ? strlen(platform_privilege_camera) : 0,
+ MMCAM_ENCODED_PREVIEW_BITRATE, hcamcorder->default_encoded_preview_bitrate,
NULL);
if (ret != MM_ERROR_NONE) {
MMCAM_LOG_ERROR("[0x%x] Set %s FAILED.", ret, err_attr_name ? err_attr_name : "[UNKNOWN]");
_mmcamcorder_sound_finalize(handle);
} else {
if (_mmcamcorder_is_encoded_preview_pixel_format(info->preview_format)) {
- ret = mm_camcorder_get_attributes(handle, NULL,
+ mm_camcorder_get_attributes(handle, NULL,
MMCAM_ENCODED_PREVIEW_BITRATE, &bitrate,
- NULL);
- if (ret == MM_ERROR_NONE)
- _mmcamcorder_set_encoded_preview_bitrate(handle, bitrate);
-
- ret = mm_camcorder_get_attributes(handle, NULL,
MMCAM_ENCODED_PREVIEW_GOP_INTERVAL, &gop_interval,
NULL);
- if (ret == MM_ERROR_NONE)
- _mmcamcorder_set_encoded_preview_gop_interval(handle, gop_interval);
+
+ _mmcamcorder_set_encoded_preview_bitrate(handle, bitrate);
+ _mmcamcorder_set_encoded_preview_gop_interval(handle, gop_interval);
}
MMCAMCORDER_G_OBJECT_SET(sc->element[_MMCAMCORDER_VIDEOSRC_QUE].gst, "empty-buffers", FALSE);