summaryrefslogtreecommitdiff
path: root/libavformat/rtp.c
diff options
context:
space:
mode:
authorLuca Abeni <lucabe72@email.it>2007-10-02 14:48:08 +0000
committerLuca Abeni <lucabe72@email.it>2007-10-02 14:48:08 +0000
commite0d21bfe835eec87b8c0efe6e9973ae5f588bc07 (patch)
tree1031f231b2673252dd031b79c9fc7045d3a3d254 /libavformat/rtp.c
parent0d0447eae09dca047412a03d64ac2bfc11a80d35 (diff)
Allow to set the maximum number of frames per RTP packet (and add support for
this in the AAC packetizer) Originally committed as revision 10647 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/rtp.c')
-rw-r--r--libavformat/rtp.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/libavformat/rtp.c b/libavformat/rtp.c
index 02d3e7be29..14e9189635 100644
--- a/libavformat/rtp.c
+++ b/libavformat/rtp.c
@@ -747,6 +747,21 @@ static int rtp_write_header(AVFormatContext *s1)
return AVERROR(EIO);
s->max_payload_size = max_packet_size - 12;
+ s->max_frames_per_packet = 0;
+ if (s1->max_delay) {
+ if (st->codec->codec_type == CODEC_TYPE_AUDIO) {
+ if (st->codec->frame_size == 0) {
+ av_log(s1, AV_LOG_ERROR, "Cannot respect max delay: frame size = 0\n");
+ } else {
+ s->max_frames_per_packet = av_rescale_rnd(s1->max_delay, st->codec->sample_rate, AV_TIME_BASE * st->codec->frame_size, AV_ROUND_DOWN);
+ }
+ }
+ if (st->codec->codec_type == CODEC_TYPE_VIDEO) {
+ /* FIXME: We should round down here... */
+ s->max_frames_per_packet = av_rescale_q(s1->max_delay, AV_TIME_BASE_Q, st->codec->time_base);
+ }
+ }
+
av_set_pts_info(st, 32, 1, 90000);
switch(st->codec->codec_id) {
case CODEC_ID_MP2: