diff options
Diffstat (limited to 'toxav/av_test.c')
-rw-r--r-- | toxav/av_test.c | 59 |
1 files changed, 21 insertions, 38 deletions
diff --git a/toxav/av_test.c b/toxav/av_test.c index c20d459b..6ebe0421 100644 --- a/toxav/av_test.c +++ b/toxav/av_test.c | |||
@@ -27,6 +27,9 @@ | |||
27 | #include "../toxcore/tox.h" | 27 | #include "../toxcore/tox.h" |
28 | #include "../toxcore/util.h" | 28 | #include "../toxcore/util.h" |
29 | 29 | ||
30 | #define LOGGING | ||
31 | #include "../toxcore/logger.h" | ||
32 | |||
30 | /* Playing audio data */ | 33 | /* Playing audio data */ |
31 | #include <portaudio.h> | 34 | #include <portaudio.h> |
32 | /* Reading audio */ | 35 | /* Reading audio */ |
@@ -80,6 +83,7 @@ | |||
80 | typedef struct { | 83 | typedef struct { |
81 | bool incoming; | 84 | bool incoming; |
82 | uint32_t state; | 85 | uint32_t state; |
86 | uint32_t abitrate; | ||
83 | } CallControl; | 87 | } CallControl; |
84 | 88 | ||
85 | struct toxav_thread_data { | 89 | struct toxav_thread_data { |
@@ -91,22 +95,6 @@ struct toxav_thread_data { | |||
91 | const char* vdout = "AV Test"; /* Video output */ | 95 | const char* vdout = "AV Test"; /* Video output */ |
92 | PaStream* adout = NULL; /* Audio output */ | 96 | PaStream* adout = NULL; /* Audio output */ |
93 | 97 | ||
94 | const char* stringify_state(TOXAV_CALL_STATE s) | ||
95 | { | ||
96 | static const char* strings[] = | ||
97 | { | ||
98 | "NOT SENDING", | ||
99 | "SENDING AUDIO", | ||
100 | "SENDING VIDEO", | ||
101 | "SENDING AUDIO AND VIDEO", | ||
102 | "PAUSED", | ||
103 | "END", | ||
104 | "ERROR" | ||
105 | }; | ||
106 | |||
107 | return strings [s]; | ||
108 | } | ||
109 | |||
110 | /** | 98 | /** |
111 | * Callbacks | 99 | * Callbacks |
112 | */ | 100 | */ |
@@ -117,9 +105,20 @@ void t_toxav_call_cb(ToxAV *av, uint32_t friend_number, bool audio_enabled, bool | |||
117 | } | 105 | } |
118 | void t_toxav_call_state_cb(ToxAV *av, uint32_t friend_number, uint32_t state, void *user_data) | 106 | void t_toxav_call_state_cb(ToxAV *av, uint32_t friend_number, uint32_t state, void *user_data) |
119 | { | 107 | { |
120 | printf("Handling CALL STATE callback: %d\n", state); | ||
121 | |||
122 | ((CallControl*)user_data)->state = state; | 108 | ((CallControl*)user_data)->state = state; |
109 | |||
110 | if (state & TOXAV_CALL_STATE_INCREASE_AUDIO_BITRATE) { | ||
111 | uint32_t bitrate = ((CallControl*)user_data)->abitrate; | ||
112 | |||
113 | if (bitrate < 64) { | ||
114 | printf("Changing bitrate to: %d\n", 64); | ||
115 | toxav_set_audio_bit_rate(av, friend_number, 64, 0); | ||
116 | } | ||
117 | } else if (state & TOXAV_CALL_STATE_INCREASE_VIDEO_BITRATE) { | ||
118 | |||
119 | } else { | ||
120 | printf("Handling CALL STATE callback: %d\n", state); | ||
121 | } | ||
123 | } | 122 | } |
124 | void t_toxav_receive_video_frame_cb(ToxAV *av, uint32_t friend_number, | 123 | void t_toxav_receive_video_frame_cb(ToxAV *av, uint32_t friend_number, |
125 | uint16_t width, uint16_t height, | 124 | uint16_t width, uint16_t height, |
@@ -331,24 +330,6 @@ int print_help (const char* name) | |||
331 | 330 | ||
332 | int main (int argc, char** argv) | 331 | int main (int argc, char** argv) |
333 | { | 332 | { |
334 | RingBuffer* rb = rb_new(4); | ||
335 | int a[5] = {0, 1, 2, 3, 4}; | ||
336 | int* x; | ||
337 | rb_write(rb, a + 0); | ||
338 | rb_write(rb, a + 1); | ||
339 | rb_write(rb, a + 2); | ||
340 | rb_write(rb, a + 3); | ||
341 | // rb_write(rb, a + 4); | ||
342 | |||
343 | x = rb_write(rb, a + 4); | ||
344 | while (rb_read(rb, (void**) &x)) | ||
345 | // rb_read(rb, (void**)&x); | ||
346 | printf("%d ", *x); | ||
347 | |||
348 | printf("\n"); | ||
349 | // int r = 43; | ||
350 | // printf("%d\n", r >= 40 ? 3 : r / 10); | ||
351 | return 0; | ||
352 | Pa_Initialize(); | 333 | Pa_Initialize(); |
353 | 334 | ||
354 | struct stat st; | 335 | struct stat st; |
@@ -688,9 +669,11 @@ int main (int argc, char** argv) | |||
688 | memset(&AliceCC, 0, sizeof(CallControl)); | 669 | memset(&AliceCC, 0, sizeof(CallControl)); |
689 | memset(&BobCC, 0, sizeof(CallControl)); | 670 | memset(&BobCC, 0, sizeof(CallControl)); |
690 | 671 | ||
672 | AliceCC.abitrate = BobCC.abitrate = 8; | ||
673 | |||
691 | { /* Call */ | 674 | { /* Call */ |
692 | TOXAV_ERR_CALL rc; | 675 | TOXAV_ERR_CALL rc; |
693 | toxav_call(AliceAV, 0, 48, 0, &rc); | 676 | toxav_call(AliceAV, 0, AliceCC.abitrate, 0, &rc); |
694 | 677 | ||
695 | if (rc != TOXAV_ERR_CALL_OK) { | 678 | if (rc != TOXAV_ERR_CALL_OK) { |
696 | printf("toxav_call failed: %d\n", rc); | 679 | printf("toxav_call failed: %d\n", rc); |
@@ -703,7 +686,7 @@ int main (int argc, char** argv) | |||
703 | 686 | ||
704 | { /* Answer */ | 687 | { /* Answer */ |
705 | TOXAV_ERR_ANSWER rc; | 688 | TOXAV_ERR_ANSWER rc; |
706 | toxav_answer(BobAV, 0, 48, 0, &rc); | 689 | toxav_answer(BobAV, 0, BobCC.abitrate, 0, &rc); |
707 | 690 | ||
708 | if (rc != TOXAV_ERR_ANSWER_OK) { | 691 | if (rc != TOXAV_ERR_ANSWER_OK) { |
709 | printf("toxav_answer failed: %d\n", rc); | 692 | printf("toxav_answer failed: %d\n", rc); |