Binaural synthesis (confbridge): On/off setting for binaural synthesis.
authorfrahaase <fra.haase@googlemail.com>
Fri, 12 Aug 2016 16:22:58 +0000 (18:22 +0200)
committerJoshua Colp <jcolp@digium.com>
Mon, 17 Oct 2016 18:58:14 +0000 (18:58 +0000)
Adds setting to confbridge.conf (binaural_active) that determines if binaural
synthesis can be available in bridge_softmix.

ASTERISK-26292

Change-Id: I59dfcb8e55fe1df4ef32045882fea5bb58fc71db

apps/confbridge/conf_config_parser.c
apps/confbridge/include/confbridge.h

index 69d6f69..6f85105 100644 (file)
@@ -284,6 +284,13 @@ ASTERISK_REGISTER_FILE()
                                                or 80.
                                        </para></description>
                                </configOption>
+                               <configOption name="binaural_active">
+                                       <synopsis>If true binaural conferencing with stereo audio is active</synopsis>
+                                       <description><para>
+                                               Activates binaural mixing for a conference bridge.
+                                               Binaural features are disabled by default.
+                                       </para></description>
+                               </configOption>
                                <configOption name="record_conference">
                                        <synopsis>Record the conference starting with the first active user's entrance and ending with the last active user's exit</synopsis>
                                        <description><para>
@@ -2172,6 +2179,7 @@ int conf_load_config(void)
        aco_option_register(&cfg_info, "jitterbuffer", ACO_EXACT, bridge_types, "no", OPT_BOOLFLAG_T, 1, FLDSET(struct bridge_profile, flags), USER_OPT_JITTERBUFFER);
        /* "auto" will fail to parse as a uint, but we use PARSE_DEFAULT to set the value to 0 in that case, which is the value that auto resolves to */
        aco_option_register(&cfg_info, "internal_sample_rate", ACO_EXACT, bridge_types, "0", OPT_UINT_T, PARSE_DEFAULT, FLDSET(struct bridge_profile, internal_sample_rate), 0);
+       aco_option_register(&cfg_info, "binaural_active", ACO_EXACT, bridge_types, "no", OPT_BOOLFLAG_T, 1, FLDSET(struct bridge_profile, flags), BRIDGE_OPT_BINAURAL_ACTIVE);
        aco_option_register_custom(&cfg_info, "mixing_interval", ACO_EXACT, bridge_types, "20", mix_interval_handler, 0);
        aco_option_register(&cfg_info, "record_conference", ACO_EXACT, bridge_types, "no", OPT_BOOLFLAG_T, 1, FLDSET(struct bridge_profile, flags), BRIDGE_OPT_RECORD_CONFERENCE);
        aco_option_register_custom(&cfg_info, "video_mode", ACO_EXACT, bridge_types, NULL, video_mode_handler, 0);
index 93cac3a..f91f2dc 100644 (file)
@@ -71,6 +71,7 @@ enum bridge_profile_flags {
        BRIDGE_OPT_VIDEO_SRC_FOLLOW_TALKER = (1 << 3), /*!< Set if conference set the video feed to follow the loudest talker.  */
        BRIDGE_OPT_RECORD_FILE_APPEND = (1 << 4), /*!< Set if the record file should be appended to between start/stops.  */
        BRIDGE_OPT_RECORD_FILE_TIMESTAMP = (1 << 5), /*< Set if the record file should have a timestamp appended */
+       BRIDGE_OPT_BINAURAL_ACTIVE = (1 << 6), /*< Set if binaural convolution is activated */
 };
 
 enum conf_menu_action_id {