summaryrefslogtreecommitdiff
path: root/testing/av_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'testing/av_test.c')
-rw-r--r--testing/av_test.c55
1 files changed, 28 insertions, 27 deletions
diff --git a/testing/av_test.c b/testing/av_test.c
index 35eb3f60..5dc2643c 100644
--- a/testing/av_test.c
+++ b/testing/av_test.c
@@ -84,15 +84,15 @@ struct toxav_thread_data {
84 int32_t sig; 84 int32_t sig;
85}; 85};
86 86
87const char *vdout = "AV Test"; /* Video output */ 87static const char *vdout = "AV Test"; /* Video output */
88PaStream *adout = NULL; /* Audio output */ 88static PaStream *adout = NULL; /* Audio output */
89 89
90typedef struct { 90typedef struct {
91 uint16_t size; 91 uint16_t size;
92 int16_t data[]; 92 int16_t data[];
93} frame; 93} frame;
94 94
95void *pa_write_thread (void *d) 95static void *pa_write_thread (void *d)
96{ 96{
97 /* The purpose of this thread is to make sure Pa_WriteStream will not block 97 /* The purpose of this thread is to make sure Pa_WriteStream will not block
98 * toxav_iterate thread 98 * toxav_iterate thread
@@ -119,21 +119,21 @@ void *pa_write_thread (void *d)
119/** 119/**
120 * Callbacks 120 * Callbacks
121 */ 121 */
122void t_toxav_call_cb(ToxAV *av, uint32_t friend_number, bool audio_enabled, bool video_enabled, void *user_data) 122static void t_toxav_call_cb(ToxAV *av, uint32_t friend_number, bool audio_enabled, bool video_enabled, void *user_data)
123{ 123{
124 printf("Handling CALL callback\n"); 124 printf("Handling CALL callback\n");
125 ((CallControl *)user_data)->incoming = true; 125 ((CallControl *)user_data)->incoming = true;
126} 126}
127void t_toxav_call_state_cb(ToxAV *av, uint32_t friend_number, uint32_t state, void *user_data) 127static void t_toxav_call_state_cb(ToxAV *av, uint32_t friend_number, uint32_t state, void *user_data)
128{ 128{
129 printf("Handling CALL STATE callback: %d\n", state); 129 printf("Handling CALL STATE callback: %d\n", state);
130 ((CallControl *)user_data)->state = state; 130 ((CallControl *)user_data)->state = state;
131} 131}
132void t_toxav_receive_video_frame_cb(ToxAV *av, uint32_t friend_number, 132static void t_toxav_receive_video_frame_cb(ToxAV *av, uint32_t friend_number,
133 uint16_t width, uint16_t height, 133 uint16_t width, uint16_t height,
134 uint8_t const *y, uint8_t const *u, uint8_t const *v, 134 uint8_t const *y, uint8_t const *u, uint8_t const *v,
135 int32_t ystride, int32_t ustride, int32_t vstride, 135 int32_t ystride, int32_t ustride, int32_t vstride,
136 void *user_data) 136 void *user_data)
137{ 137{
138 ystride = abs(ystride); 138 ystride = abs(ystride);
139 ustride = abs(ustride); 139 ustride = abs(ustride);
@@ -166,12 +166,12 @@ void t_toxav_receive_video_frame_cb(ToxAV *av, uint32_t friend_number,
166 cvShowImage(vdout, img); 166 cvShowImage(vdout, img);
167 free(img_data); 167 free(img_data);
168} 168}
169void t_toxav_receive_audio_frame_cb(ToxAV *av, uint32_t friend_number, 169static void t_toxav_receive_audio_frame_cb(ToxAV *av, uint32_t friend_number,
170 int16_t const *pcm, 170 int16_t const *pcm,
171 size_t sample_count, 171 size_t sample_count,
172 uint8_t channels, 172 uint8_t channels,
173 uint32_t sampling_rate, 173 uint32_t sampling_rate,
174 void *user_data) 174 void *user_data)
175{ 175{
176 CallControl *cc = user_data; 176 CallControl *cc = user_data;
177 frame *f = malloc(sizeof(uint16_t) + sample_count * sizeof(int16_t) * channels); 177 frame *f = malloc(sizeof(uint16_t) + sample_count * sizeof(int16_t) * channels);
@@ -182,13 +182,14 @@ void t_toxav_receive_audio_frame_cb(ToxAV *av, uint32_t friend_number,
182 free(rb_write(cc->arb, f)); 182 free(rb_write(cc->arb, f));
183 pthread_mutex_unlock(cc->arb_mutex); 183 pthread_mutex_unlock(cc->arb_mutex);
184} 184}
185void t_toxav_bit_rate_status_cb(ToxAV *av, uint32_t friend_number, 185static void t_toxav_bit_rate_status_cb(ToxAV *av, uint32_t friend_number,
186 uint32_t audio_bit_rate, uint32_t video_bit_rate, 186 uint32_t audio_bit_rate, uint32_t video_bit_rate,
187 void *user_data) 187 void *user_data)
188{ 188{
189 printf ("Suggested bit rates: audio: %d video: %d\n", audio_bit_rate, video_bit_rate); 189 printf ("Suggested bit rates: audio: %d video: %d\n", audio_bit_rate, video_bit_rate);
190} 190}
191void t_accept_friend_request_cb(Tox *m, const uint8_t *public_key, const uint8_t *data, size_t length, void *userdata) 191static void t_accept_friend_request_cb(Tox *m, const uint8_t *public_key, const uint8_t *data, size_t length,
192 void *userdata)
192{ 193{
193 if (length == 7 && memcmp("gentoo", data, 7) == 0) { 194 if (length == 7 && memcmp("gentoo", data, 7) == 0) {
194 assert(tox_friend_add_norequest(m, public_key, NULL) != (uint32_t) ~0); 195 assert(tox_friend_add_norequest(m, public_key, NULL) != (uint32_t) ~0);
@@ -197,7 +198,7 @@ void t_accept_friend_request_cb(Tox *m, const uint8_t *public_key, const uint8_t
197 198
198/** 199/**
199 */ 200 */
200void initialize_tox(Tox **bootstrap, ToxAV **AliceAV, CallControl *AliceCC, ToxAV **BobAV, CallControl *BobCC) 201static void initialize_tox(Tox **bootstrap, ToxAV **AliceAV, CallControl *AliceCC, ToxAV **BobAV, CallControl *BobCC)
201{ 202{
202 Tox *Alice; 203 Tox *Alice;
203 Tox *Bob; 204 Tox *Bob;
@@ -235,7 +236,7 @@ void initialize_tox(Tox **bootstrap, ToxAV **AliceAV, CallControl *AliceCC, ToxA
235 tox_self_get_address(Alice, address); 236 tox_self_get_address(Alice, address);
236 237
237 238
238 assert(tox_friend_add(Bob, address, (uint8_t *)"gentoo", 7, NULL) != (uint32_t) ~0); 239 assert(tox_friend_add(Bob, address, (const uint8_t *)"gentoo", 7, NULL) != (uint32_t) ~0);
239 240
240 uint8_t off = 1; 241 uint8_t off = 1;
241 242
@@ -286,7 +287,7 @@ void initialize_tox(Tox **bootstrap, ToxAV **AliceAV, CallControl *AliceCC, ToxA
286 printf("Created 2 instances of ToxAV\n"); 287 printf("Created 2 instances of ToxAV\n");
287 printf("All set after %llu seconds!\n", time(NULL) - cur_time); 288 printf("All set after %llu seconds!\n", time(NULL) - cur_time);
288} 289}
289int iterate_tox(Tox *bootstrap, ToxAV *AliceAV, ToxAV *BobAV, void *userdata) 290static int iterate_tox(Tox *bootstrap, ToxAV *AliceAV, ToxAV *BobAV, void *userdata)
290{ 291{
291 tox_iterate(bootstrap, userdata); 292 tox_iterate(bootstrap, userdata);
292 tox_iterate(toxav_get_tox(AliceAV), userdata); 293 tox_iterate(toxav_get_tox(AliceAV), userdata);
@@ -294,7 +295,7 @@ int iterate_tox(Tox *bootstrap, ToxAV *AliceAV, ToxAV *BobAV, void *userdata)
294 295
295 return MIN(tox_iteration_interval(toxav_get_tox(AliceAV)), tox_iteration_interval(toxav_get_tox(BobAV))); 296 return MIN(tox_iteration_interval(toxav_get_tox(AliceAV)), tox_iteration_interval(toxav_get_tox(BobAV)));
296} 297}
297void *iterate_toxav (void *data) 298static void *iterate_toxav (void *data)
298{ 299{
299 struct toxav_thread_data *data_cast = data; 300 struct toxav_thread_data *data_cast = data;
300#if defined TEST_TRANSFER_V && TEST_TRANSFER_V == 1 301#if defined TEST_TRANSFER_V && TEST_TRANSFER_V == 1
@@ -330,7 +331,7 @@ void *iterate_toxav (void *data)
330 pthread_exit(NULL); 331 pthread_exit(NULL);
331} 332}
332 333
333int send_opencv_img(ToxAV *av, uint32_t friend_number, const IplImage *img) 334static int send_opencv_img(ToxAV *av, uint32_t friend_number, const IplImage *img)
334{ 335{
335 int32_t strides[3] = { 1280, 640, 640 }; 336 int32_t strides[3] = { 1280, 640, 640 };
336 uint8_t *planes[3] = { 337 uint8_t *planes[3] = {
@@ -368,7 +369,7 @@ int send_opencv_img(ToxAV *av, uint32_t friend_number, const IplImage *img)
368 free(planes[2]); 369 free(planes[2]);
369 return rc; 370 return rc;
370} 371}
371int print_audio_devices() 372static int print_audio_devices(void)
372{ 373{
373 int i = 0; 374 int i = 0;
374 375
@@ -382,7 +383,7 @@ int print_audio_devices()
382 383
383 return 0; 384 return 0;
384} 385}
385int print_help (const char *name) 386static int print_help (const char *name)
386{ 387{
387 printf("Usage: %s -[a:v:o:dh]\n" 388 printf("Usage: %s -[a:v:o:dh]\n"
388 "-a <path> audio input file\n" 389 "-a <path> audio input file\n"