Module: libav Branch: master Commit: ba605cef7961ee699c893d1a3b5c9730f0a37b6c
Author: Martin Storsjö <[email protected]> Committer: Martin Storsjö <[email protected]> Date: Thu Feb 23 11:56:15 2012 +0200 rtpenc: Expose the max packet size via an avoption This allows opting for a lower MTU than what the AVIOContext indicated, and allows writing into outputs that don't indicate an MTU at all (such as plain files, which is useful for testing). This also allows querying for the MTU via the avoption. Signed-off-by: Martin Storsjö <[email protected]> --- libavformat/rtpenc.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/libavformat/rtpenc.c b/libavformat/rtpenc.c index bdbe411..e4ef0fc 100644 --- a/libavformat/rtpenc.c +++ b/libavformat/rtpenc.c @@ -33,6 +33,7 @@ static const AVOption options[] = { FF_RTP_FLAG_OPTS(RTPMuxContext, flags) { "payload_type", "Specify RTP payload type", offsetof(RTPMuxContext, payload_type), AV_OPT_TYPE_INT, {.dbl = -1 }, -1, 127, AV_OPT_FLAG_ENCODING_PARAM }, + { "max_packet_size", "Max packet size", offsetof(RTPMuxContext, max_packet_size), AV_OPT_TYPE_INT, {.dbl = 0 }, 0, INT_MAX, AV_OPT_FLAG_ENCODING_PARAM }, { NULL }, }; @@ -109,7 +110,12 @@ static int rtp_write_header(AVFormatContext *s1) s->first_rtcp_ntp_time = (s1->start_time_realtime / 1000) * 1000 + NTP_OFFSET_US; - s->max_packet_size = s1->pb->max_packet_size; + if (s->max_packet_size) { + if (s1->pb->max_packet_size) + s->max_packet_size = FFMIN(s->max_payload_size, + s1->pb->max_packet_size); + } else + s->max_packet_size = s1->pb->max_packet_size; if (s->max_packet_size <= 12) { av_log(s1, AV_LOG_ERROR, "Max packet size %d too low\n", s->max_packet_size); return AVERROR(EIO); _______________________________________________ libav-commits mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-commits
