+ mmf_camcorder_t *hcamcorder = MMF_CAMCORDER(handle);
+
+ /* Videosrc element default value */
+ static type_element _videosrc_element_default = {
+ "VideosrcElement",
+ "videotestsrc",
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* Audiosrc element default value */
+ static type_int ___audiosrc_default_channel = { "Channel", 1 };
+ static type_int ___audiosrc_default_bitrate = { "BitRate", 8000 };
+ static type_int ___audiosrc_default_depth = { "Depth", 16 };
+ static type_int ___audiosrc_default_blocksize = { "BlockSize", 1280 };
+ static type_int* __audiosrc_default_int_array[] = {
+ &___audiosrc_default_channel,
+ &___audiosrc_default_bitrate,
+ &___audiosrc_default_depth,
+ &___audiosrc_default_blocksize,
+ };
+ static type_string ___audiosrc_default_device = { "Device", "default" };
+ static type_string* __audiosrc_default_string_array[] = {
+ &___audiosrc_default_device,
+ };
+ static type_element _audiosrc_element_default = {
+ "AudiosrcElement",
+ "audiotestsrc",
+ __audiosrc_default_int_array,
+ sizeof( __audiosrc_default_int_array ) / sizeof( type_int* ),
+ __audiosrc_default_string_array,
+ sizeof( __audiosrc_default_string_array ) / sizeof( type_string* ),
+ };
+
+ static type_element _audiomodemsrc_element_default = {
+ "AudiomodemsrcElement",
+ "audiotestsrc",
+ __audiosrc_default_int_array,
+ sizeof( __audiosrc_default_int_array ) / sizeof( type_int* ),
+ __audiosrc_default_string_array,
+ sizeof( __audiosrc_default_string_array ) / sizeof( type_string* ),
+ };
+
+
+ /* Videosink element default value */
+ static type_int ___videosink_default_display_id = { "display-id", 3 };
+ static type_int ___videosink_default_x = { "x", 0 };
+ static type_int ___videosink_default_y = { "y", 0 };
+ static type_int ___videosink_default_width = { "width", 800 };
+ static type_int ___videosink_default_height = { "height", 480 };
+ static type_int ___videosink_default_rotation = { "rotation", 1 };
+ static type_int* __videosink_default_int_array[] = {
+ &___videosink_default_display_id,
+ &___videosink_default_x,
+ &___videosink_default_y,
+ &___videosink_default_width,
+ &___videosink_default_height,
+ &___videosink_default_rotation,
+ };
+ static type_string* __videosink_default_string_array[] = { NULL };
+ static type_element _videosink_element_overlay_default = {
+ "VideosinkElementOverlay",
+ "waylandsink",
+ __videosink_default_int_array,
+ sizeof( __videosink_default_int_array ) / sizeof( type_int* ),
+ __videosink_default_string_array,
+ sizeof( __videosink_default_string_array ) / sizeof( type_string* ),
+ };
+ static type_element _videosink_element_evas_default = {
+ "VideosinkElementEvas",
+ "evasimagesink",
+ __videosink_default_int_array,
+ sizeof( __videosink_default_int_array ) / sizeof( type_int* ),
+ __videosink_default_string_array,
+ sizeof( __videosink_default_string_array ) / sizeof( type_string* ),
+ };
+ static type_element _videosink_element_gl_default = {
+ "VideosinkElementGL",
+ "glimagesink",
+ __videosink_default_int_array,
+ sizeof( __videosink_default_int_array ) / sizeof( type_int* ),
+ __videosink_default_string_array,
+ sizeof( __videosink_default_string_array ) / sizeof( type_string* ),
+ };
+ static type_element _videosink_element_remote_default = {
+ "VideosinkElementRemote",
+ "shmsink",
+ __videosink_default_int_array,
+ sizeof( __videosink_default_int_array ) / sizeof( type_int* ),
+ __videosink_default_string_array,
+ sizeof( __videosink_default_string_array ) / sizeof( type_string* ),
+ };
+ static type_element _videosink_element_null_default = {
+ "VideosinkElementNull",
+ "fakesink",
+ __videosink_default_int_array,
+ sizeof( __videosink_default_int_array ) / sizeof( type_int* ),
+ __videosink_default_string_array,
+ sizeof( __videosink_default_string_array ) / sizeof( type_string* ),
+ };
+
+ /* Videoscale element default value */
+ static type_element _videoscale_element_default = {
+ "VideoscaleElement",
+ "videoscale",
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* Videoconvert element default value */
+ static type_element _videoconvert_element_default = {
+ "VideoconvertElement",
+ "videoconvert",
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* Record sink element default value */
+ static type_element _recordsink_element_default = {
+ "RecordsinkElement",
+ "fakesink",
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* H263 element default value */
+ static type_element _h263_element_default = {
+ "H263",
+ "avenc_h263",
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* H264 element default value */
+ static type_element _h264_element_default = {
+ "H264",
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* H26L element default value */
+ static type_element _h26l_element_default = {
+ "H26L",
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* MPEG4 element default value */
+ static type_element _mpeg4_element_default = {
+ "MPEG4",
+ "avenc_mpeg4",
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* MPEG1 element default value */
+ static type_element _mpeg1_element_default = {
+ "MPEG1",
+ "avenc_mpeg1video",
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* THEORA element default value */
+ static type_element _theora_element_default = {
+ "THEORA",
+ "theoraenc",
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* AMR element default value */
+ static type_element _amr_element_default = {
+ "AMR",
+ "amrnbenc",
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* G723_1 element default value */
+ static type_element _g723_1_element_default = {
+ "G723_1",
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* MP3 element default value */
+ static type_element _mp3_element_default = {
+ "MP3",
+ "lamemp3enc",
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* AAC element default value */
+ static type_element _aac_element_default = {
+ "AAC",
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* MMF element default value */
+ static type_element _mmf_element_default = {
+ "MMF",
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* ADPCM element default value */
+ static type_element _adpcm_element_default = {
+ "ADPCM",
+ "avenc_adpcm_ima_qt",
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* WAVE element default value */
+ static type_element _wave_element_default = {
+ "WAVE",
+ "wavenc",
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* VORBIS element default value */
+ static type_element _vorbis_element_default = {
+ "VORBIS",
+ "vorbisenc",
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* MIDI element default value */
+ static type_element _midi_element_default = {
+ "MIDI",
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* IMELODY element default value */
+ static type_element _imelody_element_default = {
+ "IMELODY",
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* JPEG element default value */
+ static type_element _jpeg_element_default = {
+ "JPEG",
+ "jpegenc",
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* PNG element default value */
+ static type_element _png_element_default = {
+ "PNG",
+ "pngenc",
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* BMP element default value */
+ static type_element _bmp_element_default = {
+ "BMP",
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* WBMP element default value */
+ static type_element _wbmp_element_default = {
+ "WBMP",
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* TIFF element default value */
+ static type_element _tiff_element_default = {
+ "TIFF",
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* PCX element default value */
+ static type_element _pcx_element_default = {
+ "PCX",
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* GIF element default value */
+ static type_element _gif_element_default = {
+ "GIF",
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* ICO element default value */
+ static type_element _ico_element_default = {
+ "ICO",
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* RAS element default value */
+ static type_element _ras_element_default = {
+ "RAS",
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* TGA element default value */
+ static type_element _tga_element_default = {
+ "TGA",
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* XBM element default value */
+ static type_element _xbm_element_default = {
+ "XBM",
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* XPM element default value */
+ static type_element _xpm_element_default = {
+ "XPM",
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* 3GP element default value */
+ static type_element _3gp_element_default = {
+ "3GP",
+ "avmux_3gp",
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* AMR mux element default value */
+ static type_element _amrmux_element_default = {
+ "AMR",
+ "avmux_amr",
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* MP4 element default value */
+ static type_element _mp4_element_default = {
+ "MP4",
+ "avmux_mp4",
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* AAC mux element default value */
+ static type_element _aacmux_element_default = {
+ "AAC",
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* MP3 mux element default value */
+ static type_element _mp3mux_element_default = {
+ "MP3",
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* OGG element default value */
+ static type_element _ogg_element_default = {
+ "OGG",
+ "oggmux",
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* WAV element default value */
+ static type_element _wav_element_default = {
+ "WAV",
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* AVI element default value */
+ static type_element _avi_element_default = {
+ "AVI",
+ "avimux",
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* WMA element default value */
+ static type_element _wma_element_default = {
+ "WMA",
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* WMV element default value */
+ static type_element _wmv_element_default = {
+ "WMV",
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* MID element default value */
+ static type_element _mid_element_default = {
+ "MID",
+ NULL,
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* MMF mux element default value */
+ static type_element _mmfmux_element_default = {
+ "MMF",
+ "avmux_mmf",
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* MATROSKA element default value */
+ static type_element _matroska_element_default = {
+ "MATROSKA",
+ "matroskamux",
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* M2TS element default value */
+ static type_element _m2ts_element_default = {
+ "M2TS",
+ "mpegtsmux",
+ NULL,
+ 0,
+ NULL,
+ 0,
+ };
+
+ /* [General] matching table */
+ static conf_info_table conf_main_general_table[] = {
+ { "SyncStateChange", CONFIGURE_VALUE_INT, {.value_int = 1} },
+ { "GSTInitOption", CONFIGURE_VALUE_STRING_ARRAY, {NULL} },
+ { "ModelName", CONFIGURE_VALUE_STRING, {NULL} },
+ { "DisabledAttributes", CONFIGURE_VALUE_STRING_ARRAY, {NULL} },
+ };
+
+ /* [VideoInput] matching table */
+ static conf_info_table conf_main_video_input_table[] = {
+ { "UseConfCtrl", CONFIGURE_VALUE_INT, {.value_int = 1} },
+ { "ConfCtrlFile0", CONFIGURE_VALUE_STRING, {NULL} },
+ { "ConfCtrlFile1", CONFIGURE_VALUE_STRING, {NULL} },
+ { "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} },
+ };
+
+ /* [AudioInput] matching table */
+ static conf_info_table conf_main_audio_input_table[] = {
+ { "AudioDevice", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "AudiosrcElement", CONFIGURE_VALUE_ELEMENT, {&_audiosrc_element_default} },
+ { "AudiomodemsrcElement", CONFIGURE_VALUE_ELEMENT, {&_audiomodemsrc_element_default} },
+ };
+
+ /* [VideoOutput] matching table */
+ static conf_info_table conf_main_video_output_table[] = {
+ { "DisplayDevice", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "DisplayMode", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "Videosink", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "VideosinkElementOverlay", CONFIGURE_VALUE_ELEMENT, {&_videosink_element_overlay_default} },
+ { "VideosinkElementEvas", CONFIGURE_VALUE_ELEMENT, {&_videosink_element_evas_default} },
+ { "VideosinkElementGL", CONFIGURE_VALUE_ELEMENT, {&_videosink_element_gl_default} },
+ { "VideosinkElementRemote", CONFIGURE_VALUE_ELEMENT, {&_videosink_element_remote_default} },
+ { "VideosinkElementNull", CONFIGURE_VALUE_ELEMENT, {&_videosink_element_null_default} },
+ { "UseVideoscale", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "VideoscaleElement", CONFIGURE_VALUE_ELEMENT, {&_videoscale_element_default} },
+ { "VideoconvertElement", CONFIGURE_VALUE_ELEMENT, {&_videoconvert_element_default} },
+ };
+
+ /* [Capture] matching table */
+ static conf_info_table conf_main_capture_table[] = {
+ { "UseEncodebin", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "UseCaptureMode", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "VideoscaleElement", CONFIGURE_VALUE_ELEMENT, {&_videoscale_element_default} },
+ { "PlayCaptureSound", CONFIGURE_VALUE_INT, {.value_int = 1} },
+ };
+
+ /* [Record] matching table */
+ static conf_info_table conf_main_record_table[] = {
+ { "UseAudioEncoderQueue", CONFIGURE_VALUE_INT, {.value_int = 1} },
+ { "UseVideoEncoderQueue", CONFIGURE_VALUE_INT, {.value_int = 1} },
+ { "VideoProfile", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "VideoAutoAudioConvert", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "VideoAutoAudioResample", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "VideoAutoColorSpace", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "AudioProfile", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "AudioAutoAudioConvert", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "AudioAutoAudioResample", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "AudioAutoColorSpace", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "ImageProfile", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "ImageAutoAudioConvert", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "ImageAutoAudioResample", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "ImageAutoColorSpace", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "RecordsinkElement", CONFIGURE_VALUE_ELEMENT, {&_recordsink_element_default} },
+ { "UseNoiseSuppressor", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "DropVideoFrame", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "PassFirstVideoFrame", CONFIGURE_VALUE_INT, {.value_int = 0} },
+ { "SupportDualStream", CONFIGURE_VALUE_INT, {.value_int = FALSE} },
+ };
+
+ /* [VideoEncoder] matching table */
+ static conf_info_table conf_main_video_encoder_table[] = {
+ { "H263", CONFIGURE_VALUE_ELEMENT, {&_h263_element_default} },
+ { "H264", CONFIGURE_VALUE_ELEMENT, {&_h264_element_default} },
+ { "H26L", CONFIGURE_VALUE_ELEMENT, {&_h26l_element_default} },
+ { "MPEG4", CONFIGURE_VALUE_ELEMENT, {&_mpeg4_element_default} },
+ { "MPEG1", CONFIGURE_VALUE_ELEMENT, {&_mpeg1_element_default} },
+ { "THEORA", CONFIGURE_VALUE_ELEMENT, {&_theora_element_default} },
+ };
+
+ /* [AudioEncoder] matching table */
+ static conf_info_table conf_main_audio_encoder_table[] = {
+ { "AMR", CONFIGURE_VALUE_ELEMENT, {&_amr_element_default} },
+ { "G723_1", CONFIGURE_VALUE_ELEMENT, {&_g723_1_element_default} },
+ { "MP3", CONFIGURE_VALUE_ELEMENT, {&_mp3_element_default} },
+ { "AAC", CONFIGURE_VALUE_ELEMENT, {&_aac_element_default} },
+ { "MMF", CONFIGURE_VALUE_ELEMENT, {&_mmf_element_default} },
+ { "ADPCM", CONFIGURE_VALUE_ELEMENT, {&_adpcm_element_default} },
+ { "WAVE", CONFIGURE_VALUE_ELEMENT, {&_wave_element_default} },
+ { "MIDI", CONFIGURE_VALUE_ELEMENT, {&_midi_element_default} },
+ { "IMELODY", CONFIGURE_VALUE_ELEMENT, {&_imelody_element_default} },
+ { "VORBIS", CONFIGURE_VALUE_ELEMENT, {&_vorbis_element_default} },
+ };
+
+ /* [ImageEncoder] matching table */
+ static conf_info_table conf_main_image_encoder_table[] = {
+ { "JPEG", CONFIGURE_VALUE_ELEMENT, {&_jpeg_element_default} },
+ { "PNG", CONFIGURE_VALUE_ELEMENT, {&_png_element_default} },
+ { "BMP", CONFIGURE_VALUE_ELEMENT, {&_bmp_element_default} },
+ { "WBMP", CONFIGURE_VALUE_ELEMENT, {&_wbmp_element_default} },
+ { "TIFF", CONFIGURE_VALUE_ELEMENT, {&_tiff_element_default} },
+ { "PCX", CONFIGURE_VALUE_ELEMENT, {&_pcx_element_default} },
+ { "GIF", CONFIGURE_VALUE_ELEMENT, {&_gif_element_default} },
+ { "ICO", CONFIGURE_VALUE_ELEMENT, {&_ico_element_default} },
+ { "RAS", CONFIGURE_VALUE_ELEMENT, {&_ras_element_default} },
+ { "TGA", CONFIGURE_VALUE_ELEMENT, {&_tga_element_default} },
+ { "XBM", CONFIGURE_VALUE_ELEMENT, {&_xbm_element_default} },
+ { "XPM", CONFIGURE_VALUE_ELEMENT, {&_xpm_element_default} },
+ };
+
+ /* [Mux] matching table */
+ static conf_info_table conf_main_mux_table[] = {
+ { "3GP", CONFIGURE_VALUE_ELEMENT, {&_3gp_element_default} },
+ { "AMR", CONFIGURE_VALUE_ELEMENT, {&_amrmux_element_default} },
+ { "MP4", CONFIGURE_VALUE_ELEMENT, {&_mp4_element_default} },
+ { "AAC", CONFIGURE_VALUE_ELEMENT, {&_aacmux_element_default} },
+ { "MP3", CONFIGURE_VALUE_ELEMENT, {&_mp3mux_element_default} },
+ { "OGG", CONFIGURE_VALUE_ELEMENT, {&_ogg_element_default} },
+ { "WAV", CONFIGURE_VALUE_ELEMENT, {&_wav_element_default} },
+ { "AVI", CONFIGURE_VALUE_ELEMENT, {&_avi_element_default} },
+ { "WMA", CONFIGURE_VALUE_ELEMENT, {&_wma_element_default} },
+ { "WMV", CONFIGURE_VALUE_ELEMENT, {&_wmv_element_default} },
+ { "MID", CONFIGURE_VALUE_ELEMENT, {&_mid_element_default} },
+ { "MMF", CONFIGURE_VALUE_ELEMENT, {&_mmfmux_element_default} },
+ { "MATROSKA", CONFIGURE_VALUE_ELEMENT, {&_matroska_element_default} },
+ { "M2TS", CONFIGURE_VALUE_ELEMENT, {&_m2ts_element_default} },
+ };
+
+
+ /*******************
+ * Camera control *
+ *******************/
+
+ /* [Camera] matching table */
+ static conf_info_table conf_ctrl_camera_table[] = {
+ { "InputIndex", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "DeviceName", CONFIGURE_VALUE_STRING, {NULL} },
+ { "PreviewResolution", CONFIGURE_VALUE_INT_PAIR_ARRAY, {NULL} },
+ { "CaptureResolution", CONFIGURE_VALUE_INT_PAIR_ARRAY, {NULL} },
+ { "VideoResolution", CONFIGURE_VALUE_INT_PAIR_ARRAY, {NULL} },
+ { "FPS0", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "FPS1", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "FPS2", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "FPS3", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "FPS4", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "FPS5", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "FPS6", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "FPS7", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "FPS8", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "FPS9", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "PictureFormat", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "Overlay", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "RecommendDisplayRotation", CONFIGURE_VALUE_INT, {.value_int = 3} },
+ { "RecommendPreviewFormatCapture", CONFIGURE_VALUE_INT, {.value_int = MM_PIXEL_FORMAT_YUYV} },
+ { "RecommendPreviewFormatRecord", CONFIGURE_VALUE_INT, {.value_int = MM_PIXEL_FORMAT_NV12} },
+ { "RecommendPreviewResolution", CONFIGURE_VALUE_INT_PAIR_ARRAY, {NULL} },
+ { "FacingDirection", CONFIGURE_VALUE_INT, {.value_int = MM_CAMCORDER_CAMERA_FACING_DIRECTION_REAR} },
+ };
+
+ /* [Strobe] matching table */
+ static conf_info_table conf_ctrl_strobe_table[] = {
+ { "StrobeControl", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "StrobeMode", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "StrobeEV", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ };
+
+ /* [Effect] matching table */
+ static conf_info_table conf_ctrl_effect_table[] = {
+ { "Brightness", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "BrightnessStepDenominator", CONFIGURE_VALUE_INT, {.value_int = 2} },
+ { "Contrast", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "Saturation", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "Sharpness", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "WhiteBalance", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "ColorTone", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "Flip", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "Rotation", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "WDR", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "PartColorMode", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "PartColor", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ };
+
+ /* [Photograph] matching table */
+ static conf_info_table conf_ctrl_photograph_table[] = {
+ { "LensInit", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "DigitalZoom", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "OpticalZoom", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "FocusMode", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "AFType", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "AEType", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "ExposureValue", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "FNumber", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "ShutterSpeed", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "ISO", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "ProgramMode", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "AntiHandshake", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "VideoStabilization", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "FaceZoomMode", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "FaceZoomLevel", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "PanMecha", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "PanElec", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "TiltMecha", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "TiltElec", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ };
+
+ /* [Capture] matching table */
+ static conf_info_table conf_ctrl_capture_table[] = {
+ { "OutputMode", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "JpegQuality", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "MultishotNumber", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "SensorEncodedCapture", CONFIGURE_VALUE_INT, {.value_int = 1} },
+ { "SupportHDR", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "SupportZSL", CONFIGURE_VALUE_INT, {.value_int = FALSE} },
+ };
+
+ /* [Detect] matching table */
+ static conf_info_table conf_ctrl_detect_table[] = {
+ { "DetectMode", CONFIGURE_VALUE_INT_ARRAY, {NULL} },
+ { "DetectNumber", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "DetectSelect", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ { "DetectSelectNumber", CONFIGURE_VALUE_INT_RANGE, {NULL} },
+ };
+
+ if (hcamcorder == NULL) {
+ _mmcam_dbg_err("handle is NULL");
+ return;
+ }
+