Browse Source

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

Originally committed as revision 25891 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/n0.8
Martin Storsjö 14 years ago
parent
commit
1e515c4280
2 changed files with 29 additions and 0 deletions
  1. +25
    -0
      libavformat/rtpdec.c
  2. +4
    -0
      libavformat/rtpdec.h

+ 25
- 0
libavformat/rtpdec.c View File

@@ -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;


+ 4
- 0
libavformat/rtpdec.h View File

@@ -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.



Loading…
Cancel
Save