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:
parent
2beb910d79
commit
1e515c4280
@ -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;
|
||||||
|
@ -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.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user