summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavformat/rtpdec.c25
-rw-r--r--libavformat/rtpdec.h4
2 files changed, 29 insertions, 0 deletions
diff --git a/libavformat/rtpdec.c b/libavformat/rtpdec.c
index 25241393fc..c9cf855a59 100644
--- a/libavformat/rtpdec.c
+++ b/libavformat/rtpdec.c
@@ -27,6 +27,7 @@
#include "mpegts.h"
#include <unistd.h>
+#include <strings.h>
#include "network.h"
#include "rtpdec.h"
@@ -78,6 +79,30 @@ void av_register_rtp_dynamic_payload_handlers(void)
ff_register_dynamic_payload_handler(&ff_quicktime_rtp_vid_handler);
}
+RTPDynamicProtocolHandler *ff_rtp_handler_find_by_name(const char *name,
+ enum AVMediaType codec_type)
+{
+ RTPDynamicProtocolHandler *handler;
+ for (handler = RTPFirstDynamicPayloadHandler;
+ handler; handler = handler->next)
+ if (!strcasecmp(name, handler->enc_name) &&
+ codec_type == handler->codec_type)
+ return handler;
+ return NULL;
+}
+
+RTPDynamicProtocolHandler *ff_rtp_handler_find_by_id(int id,
+ enum AVMediaType codec_type)
+{
+ RTPDynamicProtocolHandler *handler;
+ for (handler = RTPFirstDynamicPayloadHandler;
+ handler; handler = handler->next)
+ if (handler->static_payload_id && handler->static_payload_id == id &&
+ codec_type == handler->codec_type)
+ return handler;
+ return NULL;
+}
+
static int rtcp_parse_packet(RTPDemuxContext *s, const unsigned char *buf, int len)
{
int payload_len;
diff --git a/libavformat/rtpdec.h b/libavformat/rtpdec.h
index 390071e91e..778ca92984 100644
--- a/libavformat/rtpdec.h
+++ b/libavformat/rtpdec.h
@@ -190,6 +190,10 @@ struct RTPDemuxContext {
extern RTPDynamicProtocolHandler *RTPFirstDynamicPayloadHandler;
void ff_register_dynamic_payload_handler(RTPDynamicProtocolHandler *handler);
+RTPDynamicProtocolHandler *ff_rtp_handler_find_by_name(const char *name,
+ enum AVMediaType codec_type);
+RTPDynamicProtocolHandler *ff_rtp_handler_find_by_id(int id,
+ enum AVMediaType codec_type);
int ff_rtsp_next_attr_and_value(const char **p, char *attr, int attr_size, char *value, int value_size); ///< from rtsp.c, but used by rtp dynamic protocol handlers.