rtp: factorize dynamic payload type fallback
authorRafaël Carré <rafael.carre@savoirfairelinux.com>
Fri, 23 Sep 2011 19:47:56 +0000 (15:47 -0400)
committerLuca Barbato <lu_zero@gentoo.org>
Fri, 23 Sep 2011 20:00:24 +0000 (22:00 +0200)
Move the identical code in rtp_write_header() and
ff_sdp_write_media() inside ff_rtp_get_payload_type()

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
libavformat/rtp.c
libavformat/rtpenc.c
libavformat/sdp.c

index d59b694..35edb50 100644 (file)
@@ -103,6 +103,11 @@ int ff_rtp_get_payload_type(AVCodecContext *codec)
                     continue;
             payload_type = AVRtpPayloadTypes[i].pt;
         }
+
+    /* dynamic payload type */
+    if (payload_type < 0)
+        payload_type = RTP_PT_PRIVATE + (codec->codec_type == AVMEDIA_TYPE_AUDIO);
+
     return payload_type;
 }
 
index ef261c3..1f5d9ba 100644 (file)
@@ -93,9 +93,6 @@ static int rtp_write_header(AVFormatContext *s1)
     }
 
     s->payload_type = ff_rtp_get_payload_type(st->codec);
-    if (s->payload_type < 0)
-        s->payload_type = RTP_PT_PRIVATE + (st->codec->codec_type == AVMEDIA_TYPE_AUDIO);
-
     s->base_timestamp = av_get_random_seed();
     s->timestamp = s->base_timestamp;
     s->cur_timestamp = 0;
index c227c7f..f27a899 100644 (file)
@@ -533,9 +533,6 @@ void ff_sdp_write_media(char *buff, int size, AVCodecContext *c, const char *des
     int payload_type;
 
     payload_type = ff_rtp_get_payload_type(c);
-    if (payload_type < 0) {
-        payload_type = RTP_PT_PRIVATE + (c->codec_type == AVMEDIA_TYPE_AUDIO);
-    }
 
     switch (c->codec_type) {
         case AVMEDIA_TYPE_VIDEO   : type = "video"      ; break;