Fix #1475: Fixed wrong frame size calculation used for jitter buffer initialization in video stream, it should be based on PJMEDIA_MAX_MTU instead of encoder MTU setting.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@4003 74dad513-b988-da41-8d7b-12977e46ad98
diff --git a/pjmedia/src/pjmedia/vid_stream.c b/pjmedia/src/pjmedia/vid_stream.c
index 478b206..b66eab2 100644
--- a/pjmedia/src/pjmedia/vid_stream.c
+++ b/pjmedia/src/pjmedia/vid_stream.c
@@ -1266,7 +1266,7 @@
int frm_ptime, chunks_per_frm;
pjmedia_video_format_detail *vfd_enc, *vfd_dec;
char *p;
- unsigned mtu;
+ unsigned dec_mtu;
pj_status_t status;
if (!pool) {
@@ -1318,7 +1318,9 @@
PJMEDIA_STREAM_RESV_PAYLOAD_LEN);
if (info->codec_param->enc_mtu > PJMEDIA_MAX_MTU)
info->codec_param->enc_mtu = PJMEDIA_MAX_MTU;
- mtu = info->codec_param->enc_mtu;
+
+ /* MTU estimation for decoding direction */
+ dec_mtu = PJMEDIA_MAX_MTU;
vfd_enc = pjmedia_format_get_video_format_detail(
&info->codec_param->enc_fmt, PJ_TRUE);
@@ -1420,7 +1422,7 @@
/* Init jitter buffer parameters: */
frm_ptime = 1000 * vfd_enc->fps.denum / vfd_enc->fps.num;
- chunks_per_frm = stream->frame_size / mtu;
+ chunks_per_frm = stream->frame_size / dec_mtu;
if (chunks_per_frm == 0) chunks_per_frm = 1;
/* JB max count, default 500ms */
@@ -1456,7 +1458,7 @@
/* Create jitter buffer */
status = pjmedia_jbuf_create(pool, &stream->dec->port.info.name,
- mtu + PJMEDIA_STREAM_RESV_PAYLOAD_LEN,
+ dec_mtu + PJMEDIA_STREAM_RESV_PAYLOAD_LEN,
1000 * vfd_enc->fps.denum / vfd_enc->fps.num,
jb_max, &stream->jb);
if (status != PJ_SUCCESS)