diff rtsp.c @ 4875:13a2a1a475d5 libavformat

Add a Vorbis payload parser. Implemented by Colin McQuillan as a GSoC qualification task, see "RTP/Vorbis payload implementation (GSoC qual task)" thread on mailinglist.
author rbultje
date Tue, 14 Apr 2009 15:01:46 +0000
parents 5370b0c1653c
children 940946a4569b
line wrap: on
line diff
--- a/rtsp.c	Tue Apr 14 13:22:40 2009 +0000
+++ b/rtsp.c	Tue Apr 14 15:01:46 2009 +0000
@@ -37,6 +37,7 @@
 #include "rtpdec.h"
 #include "rdt.h"
 #include "rtp_asf.h"
+#include "rtp_vorbis.h"
 
 //#define DEBUG
 //#define DEBUG_RTP_TCP
@@ -196,7 +197,8 @@
     return len;
 }
 
-static void sdp_parse_fmtp_config(AVCodecContext *codec, char *attr, char *value)
+static void sdp_parse_fmtp_config(AVCodecContext * codec, void *ctx,
+                                  char *attr, char *value)
 {
     switch (codec->codec_id) {
         case CODEC_ID_MPEG4:
@@ -213,6 +215,9 @@
                 hex_to_data(codec->extradata, value);
             }
             break;
+        case CODEC_ID_VORBIS:
+            ff_vorbis_parse_fmtp_config(codec, ctx, attr, value);
+            break;
         default:
             break;
     }
@@ -274,7 +279,8 @@
     while(rtsp_next_attr_and_value(&p, attr, sizeof(attr), value, sizeof(value)))
     {
         /* grab the codec extra_data from the config parameter of the fmtp line */
-        sdp_parse_fmtp_config(codec, attr, value);
+        sdp_parse_fmtp_config(codec, rtsp_st->dynamic_protocol_context,
+                              attr, value);
         /* Looking for a known attribute */
         for (i = 0; attr_names[i].str; ++i) {
             if (!strcasecmp(attr, attr_names[i].str)) {