[FFmpeg-cvslog] r23860 - trunk/libavformat/rtpdec_xiph.c
mstorsjo
subversion
Mon Jun 28 22:32:03 CEST 2010
Author: mstorsjo
Date: Mon Jun 28 22:32:03 2010
New Revision: 23860
Log:
rtpdec: Cleanup FMTP parsing code in Xiph RTP depacketizer
Patch by Josh Allmann, joshua dot allmann at gmail
Modified:
trunk/libavformat/rtpdec_xiph.c
Modified: trunk/libavformat/rtpdec_xiph.c
==============================================================================
--- trunk/libavformat/rtpdec_xiph.c Mon Jun 28 22:27:25 2010 (r23859)
+++ trunk/libavformat/rtpdec_xiph.c Mon Jun 28 22:32:03 2010 (r23860)
@@ -286,10 +286,11 @@ parse_packed_headers(const uint8_t * pac
return 0;
}
-static int xiph_parse_fmtp_pair(AVCodecContext * codec,
+static int xiph_parse_fmtp_pair(AVStream* stream,
PayloadContext *xiph_data,
char *attr, char *value)
{
+ AVCodecContext *codec = stream->codec;
int result = 0;
if (!strcmp(attr, "sampling")) {
@@ -346,34 +347,12 @@ static int xiph_parse_sdp_line(AVFormatC
PayloadContext *data, const char *line)
{
const char *p;
- char *value;
- char attr[25];
- int value_size = strlen(line), attr_size = sizeof(attr), res = 0;
- AVCodecContext* codec = s->streams[st_index]->codec;
-
- assert(data);
-
- if (!(value = av_malloc(value_size))) {
- av_log(codec, AV_LOG_ERROR, "Out of memory\n");
- return AVERROR(ENOMEM);
- }
if (av_strstart(line, "fmtp:", &p)) {
- // 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, attr_size,
- value, value_size)) {
- res = xiph_parse_fmtp_pair(codec, data, attr, value);
- if (res < 0 && res != AVERROR_PATCHWELCOME)
- return res;
- }
+ return ff_parse_fmtp(s->streams[st_index], data, p,
+ xiph_parse_fmtp_pair);
}
- av_free(value);
return 0;
}
More information about the ffmpeg-cvslog
mailing list