[SCM] libav/experimental: rtpdec: Add functions for finding depacketizers by name or payload id

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 17:19:44 UTC 2013


The following commit has been merged in the experimental branch:
commit 1e515c4280acb70c615e8fe562fa6b463f1d8bed
Author: Martin Storsjö <martin at martin.st>
Date:   Sun Dec 5 19:39:50 2010 +0000

    rtpdec: Add functions for finding depacketizers by name or payload id
    
    Originally committed as revision 25891 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavformat/rtpdec.c b/libavformat/rtpdec.c
index 2524139..c9cf855 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 390071e..778ca92 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.
 

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list