Mercurial > libavformat.hg
diff rtpdec.c @ 6187:c4c35a9d4ab5 libavformat
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
author | mstorsjo |
---|---|
date | Mon, 28 Jun 2010 11:24:12 +0000 |
parents | 736165b749f8 |
children | da9998b48dff |
line wrap: on
line diff
--- a/rtpdec.c Mon Jun 28 11:21:34 2010 +0000 +++ b/rtpdec.c Mon Jun 28 11:24:12 2010 +0000 @@ -531,3 +531,28 @@ } 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; +}