summaryrefslogtreecommitdiff
path: root/toxav/toxav.c
diff options
context:
space:
mode:
authorirungentoo <irungentoo@gmail.com>2014-08-02 11:29:27 -0400
committerirungentoo <irungentoo@gmail.com>2014-08-02 11:29:27 -0400
commit0719a4296e4d94f616b8f84fd21cf1fb522329fc (patch)
tree9fc86371c3810537a3d7570014d75e180affb73c /toxav/toxav.c
parent77df39863e8e2103bda195ec76b2a255baf1acb4 (diff)
parent6c1ac97da9dd9e64cf53cb9137944f0d595698fc (diff)
Merge branch 'mannol1-master'
Diffstat (limited to 'toxav/toxav.c')
-rw-r--r--toxav/toxav.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/toxav/toxav.c b/toxav/toxav.c
index 3a95e445..11827f57 100644
--- a/toxav/toxav.c
+++ b/toxav/toxav.c
@@ -104,8 +104,11 @@ struct _ToxAv {
104 MSISession *msi_session; /** Main msi session */ 104 MSISession *msi_session; /** Main msi session */
105 CallSpecific *calls; /** Per-call params */ 105 CallSpecific *calls; /** Per-call params */
106 106
107 void (*audio_callback)(ToxAv *, int32_t, int16_t *, int); 107 void (*audio_callback)(ToxAv *, int32_t, int16_t *, int, void *);
108 void (*video_callback)(ToxAv *, int32_t, vpx_image_t *); 108 void (*video_callback)(ToxAv *, int32_t, vpx_image_t *, void *);
109
110 void *audio_callback_userdata;
111 void *video_callback_userdata;
109 112
110 uint32_t max_calls; 113 uint32_t max_calls;
111 114
@@ -269,9 +272,11 @@ void toxav_register_callstate_callback ( ToxAv *av, ToxAVCallback callback, ToxA
269 * @param callback The callback 272 * @param callback The callback
270 * @return void 273 * @return void
271 */ 274 */
272void toxav_register_audio_recv_callback (ToxAv *av, void (*callback)(ToxAv *, int32_t, int16_t *, int)) 275void toxav_register_audio_recv_callback (ToxAv *av, void (*callback)(ToxAv *, int32_t, int16_t *, int, void *),
276 void *user_data)
273{ 277{
274 av->audio_callback = callback; 278 av->audio_callback = callback;
279 av->audio_callback_userdata = user_data;
275} 280}
276 281
277/** 282/**
@@ -280,9 +285,11 @@ void toxav_register_audio_recv_callback (ToxAv *av, void (*callback)(ToxAv *, in
280 * @param callback The callback 285 * @param callback The callback
281 * @return void 286 * @return void
282 */ 287 */
283void toxav_register_video_recv_callback (ToxAv *av, void (*callback)(ToxAv *, int32_t, vpx_image_t *)) 288void toxav_register_video_recv_callback (ToxAv *av, void (*callback)(ToxAv *, int32_t, vpx_image_t *, void *),
289 void *user_data)
284{ 290{
285 av->video_callback = callback; 291 av->video_callback = callback;
292 av->video_callback_userdata = user_data;
286} 293}
287 294
288/** 295/**
@@ -933,7 +940,7 @@ static void decode_video(ToxAv *av, DECODE_PACKET *p)
933 img = vpx_codec_get_frame(&call->cs->v_decoder, &iter); 940 img = vpx_codec_get_frame(&call->cs->v_decoder, &iter);
934 941
935 if (img && av->video_callback) { 942 if (img && av->video_callback) {
936 av->video_callback(av, p->call_index, img); 943 av->video_callback(av, p->call_index, img, av->video_callback_userdata);
937 } else { 944 } else {
938 LOGGER_WARNING("Video packet dropped due to missing callback or no image!"); 945 LOGGER_WARNING("Video packet dropped due to missing callback or no image!");
939 } 946 }
@@ -961,7 +968,7 @@ static void decode_audio(ToxAv *av, DECODE_PACKET *p)
961 } 968 }
962 969
963 if ( av->audio_callback ) 970 if ( av->audio_callback )
964 av->audio_callback(av, call_index, dest, dec_size); 971 av->audio_callback(av, call_index, dest, dec_size, av->audio_callback_userdata);
965 else 972 else
966 LOGGER_WARNING("Audio packet dropped due to missing callback!"); 973 LOGGER_WARNING("Audio packet dropped due to missing callback!");
967} 974}