[FFmpeg-devel] [PATCH 6/8] avformat/rtpdec_rfc4175: add support for TCS
Andreas Rheinhardt
andreas.rheinhardt at outlook.com
Mon Oct 11 18:01:54 EEST 2021
lance.lmwang at gmail.com:
> From: Limin Wang <lance.lmwang at gmail.com>
>
> Signed-off-by: Limin Wang <lance.lmwang at gmail.com>
> ---
> libavformat/rtpdec_rfc4175.c | 19 +++++++++++++++++++
> 1 file changed, 19 insertions(+)
>
> diff --git a/libavformat/rtpdec_rfc4175.c b/libavformat/rtpdec_rfc4175.c
> index 367567d..db6b9b8 100644
> --- a/libavformat/rtpdec_rfc4175.c
> +++ b/libavformat/rtpdec_rfc4175.c
> @@ -30,6 +30,7 @@
> struct PayloadContext {
> char *sampling;
> char *framerate;
> + char *TCS;
> int depth;
> int width;
> int height;
> @@ -66,6 +67,21 @@ static int rfc4175_parse_format(AVStream *stream, PayloadContext *data)
> return AVERROR_INVALIDDATA;
> }
>
> + if (!data->TCS)
> + stream->codecpar->color_trc = AVCOL_TRC_UNSPECIFIED;
> + else if (!strncmp(data->TCS, "SDR", 3))
> + stream->codecpar->color_trc = AVCOL_TRC_BT709;
> + else if (!strncmp(data->TCS, "PQ", 2))
> + stream->codecpar->color_trc = AVCOL_TRC_SMPTE2084;
> + else if (!strncmp(data->TCS, "HLG", 3))
> + stream->codecpar->color_trc = AVCOL_TRC_ARIB_STD_B67;
> + else if (!strncmp(data->TCS, "LINEAR", 6))
> + stream->codecpar->color_trc = AVCOL_TRC_LINEAR;
> + else if (!strncmp(data->TCS, "ST428-1", 7))
> + stream->codecpar->color_trc = AVCOL_TRC_SMPTEST428_1;
> + else if (!strncmp(data->TCS, "UNSPECIFIED", 11))
> + stream->codecpar->color_trc = AVCOL_TRC_UNSPECIFIED;
> +
> desc = av_pix_fmt_desc_get(pixfmt);
> stream->codecpar->format = pixfmt;
> stream->codecpar->codec_tag = tag;
> @@ -97,6 +113,8 @@ static int rfc4175_parse_fmtp(AVFormatContext *s, AVStream *stream,
> data->depth = atoi(value);
> else if (!strncmp(attr, "exactframerate", 14))
> data->framerate = av_strdup(value);
> + else if (!strncmp(attr, "TCS", 3))
> + data->TCS = av_strdup(value);
>
> return 0;
> }
> @@ -126,6 +144,7 @@ static int rfc4175_parse_sdp_line(AVFormatContext *s, int st_index,
> ret = rfc4175_parse_format(stream, data);
> av_freep(&data->sampling);
> av_freep(&data->framerate);
> + av_freep(&data->TCS);
>
> return ret;
> }
>
Same here: Why an (unchecked) temporary value?
- Andreas
More information about the ffmpeg-devel
mailing list