diff options
author | irungentoo <irungentoo@gmail.com> | 2014-08-02 11:29:27 -0400 |
---|---|---|
committer | irungentoo <irungentoo@gmail.com> | 2014-08-02 11:29:27 -0400 |
commit | 0719a4296e4d94f616b8f84fd21cf1fb522329fc (patch) | |
tree | 9fc86371c3810537a3d7570014d75e180affb73c /toxav/toxav.c | |
parent | 77df39863e8e2103bda195ec76b2a255baf1acb4 (diff) | |
parent | 6c1ac97da9dd9e64cf53cb9137944f0d595698fc (diff) |
Merge branch 'mannol1-master'
Diffstat (limited to 'toxav/toxav.c')
-rw-r--r-- | toxav/toxav.c | 19 |
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 | */ |
272 | void toxav_register_audio_recv_callback (ToxAv *av, void (*callback)(ToxAv *, int32_t, int16_t *, int)) | 275 | void 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 | */ |
283 | void toxav_register_video_recv_callback (ToxAv *av, void (*callback)(ToxAv *, int32_t, vpx_image_t *)) | 288 | void 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 | } |