summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2012-04-02 08:40:54 +0000
committerNanang Izzuddin <nanang@teluu.com>2012-04-02 08:40:54 +0000
commitd43b0d7d574f5a5df70233b93ff8b73a39c19625 (patch)
treef2743efac339be1a93c8ec541956c46d40810284
parentd8f0c045dc8b66f1dee0351f49e1fa56ea6a8057 (diff)
Misc (re #1446): Added macro PJMEDIA_MAX_VID_PAYLOAD_SIZE, also updated the default encoding MTU of ffmpeg codec & H263/H264 packetizers to this macro setting.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4006 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r--pjmedia/include/pjmedia/config.h12
-rw-r--r--pjmedia/src/pjmedia-codec/ffmpeg_codecs.c8
-rw-r--r--pjmedia/src/pjmedia-codec/h263_packetizer.c2
-rw-r--r--pjmedia/src/pjmedia-codec/h264_packetizer.c2
4 files changed, 20 insertions, 4 deletions
diff --git a/pjmedia/include/pjmedia/config.h b/pjmedia/include/pjmedia/config.h
index 76b8fc84..d0c2cd39 100644
--- a/pjmedia/include/pjmedia/config.h
+++ b/pjmedia/include/pjmedia/config.h
@@ -1159,6 +1159,18 @@
# define PJMEDIA_VID_STREAM_SKIP_PACKETS_TO_REDUCE_LATENCY 0
#endif
+
+/**
+ * Maximum video payload size. Note that this must not be greater than
+ * PJMEDIA_MAX_MTU.
+ *
+ * Default: (PJMEDIA_MAX_MTU - 100)
+ */
+#ifndef PJMEDIA_MAX_VID_PAYLOAD_SIZE
+# define PJMEDIA_MAX_VID_PAYLOAD_SIZE (PJMEDIA_MAX_MTU - 100)
+#endif
+
+
/**
* @}
*/
diff --git a/pjmedia/src/pjmedia-codec/ffmpeg_codecs.c b/pjmedia/src/pjmedia-codec/ffmpeg_codecs.c
index 72159762..81d3bb22 100644
--- a/pjmedia/src/pjmedia-codec/ffmpeg_codecs.c
+++ b/pjmedia/src/pjmedia-codec/ffmpeg_codecs.c
@@ -932,8 +932,8 @@ static pj_status_t ffmpeg_default_attr( pjmedia_vid_codec_factory *factory,
attr->enc_fmt.det.vid.avg_bps = desc->avg_bps;
attr->enc_fmt.det.vid.max_bps = desc->max_bps;
- /* MTU */
- attr->enc_mtu = PJMEDIA_MAX_MTU;
+ /* Encoding MTU */
+ attr->enc_mtu = PJMEDIA_MAX_VID_PAYLOAD_SIZE;
return PJ_SUCCESS;
}
@@ -1214,6 +1214,10 @@ static pj_status_t ffmpeg_codec_open( pjmedia_vid_codec *codec,
pj_memcpy(&ff->param, attr, sizeof(*attr));
+ /* Normalize encoding MTU in codec param */
+ if (attr->enc_mtu > PJMEDIA_MAX_VID_PAYLOAD_SIZE)
+ attr->enc_mtu = PJMEDIA_MAX_VID_PAYLOAD_SIZE;
+
/* Open the codec */
ff_mutex = ((struct ffmpeg_factory*)codec->factory)->mutex;
status = open_ffmpeg_codec(ff, ff_mutex);
diff --git a/pjmedia/src/pjmedia-codec/h263_packetizer.c b/pjmedia/src/pjmedia-codec/h263_packetizer.c
index 1d3b92de..df812c40 100644
--- a/pjmedia/src/pjmedia-codec/h263_packetizer.c
+++ b/pjmedia/src/pjmedia-codec/h263_packetizer.c
@@ -98,7 +98,7 @@ PJ_DEF(pj_status_t) pjmedia_h263_packetizer_create(
pj_memcpy(&p_->cfg, cfg, sizeof(*cfg));
} else {
p_->cfg.mode = PJMEDIA_H263_PACKETIZER_MODE_RFC4629;
- p_->cfg.mtu = PJMEDIA_MAX_MTU;
+ p_->cfg.mtu = PJMEDIA_MAX_VID_PAYLOAD_SIZE;
}
*p = p_;
diff --git a/pjmedia/src/pjmedia-codec/h264_packetizer.c b/pjmedia/src/pjmedia-codec/h264_packetizer.c
index 67ed9955..c928dc20 100644
--- a/pjmedia/src/pjmedia-codec/h264_packetizer.c
+++ b/pjmedia/src/pjmedia-codec/h264_packetizer.c
@@ -104,7 +104,7 @@ PJ_DEF(pj_status_t) pjmedia_h264_packetizer_create(
pj_memcpy(&p_->cfg, cfg, sizeof(*cfg));
} else {
p_->cfg.mode = PJMEDIA_H264_PACKETIZER_MODE_NON_INTERLEAVED;
- p_->cfg.mtu = PJMEDIA_MAX_MTU;
+ p_->cfg.mtu = PJMEDIA_MAX_VID_PAYLOAD_SIZE;
}
*p = p_;