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

rtpdec: Add generic function for iterating over FMTP configuration lines

This will be used for cleaning up code that is common among RTP depacketizers.

Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 23847 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Josh Allmann 2010-06-28 11:24:12 +00:00 committed by Martin Storsjö
parent 8b114d85ba
commit 016bc031eb
2 changed files with 30 additions and 0 deletions

View File

@ -531,3 +531,28 @@ void rtp_parse_close(RTPDemuxContext *s)
}
av_free(s);
}
int ff_parse_fmtp(AVStream *stream, PayloadContext *data, const char *p,
int (*parse_fmtp)(AVStream *stream,
PayloadContext *data,
char *attr, char *value))
{
char attr[256];
char value[4096];
int res;
// remove protocol identifier
while (*p && *p == ' ') p++; // strip spaces
while (*p && *p != ' ') p++; // eat protocol identifier
while (*p && *p == ' ') p++; // strip trailing spaces
while (ff_rtsp_next_attr_and_value(&p,
attr, sizeof(attr),
value, sizeof(value))) {
res = parse_fmtp(stream, data, attr, value);
if (res < 0)
return res;
}
return 0;
}

View File

@ -172,6 +172,11 @@ void ff_register_dynamic_payload_handler(RTPDynamicProtocolHandler *handler);
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_parse_fmtp(AVStream *stream, PayloadContext *data, const char *p,
int (*parse_fmtp)(AVStream *stream,
PayloadContext *data,
char *attr, char *value));
void av_register_rtp_dynamic_payload_handlers(void);
#endif /* AVFORMAT_RTPDEC_H */