summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/audio.c5
-rw-r--r--src/audio.h2
-rw-r--r--src/cmumble.c12
3 files changed, 12 insertions, 7 deletions
diff --git a/src/audio.c b/src/audio.c
index a373871..b8a1efb 100644
--- a/src/audio.c
+++ b/src/audio.c
@@ -207,11 +207,14 @@ static int
setup_playback_gst_pipeline(struct cmumble *cm)
{
cm->audio.celt_mode = celt_mode_create(SAMPLERATE,
- SAMPLERATE / 100, NULL);
+ SAMPLERATE / 100, NULL);
celt_header_init(&cm->audio.celt_header, cm->audio.celt_mode, CHANNELS);
celt_header_to_packet(&cm->audio.celt_header,
cm->audio.celt_header_packet, sizeof(CELTHeader));
+ celt_mode_info(cm->audio.celt_mode, CELT_GET_BITSTREAM_VERSION,
+ &cm->audio.celt_bitstream_version);
+
return 0;
}
diff --git a/src/audio.h b/src/audio.h
index 90dc13d..1e1c47c 100644
--- a/src/audio.h
+++ b/src/audio.h
@@ -18,6 +18,8 @@ struct cmumble_audio {
guint8 celt_header_packet[sizeof(CELTHeader)];
CELTHeader celt_header;
CELTMode *celt_mode;
+
+ gint32 celt_bitstream_version;
};
struct cmumble;
diff --git a/src/cmumble.c b/src/cmumble.c
index 0b3a6f5..2613ea8 100644
--- a/src/cmumble.c
+++ b/src/cmumble.c
@@ -299,7 +299,7 @@ cmumble_protocol_init(struct cmumble *cm)
authenticate.username = cm->user_name;
authenticate.password = "";
authenticate.n_celt_versions = 1;
- authenticate.celt_versions = (int32_t[]) { 0x8000000b };
+ authenticate.celt_versions = &cm->audio.celt_bitstream_version;
cmumble_send_authenticate(cm, &authenticate);
source = g_timeout_source_new_seconds(5);
@@ -362,16 +362,16 @@ int main(int argc, char **argv)
if (cm.async_queue == NULL)
return 1;
- cmumble_commands_init(&cm);
- if (cmumble_connection_init(&cm, host, port) < 0)
- return 1;
-
gst_init(&argc, &argv);
-
if (cmumble_audio_init(&cm) < 0)
return 1;
+
+ cmumble_commands_init(&cm);
cmumble_io_init(&cm);
+ if (cmumble_connection_init(&cm, host, port) < 0)
+ return 1;
+
g_main_loop_run(cm.loop);
g_main_loop_unref(cm.loop);