diff --git a/libavformat/rtpdec_xiph.c b/libavformat/rtpdec_xiph.c index bcf583fd0a6059541b05afefd341c852442742be..5b75529c5e814d43a6546b2f06f97699508ee343 100644 --- a/libavformat/rtpdec_xiph.c +++ b/libavformat/rtpdec_xiph.c @@ -293,7 +293,17 @@ static int xiph_parse_fmtp_pair(AVStream* stream, int result = 0; if (!strcmp(attr, "sampling")) { - return AVERROR_PATCHWELCOME; + if (!strcmp(value, "YCbCr-4:2:0")) { + codec->pix_fmt = PIX_FMT_YUV420P; + } else if (!strcmp(value, "YCbCr-4:4:2")) { + codec->pix_fmt = PIX_FMT_YUV422P; + } else if (!strcmp(value, "YCbCr-4:4:4")) { + codec->pix_fmt = PIX_FMT_YUV444P; + } else { + av_log(codec, AV_LOG_ERROR, + "Unsupported pixel format %s\n", attr); + return AVERROR_INVALIDDATA; + } } else if (!strcmp(attr, "width")) { /* This is an integer between 1 and 1048561 * and MUST be in multiples of 16. */