diff rtp.c @ 2587:d751acab2622 libavformat

Allow to set the maximum number of frames per RTP packet (and add support for this in the AAC packetizer)
author lucabe
date Tue, 02 Oct 2007 14:48:08 +0000
parents 5fa858c38291
children cc693f9e80ee
line wrap: on
line diff
--- a/rtp.c	Mon Oct 01 22:11:10 2007 +0000
+++ b/rtp.c	Tue Oct 02 14:48:08 2007 +0000
@@ -747,6 +747,21 @@
         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: