diff --git a/include/baresip.h b/include/baresip.h index ab7b1b38..d33959d9 100644 --- a/include/baresip.h +++ b/include/baresip.h @@ -616,12 +616,15 @@ typedef int (auplay_alloc_h)(struct auplay_st **stp, const struct auplay *ap, struct auplay_prm *prm, const char *device, auplay_write_h *wh, void *arg); +typedef void (auplay_send_h)(const void *sampv, size_t sampc); + /** Defines an Audio Player */ struct auplay { struct le le; const char *name; struct list dev_list; auplay_alloc_h *alloch; + auplay_send_h *asendh; }; int auplay_register(struct auplay **pp, struct list *auplayl, diff --git a/src/aureceiver.c b/src/aureceiver.c index 43ae2bd8..bc03f025 100644 --- a/src/aureceiver.c +++ b/src/aureceiver.c @@ -194,6 +194,9 @@ static int aurecv_push_aubuf(struct audio_recv *ar, const struct auframe *af) re_atomic_rlx_set(&ar->stats.latency, aubuf_cur_size(ar->aubuf) / bpms); + if (ar->ap->asendh) + ar->ap->asendh(af->sampv, af->sampc * 2); + return 0; }