summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2012-03-30 08:55:18 +0000
committerNanang Izzuddin <nanang@teluu.com>2012-03-30 08:55:18 +0000
commit9bae385aa63838e490fbb671da2c027684164984 (patch)
tree20716e093b7b2aea960b7a89fc50f45f6f14d169
parent4104a374e7dcf0aaa30dbfbd4195c9b2444c8e58 (diff)
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: http://svn.pjsip.org/repos/pjproject/trunk@4003 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjmedia/src/pjmedia/vid_stream.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/pjmedia/src/pjmedia/vid_stream.c b/pjmedia/src/pjmedia/vid_stream.c
index 478b206f..b66eab2f 100644
--- a/pjmedia/src/pjmedia/vid_stream.c
+++ b/pjmedia/src/pjmedia/vid_stream.c
@@ -1266,7 +1266,7 @@ PJ_DEF(pj_status_t) pjmedia_vid_stream_create(
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 @@ PJ_DEF(pj_status_t) pjmedia_vid_stream_create(
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 @@ PJ_DEF(pj_status_t) pjmedia_vid_stream_create(
/* 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 @@ PJ_DEF(pj_status_t) pjmedia_vid_stream_create(
/* 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)