From 81939c7e67c14187179b938c46e53b462ef37373 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Fri, 29 Feb 2008 12:00:46 +0000 Subject: Added pjmedia_wsola_reset() git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1831 74dad513-b988-da41-8d7b-12977e46ad98 --- pjmedia/include/pjmedia/wsola.h | 12 ++++++++++++ pjmedia/src/pjmedia/wsola.c | 14 ++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/pjmedia/include/pjmedia/wsola.h b/pjmedia/include/pjmedia/wsola.h index 9592db38..dbeab186 100644 --- a/pjmedia/include/pjmedia/wsola.h +++ b/pjmedia/include/pjmedia/wsola.h @@ -98,6 +98,18 @@ PJ_DECL(pj_status_t) pjmedia_wsola_create(pj_pool_t *pool, PJ_DECL(pj_status_t) pjmedia_wsola_destroy(pjmedia_wsola *wsola); +/** + * Reset the buffer contents of WSOLA. + * + * @param wsola WSOLA session. + * @param options Reset options, must be zero for now. + * + * @return PJ_SUCCESS normally. + */ +PJ_DECL(pj_status_t) pjmedia_wsola_reset(pjmedia_wsola *wsola, + unsigned options); + + /** * Give one good frame to WSOLA to be kept as reference. Application * must continuously give WSOLA good frames to keep its session up to diff --git a/pjmedia/src/pjmedia/wsola.c b/pjmedia/src/pjmedia/wsola.c index b0be6aba..23e73cf0 100644 --- a/pjmedia/src/pjmedia/wsola.c +++ b/pjmedia/src/pjmedia/wsola.c @@ -352,6 +352,20 @@ PJ_DEF(pj_status_t) pjmedia_wsola_destroy(pjmedia_wsola *wsola) return PJ_SUCCESS; } + +PJ_DEF(pj_status_t) pjmedia_wsola_reset( pjmedia_wsola *wsola, + unsigned options) +{ + PJ_ASSERT_RETURN(wsola && options==0, PJ_EINVAL); + PJ_UNUSED_ARG(options); + + pjmedia_zero_samples(wsola->buf, wsola->cur_cnt); + wsola->cur_cnt = (pj_uint16_t)(wsola->hist_cnt + + wsola->samples_per_frame); + return PJ_SUCCESS; +} + + static void expand(pjmedia_wsola *wsola, unsigned needed) { unsigned generated = 0; -- cgit v1.2.3