mirror of https://git.ffmpeg.org/ffmpeg.git
avformat/rtp: support RGB/BGR for rfc4175
Reviewed-by: Lynne <dev@lynne.ee> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
This commit is contained in:
parent
7b55f95f71
commit
522f577d7e
|
@ -74,6 +74,26 @@ static int rfc4175_parse_format(AVStream *stream, PayloadContext *data)
|
|||
} else {
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
} else if (!strncmp(data->sampling, "RGB", 3)) {
|
||||
tag = MKTAG('R', 'G', 'B', 24);
|
||||
if (data->depth == 8) {
|
||||
data->xinc = 1;
|
||||
data->pgroup = 3;
|
||||
pixfmt = AV_PIX_FMT_RGB24;
|
||||
stream->codecpar->codec_id = AV_CODEC_ID_RAWVIDEO;
|
||||
} else {
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
} else if (!strncmp(data->sampling, "BGR", 3)) {
|
||||
tag = MKTAG('B', 'G', 'R', 24);
|
||||
if (data->depth == 8) {
|
||||
data->xinc = 1;
|
||||
data->pgroup = 3;
|
||||
pixfmt = AV_PIX_FMT_BGR24;
|
||||
stream->codecpar->codec_id = AV_CODEC_ID_RAWVIDEO;
|
||||
} else {
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
} else {
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
|
|
|
@ -45,6 +45,14 @@ void ff_rtp_send_raw_rfc4175(AVFormatContext *s1, const uint8_t *buf, int size)
|
|||
xinc = yinc = 4;
|
||||
pgroup = 6;
|
||||
break;
|
||||
case AV_PIX_FMT_RGB24:
|
||||
xinc = yinc = 1;
|
||||
pgroup = 3;
|
||||
break;
|
||||
case AV_PIX_FMT_BGR24:
|
||||
xinc = yinc = 1;
|
||||
pgroup = 3;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -676,6 +676,12 @@ static char *sdp_write_media_attributes(char *buff, int size, AVStream *st, int
|
|||
case AV_PIX_FMT_YUV420P:
|
||||
pix_fmt = "YCbCr-4:2:0";
|
||||
break;
|
||||
case AV_PIX_FMT_RGB24:
|
||||
pix_fmt = "RGB";
|
||||
break;
|
||||
case AV_PIX_FMT_BGR24:
|
||||
pix_fmt = "BGR";
|
||||
break;
|
||||
default:
|
||||
av_log(fmt, AV_LOG_ERROR, "Unsupported pixel format.\n");
|
||||
return NULL;
|
||||
|
|
Loading…
Reference in New Issue