diff options
-rw-r--r-- | pjmedia/include/pjmedia/config.h | 12 | ||||
-rw-r--r-- | pjmedia/src/pjmedia-codec/ffmpeg_codecs.c | 8 | ||||
-rw-r--r-- | pjmedia/src/pjmedia-codec/h263_packetizer.c | 2 | ||||
-rw-r--r-- | pjmedia/src/pjmedia-codec/h264_packetizer.c | 2 |
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_; |