[FFmpeg-devel] [PATCH 01/27] avcodec: add color_range to AVCodec struct and use it
wm4
nfxjfg at googlemail.com
Mon Dec 11 13:34:32 EET 2017
On Mon, 11 Dec 2017 12:07:34 +0100
Paul B Mahol <onemda at gmail.com> wrote:
> On 12/11/17, wm4 <nfxjfg at googlemail.com> wrote:
> > On Sat, 9 Dec 2017 16:37:53 +0100
> > Paul B Mahol <onemda at gmail.com> wrote:
> >
> >> Signed-off-by: Paul B Mahol <onemda at gmail.com>
> >> ---
> >> libavcodec/avcodec.h | 1 +
> >> libavcodec/utils.c | 2 ++
> >> 2 files changed, 3 insertions(+)
> >>
> >> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> >> index 5db6a81320..e5de4797c8 100644
> >> --- a/libavcodec/avcodec.h
> >> +++ b/libavcodec/avcodec.h
> >> @@ -3376,6 +3376,7 @@ typedef struct AVCodec {
> >> uint8_t max_lowres; ///< maximum value for lowres
> >> supported by the decoder
> >> const AVClass *priv_class; ///< AVClass for the private
> >> context
> >> const AVProfile *profiles; ///< array of recognized
> >> profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN}
> >> + int color_range; ///< supported color range by
> >> encoder, 0 means any is supported
> >
> > I'd prefer if the doxygen said AVCOL_RANGE_UNSPECIFIED.
> >
> > Actually, I'd prefer if this were an array.
>
> What for? It can be MPEG or JPEG or UNKNOWN (one of previous two)
>
> >
> > Actually, I'd prefer even more if there were some nicer way to export
> > supported encoder parameters, as currently it's mostly guess work on
> > the API user side (or hardcoding knowledge).
> >
> >>
> >> /*****************************************************************
> >> * No fields below this line are part of the public API. They
> >> diff --git a/libavcodec/utils.c b/libavcodec/utils.c
> >> index baf09119fe..aa81c21ef3 100644
> >> --- a/libavcodec/utils.c
> >> +++ b/libavcodec/utils.c
> >> @@ -879,6 +879,8 @@ FF_ENABLE_DEPRECATION_WARNINGS
> >> avctx->codec->pix_fmts[i] == AV_PIX_FMT_YUVJ444P)
> >> avctx->color_range = AVCOL_RANGE_JPEG;
> >> }
> >> + if (avctx->codec->color_range)
> >> + avctx->color_range = avctx->codec->color_range;
> >> if (avctx->codec->supported_samplerates) {
> >> for (i = 0; avctx->codec->supported_samplerates[i] != 0; i++)
> >> if (avctx->sample_rate ==
> >> avctx->codec->supported_samplerates[i])
> >
> > Fine, but it's inevitable that the encoder supports the J formats still
> > for a while.
>
>
> Why are you all dismissive about this?
Well, to be honest, I don't mind if this whole J* format change
suddenly breaks all API users, but others might be not so happy about
it.
More information about the ffmpeg-devel
mailing list