summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pjmedia/src/pjmedia/vid_codec.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/pjmedia/src/pjmedia/vid_codec.c b/pjmedia/src/pjmedia/vid_codec.c
index f46033e2..93690a29 100644
--- a/pjmedia/src/pjmedia/vid_codec.c
+++ b/pjmedia/src/pjmedia/vid_codec.c
@@ -722,12 +722,20 @@ PJ_DEF(pj_status_t) pjmedia_vid_codec_mgr_set_default_param(
/* Update codec default param */
p->param = pjmedia_vid_codec_param_clone(pool, param);
- if (!p)
+ if (!p->param)
return PJ_EINVAL;
+
codec_desc->def_param = p;
pj_mutex_unlock(mgr->mutex);
+ /* Release old pool at the very end, as application tends to apply changes
+ * to the existing/old codec param fetched using
+ * pjmedia_vid_codec_mgr_get_default_param() which doesn't do deep clone.
+ */
+ if (old_pool)
+ pj_pool_release(old_pool);
+
return PJ_SUCCESS;
}