1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

rtpdec: Add functions for finding depacketizers by name or payload id

Originally committed as revision 25891 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Martin Storsjö 2010-12-05 19:39:50 +00:00
parent 2beb910d79
commit 1e515c4280
2 changed files with 29 additions and 0 deletions

View File

@ -27,6 +27,7 @@
#include "mpegts.h" #include "mpegts.h"
#include <unistd.h> #include <unistd.h>
#include <strings.h>
#include "network.h" #include "network.h"
#include "rtpdec.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); 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) static int rtcp_parse_packet(RTPDemuxContext *s, const unsigned char *buf, int len)
{ {
int payload_len; int payload_len;

View File

@ -190,6 +190,10 @@ struct RTPDemuxContext {
extern RTPDynamicProtocolHandler *RTPFirstDynamicPayloadHandler; extern RTPDynamicProtocolHandler *RTPFirstDynamicPayloadHandler;
void ff_register_dynamic_payload_handler(RTPDynamicProtocolHandler *handler); 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. 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.