diff options
author | Liong Sauw Ming <ming@teluu.com> | 2013-01-29 08:09:15 +0000 |
---|---|---|
committer | Liong Sauw Ming <ming@teluu.com> | 2013-01-29 08:09:15 +0000 |
commit | 064af246091c9d6475dcdd742b0abf0c3d1a07d8 (patch) | |
tree | 3e79ea209c9e36ea41f4d42d8f22aef227c753a0 /pjmedia/include | |
parent | c3814751455d7cfcb854970344e952f0a88ba4d9 (diff) |
Re #1608: Fixed the way codec is initialized, enumerated, and deinit since both NB and WB use the same factory
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4335 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia/include')
-rw-r--r-- | pjmedia/include/pjmedia-codec/opencore_amr.h | 61 |
1 files changed, 44 insertions, 17 deletions
diff --git a/pjmedia/include/pjmedia-codec/opencore_amr.h b/pjmedia/include/pjmedia-codec/opencore_amr.h index 56816415..647b078f 100644 --- a/pjmedia/include/pjmedia-codec/opencore_amr.h +++ b/pjmedia/include/pjmedia-codec/opencore_amr.h @@ -32,6 +32,15 @@ PJ_BEGIN_DECL /** + * Bitmask options to be passed during AMR codec factory initialization. + */ +enum pjmedia_amr_options +{ + PJMEDIA_AMR_NO_NB = 1, /**< Disable narrowband mode. */ + PJMEDIA_AMR_NO_WB = 2, /**< Disable wideband mode. */ +}; + +/** * Settings. Use #pjmedia_codec_opencore_amrnb/wb_set_config() to * activate. */ @@ -53,49 +62,67 @@ typedef pjmedia_codec_amr_config pjmedia_codec_amrnb_config; typedef pjmedia_codec_amr_config pjmedia_codec_amrwb_config; /** - * Initialize and register AMR-NB codec factory to pjmedia endpoint. + * Initialize and register AMR codec factory to pjmedia endpoint. * - * @param endpt The pjmedia endpoint. + * @param endpt The pjmedia endpoint. + * @param options Bitmask of pjmedia_amr_options (default=0). * - * @return PJ_SUCCESS on success. + * @return PJ_SUCCESS on success. */ -PJ_DECL(pj_status_t) pjmedia_codec_opencore_amrnb_init(pjmedia_endpt* endpt); +PJ_DECL(pj_status_t) pjmedia_codec_opencore_amr_init(pjmedia_endpt* endpt, + unsigned options); /** - * Unregister AMR-NB codec factory from pjmedia endpoint and deinitialize - * the OpenCORE codec library. + * Initialize and register AMR codec factory using default settings to + * pjmedia endpoint. + * + * @param endpt The pjmedia endpoint. * * @return PJ_SUCCESS on success. */ -PJ_DECL(pj_status_t) pjmedia_codec_opencore_amrnb_deinit(void); - +PJ_DECL(pj_status_t) +pjmedia_codec_opencore_amr_init_default(pjmedia_endpt* endpt); /** - * Set AMR-NB parameters. - * - * @param cfg The settings; + * Unregister AMR codec factory from pjmedia endpoint and deinitialize + * the OpenCORE codec library. * * @return PJ_SUCCESS on success. */ -PJ_DECL(pj_status_t) pjmedia_codec_opencore_amrnb_set_config( - const pjmedia_codec_amrnb_config* cfg); +PJ_DECL(pj_status_t) pjmedia_codec_opencore_amr_deinit(void); /** - * Initialize and register AMR-WB codec factory to pjmedia endpoint. + * Initialize and register AMR-NB codec factory to pjmedia endpoint. Calling + * this function will automatically initialize AMR codec factory without + * the wideband mode (i.e. it is equivalent to calling + * #pjmedia_codec_opencore_amr_init() with PJMEDIA_AMR_NO_WB). Application + * should call #pjmedia_codec_opencore_amr_init() instead if wishing to use + * both modes. * * @param endpt The pjmedia endpoint. * * @return PJ_SUCCESS on success. */ -PJ_DECL(pj_status_t) pjmedia_codec_opencore_amrwb_init(pjmedia_endpt* endpt); +PJ_DECL(pj_status_t) pjmedia_codec_opencore_amrnb_init(pjmedia_endpt* endpt); /** - * Unregister AMR-WB codec factory from pjmedia endpoint and deinitialize + * Unregister AMR-NB codec factory from pjmedia endpoint and deinitialize * the OpenCORE codec library. * * @return PJ_SUCCESS on success. */ -PJ_DECL(pj_status_t) pjmedia_codec_opencore_amrwb_deinit(void); +PJ_DECL(pj_status_t) pjmedia_codec_opencore_amrnb_deinit(void); + + +/** + * Set AMR-NB parameters. + * + * @param cfg The settings; + * + * @return PJ_SUCCESS on success. + */ +PJ_DECL(pj_status_t) pjmedia_codec_opencore_amrnb_set_config( + const pjmedia_codec_amrnb_config* cfg); /** |